]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
Squashed 'dts/upstream/' changes from 20e0f0897ea2..3347eecf3408
authorTom Rini <trini@konsulko.com>
Tue, 1 Oct 2024 18:20:28 +0000 (12:20 -0600)
committerTom Rini <trini@konsulko.com>
Tue, 1 Oct 2024 18:20:28 +0000 (12:20 -0600)
3347eecf3408 Merge tag 'v6.11-dts-raw'
5bb56ffedf48 Merge tag 'net-6.11-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
619f5c643338 Merge tag 'arm-fixes-6.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
5bac927c583a Merge tag 'riscv-soc-fixes-for-v6.11-final' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into arm/fixes
e31fe01521ce dt-bindings: net: tja11xx: fix the broken binding
a7aca18a3d22 Merge tag 'v6.11-rc7-dts-raw'
480225022b08 riscv: dts: starfive: jh7110-common: Fix lower rate of CPUfreq by setting PLL0 rate to 1.5GHz
1c3660a28495 Merge tag 'char-misc-6.11-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
5e0b40cbabba Merge tag 'drm-misc-fixes-2024-09-05' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes
0439c86751a6 Merge tag 'v6.11-rockchip-dtsfixes' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/fixes
4fb92795fc50 dt-bindings: display: panel: Rename WL-355608-A8 panel to rg35xx-*-panel
40405e54cc35 dt-bindings: nvmem: Use soc-nvmem node name instead of nvmem
1bdd75307f4b Merge tag 'v6.11-rc6-dts-raw'
7e84ede34cab Merge tag 'usb-6.11-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
44956584aec0 Merge tag 'arm-fixes-6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
f7c4f38337bc arm64: dts: rockchip: Fix compatibles for RK3588 VO{0,1}_GRF
bb6814abbd4b dt-bindings: soc: rockchip: Fix compatibles for RK3588 VO{0,1}_GRF
75ecf0f6d46b Merge tag 'qcom-arm64-fixes-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes
14b79236aa28 Merge tag 'imx-fixes-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes
d4dbfe926736 Merge tag 'omap-for-v6.11/fixes-signed' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into arm/fixes
d353cfae2402 Merge tag 'v6.11-rc5-dts-raw'
be22f803942a Merge tag 'input-for-v6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
a37a2546451d dt-bindings: usb: microchip,usb2514: Fix reference USB device schema
7b6df908399a Merge tag 'v6.11-rc4-dts-raw'
c8630efb9727 Merge tag 'devicetree-fixes-for-6.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
7a97bd02ff05 Merge tag 'drm-fixes-2024-08-16' of https://gitlab.freedesktop.org/drm/kernel
4840d8d2d4f3 Merge tag 'drm-misc-fixes-2024-08-15' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes
f67fcb2addfd Merge tag 'net-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
03dcdf2790ae arm64: dts: qcom: x1e80100: Fix Adreno SMMU global interrupt
85047e87e32b arm64: dts: qcom: disable GPU on x1e80100 by default
5820b7b4dcc7 arm64: dts: imx8mm-phygate: fix typo pinctrcl-0
749c661ee5cf arm64: dts: imx95: correct L3Cache cache-sets
3c156d225d96 arm64: dts: imx95: correct a55 power-domains
92461bb4238e arm64: dts: freescale: imx93-tqma9352-mba93xxla: fix typo
2a50949ffeb9 arm64: dts: freescale: imx93-tqma9352: fix CMA alloc-ranges
c117cb807821 dt-bindings: net: fsl,qoriq-mc-dpmac: add missed property phys
f05f5c64166c ARM: dts: imx6dl-yapp43: Increase LED current to match the yapp4 HW design
ca3deea38b30 Merge tag 'v6.11-rc3-dts-raw'
d7281200d611 arm64: dts: imx93: update default value for snps,clk-csr
587db5b5a316 arm64: dts: freescale: tqma9352: Fix watchdog reset
5f2894b246a9 arm64: dts: imx8mp-beacon-kit: Fix Stereo Audio on WM8962
3044a84d0bd6 Merge tag 'usb-6.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
c3f6670f71b0 Merge tag 'drm-fixes-2024-08-10' of https://gitlab.freedesktop.org/drm/kernel
8f739ba31967 Merge tag 'arm-fixes-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
4acbf538e297 Merge tag 'asoc-fix-v6.11-rc2' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
42dace775595 Merge tag 'drm-misc-fixes-2024-08-08' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes
360abf66559b ASoC: dt-bindings: qcom,wcd939x: Correct reset GPIO polarity in example
86abe8a4d359 ASoC: dt-bindings: qcom,wcd938x: Correct reset GPIO polarity in example
d3c8bda33435 ASoC: dt-bindings: qcom,wcd934x: Correct reset GPIO polarity in example
f09c114db2f1 ASoC: dt-bindings: qcom,wcd937x: Correct reset GPIO polarity in example
f64acdf7ef94 dt-bindings: display: panel: samsung,atna45dc02: Fix indentation
8dc5413a7458 dt-bindings: display: panel: samsung,atna45dc02: Document ATNA45DC02
4b69ebe2916c arm64: dts: ti: k3-j784s4-main: Correct McASP DMAs
ccc4534faf10 arm64: dts: ti: k3-j722s: Fix gpio-range for main_pmx0
8a9c5c189689 arm64: dts: ti: k3-am62p: Fix gpio-range for main_pmx0
bac04d23616f arm64: dts: ti: k3-am62p: Add gpio-ranges for mcu_gpio0
3def7ba73e81 ARM: dts: omap3-n900: correct the accelerometer orientation
55288a83587d arm64: dts: ti: k3-am62-verdin-dahlia: Keep CTRL_SLEEP_MOCI# regulator on
ef58c8d54750 arm64: dts: layerscape: fix thermal node names length
a5ebf3657448 Merge tag 'v6.11-rc2-dts-raw'
62770feed75b dt-bindings: input: touchscreen: edt-ft5x06: Document FT8201 support
217414ba33b8 arm: dts: arm: versatile-ab: Fix duplicate clock node name
519301f594f0 dt-bindings: eeprom: at25: add fujitsu,mb85rs256 compatible
bda2e3834d6f arm64: dts: rockchip: override BIOS_DISABLE signal via GPIO hog on RK3399 Puma
6d0715567669 arm64: dts: rockchip: fix eMMC/SPI corruption when audio has been used on RK3399 Puma
aa26ae7f77fe dt-bindings: usb: microchip,usb2514: Add USB2517 compatible
213794e5d068 arm64: dts: qcom: x1e80100-crd: Fix backlight
3a38ff353f86 arm64: dts: qcom: x1e80100-yoga-slim7x: fix missing PCIe4 gpios
03f34441e6a5 arm64: dts: qcom: x1e80100-yoga-slim7x: disable PCIe6a perst pull down
a8876bf12d57 arm64: dts: qcom: x1e80100-yoga-slim7x: fix up PCIe6a pinctrl node
6451ef8fad85 arm64: dts: qcom: x1e80100-yoga-slim7x: fix PCIe4 PHY supply
56384c22391a arm64: dts: qcom: x1e80100-vivobook-s15: fix missing PCIe4 gpios
745d8ce1ce1e arm64: dts: qcom: x1e80100-vivobook-s15: disable PCIe6a perst pull down
e97ccf5b3ee8 arm64: dts: qcom: x1e80100-vivobook-s15: fix up PCIe6a pinctrl node
b1cf30e5dcfe arm64: dts: qcom: x1e80100-vivobook-s15: fix PCIe4 PHY supply
f27d55f03ac8 arm64: dts: qcom: x1e80100-qcp: fix missing PCIe4 gpios
d52e8759a838 arm64: dts: qcom: x1e80100-qcp: disable PCIe6a perst pull down
9d4f0da4ce12 arm64: dts: qcom: x1e80100-qcp: fix up PCIe6a pinctrl node
cec0cc67788f arm64: dts: qcom: x1e80100-qcp: fix PCIe4 PHY supply
02b954c58b51 arm64: dts: qcom: x1e80100-crd: fix missing PCIe4 gpios
5055674c73cf arm64: dts: qcom: x1e80100-crd: disable PCIe6a perst pull down
d1c6b8a21ee9 arm64: dts: qcom: x1e80100-crd: fix up PCIe6a pinctrl node
0152d01a9265 arm64: dts: qcom: x1e80100: add missing PCIe minimum OPP
464dcc65dd2d arm64: dts: qcom: x1e80100: fix PCIe domain numbers
9f807a8bb15b arm64: dts: qcom: x1e80100-crd: fix PCIe4 PHY supply
2bc5c7e61142 dt-bindings: Batch-update Konrad Dybcio's email
3b63fd14d093 arm64: dts: rockchip: fix PMIC interrupt pin in pinctrl for ROCK Pi E
a6a0c2f971d1 arm64: dts: rockchip: Remove broken tsadc pinctrl binding for rk356x
a0d37a587f15 Merge tag 'ti-k3-dt-for-v6.11-part2' into ti-k3-dts-next
90a18b80197e Merge tag 'v6.11-rc1-dts-raw'
b80e9a3ace2b arm64: dts: qcom: ipq5332: Fix interrupt trigger type for usb
5e90e967124f arm64: dts: qcom: x1e80100-yoga: add wifi calibration variant
aa73674edf44 dt-bindings: ata: rockchip-dwc-ahci: add missing power-domains
ea8865c8cc3f Merge tag 'devicetree-fixes-for-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
aabce14e3722 Merge tag 'spi-fix-v6.11-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
337aa3c3bc5e Merge tag 'i3c/for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux
c27e1085e9bf Merge tag 'mm-hotfixes-stable-2024-07-26-14-33' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
9a815962df95 dt-bindings: arm: update James Clark's email address
c0127d664ed7 dt-bindings: iio: adc: ad7192: Fix 'single-channel' constraints
0d97d195bca9 Merge tag 'drm-next-2024-07-26' of https://gitlab.freedesktop.org/drm/kernel
a20d6e70734f dt-bindings: i3c: add header for generic I3C flags
bdfe4450d0a5 dt-bindings: i3c: dw: Add apb clock binding
ba22c24c4bac Merge tag 'drm-misc-next-fixes-2024-07-25' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
ea60892a6c65 Merge tag 'linux-watchdog-6.11-rc1' of git://www.linux-watchdog.org/linux-watchdog
f73222b55701 dt-bindings: watchdog: add support for Amlogic A4 SoCs
6ace3fddf4a5 Merge tag 'phy-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
01f9a51421da Merge tag 'dmaengine-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine
b0f24450c019 Merge tag 'rproc-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
3e84429f5c5e Merge tag 'i2c-for-6.11-rc1-second-batch' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
44fa07e48cfb Merge tag 'mailbox-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jassibrar/mailbox
cc65d0c3de99 Merge tag 'for-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply
03bcf75eb7ac Merge tag 'irq-core-2024-07-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
a17cfb322a8a dt-bindings: display: panel: samsung,atna33xc20: Document ATNA45AF01
c3fa902543bd Merge tag 'rtc-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
c4a0998f4bc2 Merge tag 'pinctrl-v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
0b068b90d282 Merge tag 'mtd/for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
69746dd71087 Merge tag 'riscv-for-linus-6.11-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux
1adaf1a685cb Merge tag 'mips_6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
ac887b95ad83 Merge tag 'powerpc-6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
54b414ac072a Merge tag 'pci-v6.11-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci
e88c4d19a05a dt-bindings: i2c: mux-gpio: Add 'settle-time-us' property
fff653abe510 dt-bindings: i2c: qcom-cci: Document sm8650 compatible
eefdb916959d dt-bindings: i2c: qcom-cci: Document sm8550 compatible
c0d33525511a Merge tag 'input-for-v6.11-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
0960d6c8b60d Merge tag 'i2c-for-6.11-rc1-try2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
f1e125cc3e54 Merge tag 'char-misc-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
05623d215dcc Merge tag 'usb-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
6c388d77f29d Merge tag 'tty-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
96d526190b1a Merge tag 'sound-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
080addb6a692 Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
ebb5b0419336 Merge tag 'iommu-updates-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux
f660948c4d13 Merge tag 'v6.11-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
1e5ca920b9ef Merge branch 'pci/controller/qcom'
edc7c0f7215c Merge branch 'pci/controller/microchip'
ee6b5746d32c dt-bindings: watchdog: dlg,da9062-watchdog: Drop blank space
449c3fadf1a8 Merge tag 'drm-next-2024-07-18' of https://gitlab.freedesktop.org/drm/kernel
8a514c621e65 dt-bindings: trivial-devices: fix Rohm BH2228FV compatible string
fb2f4acf7cfb Merge tag 'media/v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
15e0751887c5 Merge tag 'devicetree-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
0758750d9956 Merge tag 'leds-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds
c956399e479a Merge tag 'backlight-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight
bdb5b5ffd7ef Merge tag 'mfd-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
da3613dc9471 Merge tag 'platform-drivers-x86-v6.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
abcf4a7783c3 Merge tag 'ata-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux
2e90feb83cbf dt-bindings: mtd: qcom,nandc: Define properties at top-level
70c817bb69b3 Merge tag 'net-next-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
91bcbafdc7f6 Merge tag 'thermal-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
0d95f6e97a8b Merge tag 'soc-arm-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
e1f316d55de2 Merge tag 'soc-dt-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
5dc50aa53bfc Merge tag 'soc-drivers-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
0f0953ddbf68 Merge branches 'clk-qcom', 'clk-rockchip', 'clk-sophgo' and 'clk-thead' into clk-next
aea817373f59 Merge branches 'clk-renesas', 'clk-amlogic', 'clk-allwinner' and 'clk-samsung' into clk-next
0c5561302b53 Merge branches 'clk-stm', 'clk-cleanup', 'clk-kunit' and 'clk-mediatek' into clk-next
0c8c67bc72f9 Merge tag 'spi-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
b9883d24eb5c Merge tag 'regulator-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
88a987d5866c Merge tag 'gpio-updates-for-v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
5546acbd4a84 Merge tag 'mmc-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
cfc0def12053 Merge tag 'pmdomain-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm
322ee8cb4588 Merge tag 'pwm/for-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux
9598175206bd Merge tag 'hwmon-for-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
7c20b6c14845 Merge tag 'tag-chrome-platform-for-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
ad0983b2c4f6 Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
7623c7b68fe4 Merge tag 'timers-core-2024-07-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
eea65eec77dc Merge tag 'for-net-next-2024-07-15' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
f71a876df418 dt-bindings: bluetooth: qualcomm: describe the inputs from PMU for wcn7850
ee2846cf9bcc dt-bindings: net: bluetooth: convert MT7622 Bluetooth to the json-schema
f897103fdd2b dt-bindings: net: bluetooth: qualcomm: describe regulators for QCA6390
9e52cca17cda dt-bindings: thermal: Drop 'trips' node as required
4c1656c5110c dt-bindings: thermal: qoriq: reference thermal-sensor schema
2107ba465288 dt-bindings: thermal: cleanup examples indentation
109554cbc281 dt-bindings: thermal: simplify few bindings
bb533c9e6741 dt-bindings: thermal: ti,j72xx: reference thermal-sensor schema
976aa4d6623d dt-bindings: thermal: ti,am654: reference thermal-sensor schema
06e17858ddc6 dt-bindings: thermal: st,stm32: reference thermal-sensor schema
37cd6d8f27eb dt-bindings: thermal: sprd: reference thermal-sensor schema
22a0bbf233c0 dt-bindings: thermal: socionext,uniphier: reference thermal-sensor schema
a8c1c6bc1d10 dt-bindings: thermal: rzg2l: reference thermal-sensor schema
5de9c463fec4 dt-bindings: thermal: rockchip: reference thermal-sensor schema
d6f22a26eeb8 dt-bindings: thermal: rcar-gen3: reference thermal-sensor schema
ebb766b41205 dt-bindings: thermal: qcom-tsens: reference thermal-sensor schema
6f69cab24f96 dt-bindings: thermal: qcom-spmi-adc-tm5: reference thermal-sensor schema
1f2e549e0895 dt-bindings: thermal: qcom-spmi-adc-tm-hc: reference thermal-sensor schema
356179c92fca dt-bindings: thermal: nvidia,tegra30-tsensor: reference thermal-sensor schema
1817a65b65bb dt-bindings: thermal: nvidia,tegra186-bpmp: reference thermal-sensor schema
c0f1371b51cd dt-bindings: thermal: imx8mm: reference thermal-sensor schema
3bab4a9b239c dt-bindings: thermal: generic-adc: reference thermal-sensor schema
5835635e090b dt-bindings: thermal: brcm,avs-ro: reference thermal-sensor schema
9ddd34a4ff81 dt-bindings: thermal: allwinner,sun8i-a83t-ths: reference thermal-sensor schema
1027b024a995 dt-bindings: thermal: amlogic: reference thermal-sensor schema
c52d5196b553 dt-bindings: thermal: samsung,exynos: specify cells
3c2be8e74d44 dt-bindings: thermal: correct thermal zone node name limit
ea6770a25f9c dt-bindings: thermal: qcom-tsens: Document the X1E80100 Temperature Sensor
c072e7893527 dt-bindings: thermal: convert hisilicon-thermal.txt to dt-schema
d271cd767f09 dt-bindings: thermal: mediatek: Fix thermal zone definitions for MT8188
ad91b715c526 dt-bindings: thermal: mediatek: Fix thermal zone definition for MT8186
5464b4fe51d3 dt-bindings: timer: sprd-timer: convert to YAML
90618e31a70e dt-bindings: ethernet-phy: add optional brr-mode flag
6889b4ef77b2 dt-bindings: net: bluetooth: nxp: Add firmware-name property
13aa6e07f01b dt-bindings: net: airoha: Add EN7581 ethernet controller
ca77bda01643 Merge tag 'i2c-host-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-mergewindow
5e50d45eeb19 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
6d743073241d dt-bindings: ata: ahci-fsl-qoriq: add fsl,ls1046a-ahci and fsl,ls1012a-ahci
f535d30d4531 dt-bindings: incomplete-devices: document devices without bindings
8ecead389362 Merge branch 'iommu/pci/ats' into iommu/next
30f464ede0f8 Merge patch series "riscv: Apply Zawrs when available"
d036f23cbd00 Merge branch 'iommu/qualcomm/msm' into iommu/next
53b904f0a4fe Merge branch 'iommu/arm/smmu' into iommu/next
200bce7a03b2 dt-bindings: timer: Add schema for realtek,otto-timer
91c1a4de0542 dt-bindings: timer: Add SOPHGO SG2002 clint
b193d9e3485c dt-bindings: timer: renesas,tmu: Add R-Car Gen2 support
0eceaab1c220 dt-bindings: timer: renesas,tmu: Add RZ/G1 support
05620051e082 dt-bindings: timer: renesas,tmu: Add R-Mobile APE6 support
732aac95d77a arm64: dts: ti: k3-j784s4-evm: Consolidate serdes0 references
4ef24145dcff arm64: dts: ti: k3-j784s4-evm: Assign only lanes 0 and 1 to PCIe1
73f9bfa35cb6 mips: dts: realtek: Add RTL9302C board
49e634f60bf1 dt-bindings: interrupt-controller: realtek,rtl-intc: Add rtl9300-intc
6b7aa158869a dt-bindings: mips: realtek: Add rtl930x-soc compatible
79aa5a0e867d dt-bindings: vendor-prefixes: Add Cameo Communications
6d64f20b94fe mips: dts: realtek: add device_type property to cpu node
6e35c3f7bfdf mips: dts: realtek: use "serial" instead of "uart" in node name
ab0ff84fea05 dt-bindings: riscv: Add Zawrs ISA extension description
fd82d997a73f Merge tag 'wireless-next-2024-07-11' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
93fcc938b3aa dt-bindings: i2c: amlogic,meson6-i2c: add optional power-domains
bac9ec8f2e0a spi: dt-bindings: at91: Add sama7d65 compatible string
5e04cedbeafe ASoC: dt-bindings: cirrus,cs42xx8: Convert to dtschema
e781d430025a dt-bindings: input: touchscreen: exc3000: add EXC81W32
339921ac3b56 dt-bindings: mmc: sdhci-sprd: convert to YAML
0e57616a72cc dt-bindings: i2c: at91: Add sama7d65 compatible string
43feb442c61a dt-bindings: trivial-devices: document the Sierra Wireless mangOH Green SPI IoT interface
76d06843edae dt-bindings: pwm: at91: Add sama7d65 compatible string
3fd0deb873eb dt-bindings: net: convert enetc to yaml
a57701aa6329 dt-bindings: net: realtek,rtl82xx: Document RTL8211F LED support
529c1490da71 ASoC: dt-bindings: convert qcom sound bindings to
4103874cd483 dt-bindings: clock: Document T-Head TH1520 AP_SUBSYS controller
b0d422f0aefe Merge tag 'sunxi-dt-for-6.11-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
381ea1f4fa7b dt-bindings: mailbox: qcom: Add CPUCP mailbox controller bindings
57d98a68ea13 dt-bindings: remoteproc: qcom,sa8775p-pas: Document the SA8775p ADSP, CDSP and GPDSP
4e1c20b923c6 dt-bindings: mailbox: Add mediatek,gce-props.yaml
1829a119f10b dt-bindings: watchdog: renesas,wdt: Document RZ/G3S support
1a8fe36d1048 ASoC: dt-bindings: cirrus,cs4270: Convert to dtschema
871b797ecaa7 ASoC: dt-bindings: qcom,apq8096-sndcard: use dtschema
3d45b14318e6 ASoC: dt-bindings: qcom,msm8916-wcd-digital-codec: convert to dtschema
f57329948a7b arm64: dts: allwinner: h616: add crypto engine node
d4d65cf8ff9d dt-bindings: pwm: imx: remove interrupt property from required
b880f57cb103 dt-bindings: pwm: Add pwm-gpio
fc7360d698ce dt-bindings: pwm: Add AXI PWM generator
0e86cd56f472 dt-bindings: pwm: fsl-ftm: Convert to yaml format
28131cd4748b dt-bindings: rtc: stm32: introduce new st,stm32mp25-rtc compatible
c92b8f8a3e5a dt-bindings: iommu: Convert msm,iommu-v0 to yaml
035f47e4aeb1 dt-bindings: fsl-qdma: fix interrupts 'if' check logic
59bad4759495 dt-bindings: dma: sprd,sc9860-dma: convert to YAML
4a1cd4e7cec1 Merge tag 'at24-updates-for-v6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-mergewindow
169e00ed0606 dt-bindings: i2c: dw: Document compatible thead,th1520-i2c
d0926118234e Merge tag 'qcom-arm64-for-6.11-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
20659aa64f8c Merge tag 'qcom-arm32-for-6.11-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
46ae978b7287 dt-bindings: net: fsl,fman: add ptimer-handle property
5c6ab5747c93 dt-bindings: net: fsl,fman: allow dma-coherent property
9680dba7899e dt-bindings: soc: fsl: Add fsl,ls1028a-reset for reset syscon node
f33895642d9a dt-bindings: soc: fsl: cpm_qe: convert to yaml format
6fbf523ac6a6 dt-bindings: i2c: i2c-fsi: Convert to json-schema
392a840473a9 dt-bindings: fsi: Document the FSI Hub Controller
fdf888daf381 dt-bindings: fsi: Document the AST2700 FSI controller
73804fcd91b4 dt-bindings: fsi: ast2600-fsi-master: Convert to json-schema
c912fa7bca24 dt-bindings: fsi: ibm,i2cr-fsi-master: Reference common FSI controller
a90a822fde8b dt-bindings: fsi: Document the FSI controller common properties
9ab33dde116b dt-bindings: fsi: Document the IBM SBEFIFO engine
b5eacaa465f8 dt-bindings: fsi: p9-occ: Convert to json-schema
743a9e982afa dt-bindings: fsi: Document the IBM SCOM engine
f1f16badc1f1 dt-bindings: fsi: fsi2spi: Document SPI controller child nodes
f8dc11767ba3 dt-bindings: interrupt-controller: convert fsl,ls-scfg-msi to yaml
2e49a5622d39 dt-bindings: soc: fsl: Convert q(b)man-* to yaml format
d5b522de4a5f dt-bindings: misc: fsl,qoriq-mc: convert to yaml format
212fc40f6419 dt-bindings: drop stale Anson Huang from maintainers
3ac20731e851 dt-bindings: clock: drop obsolete stericsson,abx500.txt
85e4e039e332 Merge tag 'icc-6.11-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next
09dec25d56c3 dt-bindings: gpio: convert Atmel GPIO to json-schema
dcf8d6732216 dt-bindings: power: add Amlogic A5 power domains
85b811f6a19a Merge tag 'memory-controller-drv-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into soc/drivers
61b9c27aadbf Merge tag 'sunxi-drivers-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/drivers
37c192fb4bde Merge tag 'reset-for-v6.11-2' of git://git.pengutronix.de/pza/linux into soc/drivers
9a28158cf3ec Merge tag 'qcom-drivers-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers
8d40ccd8ad72 Merge tag 'ti-driver-soc-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/drivers
40e8daa21274 Merge tag 'riscv-cache-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/drivers
8907a17573f0 Merge tag 'riscv-sophgo-dt-for-v6.11' of https://github.com/sophgo/linux into soc/dt
50c6d5bd28c1 Merge tag 'v6.11-rockchip-dts64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
6d6fb05277c3 riscv: dts: add clock generator for Sophgo SG2042 SoC
166af42541a3 dt-bindings: arm: cpus: Add new Cortex and Neoverse names
a682748f9de4 dt-bindings: interrupt-controller: qcom,pdc: Add sc8180x PDC
e962a717c4c4 dt-bindings: dma: qcom,gpi: document the SDX75 GPI DMA Engine
6a801e79e041 dt-bindings: watchdog: img,pdc-wdt: Convert to dtschema
aa7eda35344c dt-bindings: timer: renesas,tmu: Make interrupt-names required
f9dc8c1f970c dt-bindings: interrupt-controller: fsl,irqsteer: Add imx8mp/imx8qxp support
56f07a6f1339 dt-bindings: input: touchscreen: himax,hx83112b: add HX83100A
ff23e0f3817d dt-bindings: input/touchscreen: imagis: Document ist3038
a25ad65ed136 dt-bindings: i2c: nxp,lpc1788-i2c: convert to dt schema
b325040fda9f dt-bindings: i2c: adjust indentation in DTS example to coding style
90618bcc8538 dt-bindings: i2c: ti,omap4: reference i2c-controller.yaml schema
a588565768e5 dt-bindings: i2c: samsung,s3c2410: drop unneeded address/size-cells
e2d628a070f9 dt-bindings: i2c: nvidia,tegra20: drop unneeded address/size-cells
f1f6651026e0 dt-bindings: i2c: atmel,at91sam: drop unneeded address/size-cells
9defe71f2674 arm64: dts: rockchip: Add Xunlong Orange Pi 3B
7ecdb6cb0de0 dt-bindings: arm: rockchip: Add Xunlong Orange Pi 3B
5416329b387d arm64: dts: rockchip: Add Radxa ROCK 3B
b7f11dc06c71 dt-bindings: arm: rockchip: Add Radxa ROCK 3B
f13889be9094 dt-bindings: clock: airoha: Add reset support to EN7581 clock binding
b870448fd388 dt-bindings: clock: mediatek: Document reset cells for MT8188 sys
397708714de7 dt-bindings: clock: mediatek: add syscon compatible for mt7622 pciesys
7e4096e9fb65 dt-bindings: clock: sprd,sc9860-clk: convert to YAML
018ccc1edce8 dt-bindings: clock: qoriq-clock: convert to yaml format
7ffd4a91a563 dt-bindings: input: ti,nspire-keypad: convert to YAML format
396458d269b7 Merge branch '20240430064214.2030013-3-quic_varada@quicinc.com' into clk-for-6.11
62f4e84a2336 dt-bindings: clock: qcom: Add AHB clock for SM8150
2e8eb07621fb Merge tag 'v6.11-rockchip-dts32-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
2a64b79ccfd7 Merge tag 'v6.11-rockchip-dts64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
45dfc87dbe5a ASoC: dt-bindings: update fsl-asoc-card bindings after imx-spdif merge
58c9c1ccf03b Merge tag 'riscv-dt-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/dt
3fdb6bced49b dt-bindings: gpio: vf610: Allow gpio-line-names to be set
f7844ec66005 Merge tag 'qcom-arm64-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
6954ce51e6db Merge tag 'mvebu-dt64-6.11-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/dt
75b29f27ea84 Merge tag 'mvebu-dt-6.11-1' of https://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/dt
676410799b80 Merge tag 'ti-k3-dt-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt
0c4032f41e87 Merge tag 'stm32-dt-for-v6.11-1' of https://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into soc/dt
6103a22a3d12 Merge tag 'qcom-arm32-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt
916530010708 ARM: dts: ixp4xx: nslu2: beeper uses PWM
0c54efbf58ea Merge tag 'sunxi-dt-for-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt
4c715e97ba11 Merge tag 'imx-dt64-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
8d263f1d338e Merge tag 'imx-dt-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
ed6d6b7f8f90 Merge tag 'imx-bindings-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
f7db5a942335 Merge tag 'dt-cleanup-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt
9cff9fef0a29 arm64: dts: rockchip: add ROCK 5 ITX board
7e46de278e0a dt-bindings: arm: rockchip: Add ROCK 5 ITX board
a00bdba24234 arm64: dts: rockchip: Add dma-names to uart1 on Pine64 rk3566 devices
02e749a00324 arm64: dts: rockchip: Add avdd supplies to hdmi on rock64
5bc47a15d674 Merge tag 'dt64-cleanup-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt
7a6a4e53c5ae Merge tag 'samsung-dt64-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
16237eee1086 Merge tag 'tegra-for-6.11-arm64-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
8963d7243322 spi: dt-bindings: fsl-dspi: add compatible string 'fsl,lx2160a-dspi'
7c50939c9f09 spi: dt-bindings: fsl-dspi: add dmas and dma-names properties
fe93031f93dc regulator: dt-bindings: pca9450: Make interrupt optional
0c49d7f0e319 arm64: dts: qcom: msm8916-lg-c50: add initial dts for LG Leon LTE
25a68f4ce880 arm64: dts: qcom: msm8916-lg-m216: Add initial device tree
1ad8ed547640 dt-bindings: arm: qcom: Add msm8916 based LG devices
c2a158926b34 ARM: dts: qcom: msm8960: correct memory base
e2f1020338fd arm64: dts: qcom: ipq9574: Add icc provider ability to gcc
50c5d252c323 Merge branch '20240430064214.2030013-3-quic_varada@quicinc.com' into arm64-for-6.11
885a7e671637 dt-bindings: interconnect: Add Qualcomm IPQ9574 support
991ea9193259 arm64: dts: qcom: sm8150: Add video clock controller node
5fcbf1c2194f arm64: dts: qcom: pm6150: Add vibrator
d5c5748cd0d1 arm64: dts: qcom: sc7280: Enable download mode register write
8d8cf0c49e85 arm64: dts: qcom: sm7225-fairphone-fp4: Add PM6150L thermals
7184998dc765 arm64: dts: qcom: sm7225-fairphone-fp4: Add PMK8003 thermals
5d523c428df9 arm64: dts: qcom: sm6350: Add missing qcom,non-secure-domain property
d45dffbdeb99 arm64: dts: qcom: sdm845: Disable SS instance in Parkmode for USB
928626df4e4b arm64: dts: qcom: msm8996: Disable SS instance in Parkmode for USB
c4947103d8c0 arm64: dts: qcom: sm6350: Disable SS instance in Parkmode for USB
acd74ac0ce76 arm64: dts: qcom: sm6115: Disable SS instance in Parkmode for USB
8c5e03576478 arm64: dts: qcom: sdm630: Disable SS instance in Parkmode for USB
11abd9dcbab3 arm64: dts: qcom: msm8998: Disable SS instance in Parkmode for USB
82f9ec8740c5 arm64: dts: qcom: ipq8074: Disable SS instance in Parkmode for USB
0493efca055e arm64: dts: qcom: ipq6018: Disable SS instance in Parkmode for USB
0d082fef72d7 arm64: dts: qcom: x1e80100: add Lenovo Thinkpad Yoga slim 7x devicetree
4be6ff6058b7 dt-bindings: arm: qcom: Add Lenovo Yoga Slim 7x
26cdbcf701ab dt-bindings: crypto: sun8i-ce: Add compatible for H616
003f1715ce24 dt-bindings: pwm: describe the cells in #pwm-cells in pwm.yaml
9048d89f3576 arm64: dts: add description for solidrun cn9132 cex7 module and clearfog board
a0b8fa3e3a7c arm64: dts: add description for solidrun cn9131 solidwan board
48bf845b6c15 arm64: dts: add description for solidrun cn9130 som and clearfog boards
7b16cb394a85 dt-bindings: arm64: marvell: add solidrun cn9132 CEX-7 evaluation board
19f143e3adf1 dt-bindings: arm64: marvell: add solidrun cn9130 som based boards
ed32d5d2798a arm64: dts: armada-3720: align LED node name with bindings
f5c8545460ad arm64: dts: armada-3720: align GPIO keys node name with bindings
e99419a98d76 ARM: dts: turris-omnia: Add GPIO key node for front button
1fc6569deae2 ARM: dts: turris-omnia: Add MCU system-controller node
7ce891813450 arm64: dts: st: describe power supplies for stm32mp257f-ev1 board
0c74c4dcbd7d arm64: dts: st: add scmi regulators on stm32mp25
95317624c48e regulator: Add STM32MP25 regulator bindings
d2a9e9561644 ARM: dts: stm32: omit unused pinctrl groups from stm32mp13 dtb files
ec37b02156d4 arm64: dts: st: enable Ethernet2 on stm32mp257f-ev1 board
607a4bdb2441 arm64: dts: st: add eth2 pinctrl entries in stm32mp25-pinctrl.dtsi
832bd9ddbed6 arm64: dts: st: add ethernet1 and ethernet2 support on stm32mp25
364e77fa690e arm64: dts: st: add HPDMA nodes on stm32mp251
102ffbcf581c ARM: dts: stm32: Add ethernet support for DH STM32MP13xx DHCOR DHSBC board
81fe1c60d5fe ARM: dts: stm32: order stm32mp13-pinctrl nodes
c9d39bb8fac5 ARM: dts: stm32: add ethernet1 for STM32MP135F-DK board
0b2f62247393 ARM: dts: stm32: add ethernet1/2 RMII pins for STM32MP13F-DK board
c2db8b3a0b41 ARM: dts: stm32: add ethernet1 and ethernet2 support on stm32mp13
61c1b896cce2 ARM: dts: stm32: Document output pins for PWMs on stm32mp135f-dk
cce2ad19ee98 ARM: dts: stm32: OP-TEE async notif interrupt for ST STM32MP15x boards
571c0f6f9f51 ARM: dts: marvell: orion: align LED node name with bindings
c656f939fa93 ARM: dts: marvell: orion5x-lswsgl: use 'gpios' property for LEDs
e923b78f5e93 ARM: dts: marvell: orion: drop incorrect address/size-cells in GPIO keys
37a2c149e9f2 ARM: dts: marvell: orion: align GPIO keys node name with bindings
13c5d364c787 ARM: dts: marvell: kirkwood: align LED node name with bindings
abbf4e4e73af ARM: dts: marvell: kirkwood: drop incorrect address/size-cells in GPIO keys
bb5d011e2426 ARM: dts: marvell: kirkwood: align GPIO keys node name with bindings
6310e6d19eab ARM: dts: armada-{370-xp,375,38x,39x}: Drop #size-cells from mpic node
95bc7703faa4 ARM: dts: marvell: Add 7-segment LED display on x530
5bde4c2dfaaf dt-bindings: regulator: sprd,sc2731-regulator: convert to YAML
d251a2b6977a Merge tag 'drm-msm-next-2024-07-04' of https://gitlab.freedesktop.org/drm/msm into drm-next
017d00aa427a Merge tag 'drm-misc-next-2024-07-04' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
d8a1b9753e9e ARM: dts: stm32: Missing clocks for stm32f429's syscfg.
96139b1495f0 ARM: dts: stm32: Add support for STM32MP13xx DHCOR SoM and DHSBC board
ad020995069f ARM: dts: stm32: Add pinmux nodes for DH electronics STM32MP13xx DHCOR SoM and DHSBC board
af88c9c14505 Merge tag 'mediatek-drm-next-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-next
645ce8dcc8f5 Merge v6.10-rc6 into drm-next
088cd17e4117 dt-bindings: net: Add Synopsys DW xPCS bindings
f9f617157dbd dt-bindings: nvmem: mediatek: efuse: add support for MT7988
7649d5be02c6 dt-bindings: nvmem: amlogic,meson-gx-efuse: add optional power-domains
1c6b97edfec1 dt-bindings: nvmem: mediatek: efuse: add support for MT7981
c78020e9e16a dt-bindings: net: Define properties at top-level
0017572a2a6f Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
410637326c73 Merge branch 'icc-rpmh-qos' into icc-next
e261d09d8162 Merge branch 'icc-msm8953' into icc-next
12eab66dc672 arm64: dts: rockchip: fixes PHY reset for Lunzn Fastrhino R68S
a6f5f66a6ecb arm64: dts: rockchip: disable display subsystem for Lunzn Fastrhino R6xS
963cc1782a88 arm64: dts: rockchip: remove unused usb2 nodes for Lunzn Fastrhino R6xS
2e501626c1aa arm64: dts: rockchip: fix pmu_io supply for Lunzn Fastrhino R6xS
d1c53b897cdf arm64: dts: rockchip: fix usb regulator for Lunzn Fastrhino R6xS
eea7e8b6e78d arm64: dts: rockchip: fix regulator name for Lunzn Fastrhino R6xS
f57b1b04499c arm64: dts: rockchip: Add dma-names to uart1 on quartz64-b
cd56feed3f77 arm64: dts: rockchip: Update GPU OPP voltages in RK356x SoC dtsi
59eed2be863e arm64: dts: rockchip: Add GPU OPP voltage ranges to RK356x SoC dtsi
c18dd0c3aa84 arm64: dts: rockchip: Drop ethernet-phy-ieee802.3-c22 from PHY compatible string on all RK3588 boards
e911eeda5b33 arm64: dts: rockchip: Add missing power-domains for rk356x vop_mmu
94e24eb26013 dt-bindings: clock: rk3188-cru-common: remove CLK_NR_CLKS
4a2da3337148 ARM: dts: rockchip: Drop ethernet-phy-ieee802.3-c22 from PHY compatible string on edgeble-neu2
f7a20549280b dt-bindings: mfd: syscon: Add APM poweroff mailbox
9876c0b72841 dt-bindings: mfd: syscon: Split and enforce documenting MFD children
bdd39fcf6b9c dt-bindings: mfd: rk817: Merge support for RK809
b247892b34ee dt-bindings: mfd: rk817: Fixup clocks and reference dai-common
7a6071d60652 dt-bindings: mfd: syscon: Add TI's opp table compatible
05ed08c85116 dt-bindings: mfd: Explain lack of child dependency in simple-mfd
c4ccb5d873fb dt-bindings: mfd: Dual licensing for st,stpmic1 bindings
9744deeab207 dt-bindings: mfd: syscon: Add more simple compatibles
31467be88d15 dt-bindings: mfd: qcom,spmi-pmic: Document PMC8380
d08ee62df724 dt-bindings: mfd: qcom-spmi-pmic: Document SMB2360 PMIC
b1ec25874c43 dt-bindings: mfd: mediatek,mt8195-scpsys: Add mediatek,mt8365-scpsys
74b8b8fcfefe dt-bindings: mfd: mediatek,mt8195-scpsys: Add support for MT8188
085ab6c21bb6 dt-bindings: mfd: syscon: Add ti,am625-dss-oldi-io-ctrl compatible
5452c6776c96 Merge branch 'ib-mfd-regulator-watchdog-6.11' into ibs-for-mfd-merged
0f3f78f1254e Merge branch 'ib-mfd-regulator-pm8008-6.11' into ibs-for-mfd-merged
50a3510b62b6 Merge branch 'ib-mfd-input-regulator-6.11' into ibs-for-mfd-merged
f7aceb4e1b7b Merge branch 'ib-mfd-firmware-input-sound-soc-6.11' into ibs-for-mfd-merged
4f1ba4c8d0cb dt-bindings: PCI: qcom: x1e80100: Make the MHI reg region mandatory
fe640fe19fd5 dt-bindings: PCI: generic: Add ats-supported property
805587edd690 dt-bindings: PCI: mediatek,mt7621-pcie: Add PCIe host topology ASCII graph
b25240bd2166 dt-bindings: PCI: qcom: Add OPP table
11fe9c98119b dt-bindings: PCI: xilinx-cpm: Fix overlapping of bridge register and 32-bit BAR addresses
2b03c724d6f2 dt-bindings: PCI: rockchip: Add DesignWare based PCIe Endpoint controller
619d54d269fc arm64: dts: fvp: Enable PCIe ATS for Base RevC FVP
482228799d57 dt-bindings: PCI: generic: Add ats-supported property
2dd7095f8cf6 dt-bindings: regulator: ti,tps65132: document VIN supply
0aa62a03b527 dt-bindings: sound: fsl,qmc-audio: Add support for multiple QMC channels per DAI
50487e005de9 dt-bindings: vcpu_stall_detector: Add a PPI interrupt to the virtual device
29adce4044f8 Merge tag 'iio-for-6.11b' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next
4c40eb07f1a1 dt-bindings: power: supply: add support for MAX17201/MAX17205 fuel gauge
5c411e7da361 dt-bindings: mfd: twl: Fix example
2285aae66753 MIPS: mobileye: eyeq5: add OLB system-controller node
335d3a5b24aa dt-bindings: soc: mobileye: add EyeQ OLB system controller
6645347e5f82 arm64: dts: ti: k3-am62a7-sk: Reserve 576MiB of global CMA
2efc050e8b45 arm64: dts: ti: k3-am62x-sk-common: Reserve 128MiB of global CMA
1d5623999a2d dt-bindings: usb: Convert fsl-usb to yaml
3096ed508c9c Merge tag 'ath-next-20240702' of git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath
6e076e43f5ee Merge tag 'counter-updates-for-6.11' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wbg/counter into char-misc-next
b2edaa031b7b dt-bindings: display/msm: dsi-controller-main: Add SM7150
027210cbdce2 dt-bindings: pinctrl: pinctrl-single: Fix pinctrl-single,gpio-range description
40f10e0d6461 dt-bindings: pinctrl: npcm8xx: add missing pin group and mux function
d72883d7ea25 dt-bindings: pinctrl: pinctrl-single: fix schmitt related properties
a7a4199d372f dt-bindings: gpio: fsl,qoriq-gpio: Add compatible string fsl,ls1046a-gpio
74c05b2ec8ed dt-bindings: eeprom: at24: Add compatible for ONSemi N24S64B
4d9173e6db16 dt-bindings: eeprom: at24: Move compatible for Belling BL24C16A to proper place
564493bc5bee dt-bindings: eeprom: at24: Add Microchip 24AA025E48/24AA025E64
dff8bbf52fb5 arm64: dts: renesas: rz-smarc: Replace fixed regulator for USB VBUS
3ed2c5389bdc dt-bindings: reset: renesas,rzg2l-usbphy-ctrl: Document USB VBUS regulator
abd7c05bb744 ARM: dts: qcom: qcom-msm8226-samsung-ms013g: Add initial device tree
080806d00c1f dt-bindings: arm: qcom: Document samsung,ms013g
a5f9aa63eab9 arm64: dts: qcom: Add device tree for ASUS Vivobook S 15
eea1cc9bacd4 dt-bindings: arm: qcom: Add ASUS Vivobook S 15
e5e4173be34f arm64: dts: qcom: qrb4210-rb2: Correct max current draw for VBUS
96770847be86 dt-bindings: hwmon: Add MPS mp5920
08c18d10f7b8 Add master clock handling for nau8824
172d4c69fb5c ASoC: dt-bindings: realtek,rt5645: Convert to dtschema
8658ffe6b403 dt-bindings: arm-smmu: Add X1E80100 GPU SMMU
0b4bd04507af arm64: dts: qcom: msm8998: add venus node
7e70bce432a3 dt-bindings: net: dwmac: Validate PBL for all IP-cores
5d4901df4d30 dt-bindings: phy: airoha: Add dtime and Rx AEQ IO registers
b22b7295b9f5 dt-bindings: phy: rockchip-emmc-phy: Convert to dtschema
27327d312773 dt-bindings: phy: qcom,qmp-usb: fix spelling error
82040f36552e dt-bindings: phy: samsung,usb3-drd-phy: add gs101 compatible
ac9fc91f6d13 ASoC: dt-bindings: nau8824: Add master clock handling
8b0c9a364553 ASoC: simple-audio-mux: add state-labels
616dc1cf83be ASoC: codecs: wsa88xx: add support for static port
89366366293a arm64: dts: imx8mp: Remove 'snps,rx-sched-sp'
61fec67efe66 arm64: dts: qcom: sa8775p-ride-r3: add new board file
46cb83e3b1ed arm64: dts: qcom: move common parts for sa8775p-ride variants into a .dtsi
4fd1e981a329 dt-bindings: arm: qcom: add sa8775p-ride Rev 3
ad885407d1d9 arm64: dts: qcom: sm8550-qrd: add port mapping to speakers
d6a037bae62b arm64: dts: qcom: sm8550-mtp: add port mapping to speakers
5f125210af75 arm64: dts: qcom: sm8550-hdk: add port mapping to speakers
f6f9f2c115e7 arm64: dts: qcom: sm8650-qrd: add port mapping to speakers
d52b58a90b48 arm64: dts: qcom: sm8650-mtp: add port mapping to speakers
cb00f5d9cf4e arm64: dts: qcom: sm8650-hdk: add port mapping to speakers
7dfbdcd85447 arm64: dts: qcom: sm7225-fairphone-fp4: Name the regulators
3b63242112eb ARM: dts: qcom: apq8064: drop incorrect ranges from QFPROM
43df76fdb553 arm64: dts: qcom: pm8916: correct thermal zone name
4b9adefc1253 arm64: dts: qcom: x1e80100: Add gpu support
ed2e5ec93e96 arm64: dts: qcom: x1e80100: Fix USB HS PHY 0.8V supply
22f87ddcf53f dt-bindings: iio: adc: Add MediaTek MT6359 PMIC AUXADC
2c8afbc754c3 spi: dt-bindings: snps,dw-apb-ssi.yaml: update compatible property
bef687918b1a ASoC: dt-bindings: realtek,rt5677: Convert to dtschema
873ee911e8c8 arm64: dts: ti: k3-am62x-sk-common: Fix graph_child_address warns
c72ca122fbee arm64: dts: ti: k3-am62p5-sk: fix graph_child_address warnings
4f02610dcef0 arm64: dts: ti: k3-j722s: Add gpio-ranges properties
fa8a0e487c6f arm64: dts: ti: k3-am62p: Add gpio-ranges properties
0c2db20a2c3a arm64: dts: ti: k3-pinctrl: Define a generic GPIO MUX Mode
232953a87976 arm64: dts: ti: k3-am62: Add cpsw-mac-efuse node to wkup_conf
fa13307a70a2 arm64: dts: ti: k3-am62a: Add cpsw-mac-efuse node to wkup_conf
9f32cdf881d6 arm64: dts: ti: k3-j784s4: Add cpsw-mac-efuse node to mcu_conf
c1677680c837 arm64: dts: ti: k3-j721s2: Add cpsw-mac-efuse node to mcu_conf
852348dcd5cd arm64: dts: ti: k3-j721e: Add cpsw-mac-efuse node to mcu_conf
f0a37fce397c arm64: dts: ti: k3-j7200: Add cpsw-mac-efuse node to mcu_conf
9094067e5148 arm64: dts: ti: k3-am65: Add cpsw-mac-efuse node to mcu_conf
992080a19bcb arm: dts: k3-am642-evm-nand: Add bootph-all to NAND related nodes
52a139b2a2d7 arm64: dts: ti: Add basic support for phyBOARD-Lyra-AM62Ax
b659096fb072 dt-bindings: arm: ti: Add bindings for PHYTEC AM62Ax based hardware
8fffc78474d2 arm64: dts: ti: Add am62x-phyboard-lyra carrier board
ad2898c48be6 arm64: dts: ti: k3-am62a: Enable AUDIO_REFCLKx
bf2056403b68 arm64: dts: ti: k3-j784s4-evm: Enable analog audio support
e9d597d9a35e arm64: dts: ti: k3-j784s4-main: Add audio_refclk node
cee08b7de44b arm64: dts: ti: k3-j784s4-main: Add McASP nodes
aea3ca8f5af2 arm64: dts: ti: am62-lp-sk: Add overlay for NAND expansion card
954a6fff27ca arm64: dts: ti: k3-am62: Add GPMC and ELM nodes
127da96ddec0 arm64: dts: ti: k3-j722s-evm: Enable analog audio support
c3bd49374718 arm64: dts: ti: k3-j722s-main: Add audio_refclk node
94e50d6c0bac arm64: dts: ti: k3-am68-sk-som: Add support for OSPI flash
ca3bab294142 arm64: dts: ti: k3-am6xx-phycore-qspi-nor: Add overlay to enable QSPI NOR
8c1f1898dc7d arm64: dts: ti: k3-am64-tqma64xxl: relicense to GPL-2.0-only OR MIT
4b8c791e6a59 arm64: dts: k3-am625-verdin: enable nau8822 pll
643db78b02a3 dt-bindings: perf: fsl-imx-ddr: Add i.MX95 compatible
9dc5c376b8f6 arm64: dts: imx8mm-verdin: add TPM device
ad74190753a6 arm64: dts: imx8mp-evk: Add audio XCVR sound card
1d9b6559ba4e arm64: dts: imx8mp: Add audio XCVR device node
225071a9b006 arm64: dts: imx8mp: Update Fast ethernet PHY MDIO addresses to match DH i.MX8MP DHCOM rev.200
8ff7d0e47c4c arm64: dts: imx8mp: Do not reconfigure Audio PLL2 on DH i.MX8M Plus DHCOM SoM
f0cfa0ee27db arm64: dts: layerscape: rename b(q)man-portals to b(q)man-portals-bus
92a7ae37a895 arm64: dts: fsl-ls1046a: rename thermal node name
94fbc974e8e1 arm64: dts: fsl-ls1043a: remove unused clk-name at watchdog node
4ca05f8e7d80 arm64: dts: layerscape: rename aux_bus to aux-bus
f7642e8d2771 arm64: dts: layerscape: change pcie interrupt order
b34412775adb arm64: dts: layerscape: rename node name "wdt" to "watchdog"
b5125b74ef80 arm64: dts: layerscape: add #dma-cells for qdma
560c63c495ec arm64: dts: layerscape: remove compatible string 'fsl,fman-xmdio' for fman3
a87c6cb26508 arm64: dts: layerscape: replace node name 'nor' with 'flash'
4e5f09fba0c2 arm64: dts: fsl-ls1012a: remove property 'snps,host-vbus-glitches'
5ea89b1a0b68 arm64: dts: fsl-lx2160a: fix #address-cells for pinctrl-single
b36ba5aa009f arm64: dts: layerscape: add platform special compatible string for gpio
bac76afe060c arm64: dts: layerscape: rename node 'timer' as 'rtc'
baab942a40ef arm64: dts: imx8qxp-mek: Pass memory-region to the DSP node
110549448eca arm64: dts: imx95-19x19-evk: add PCIe[0,1] support
c243785d150a arm64: dts: imx95-19x19-evk: add lpi2c7 and expander gpio pcal6524
6f1965780648 arm64: dts: imx95: add pcie[0,1] and pcie-ep[0,1] support
5fa42612ff40 arm64: dts: imx95: add '#address-cells' and '#size-cells' for all i2c
219f1f05eb4f arm64: dts: fsl-ls1043a-rdb: use common spi-cs-setup(hold)-delay-ns
fff6574f40fd arm64: dts: imx93-11x11-evk: reorder lpi2c2, lpi2c3, mu1 and mu2 label
786ca0f57ff6 arm64: dts: imx93-11x11-evk: fix duplicated lpi2c3 labels
75dec843d08c Merge tag 'imx-fixes-6.10' into imx/dt64
d26df61f97fd arm64: dts: imx8mp: Fix pgc vpu locations
3737b005a4a3 arm64: dts: imx8mp-venice-gw74xx: add DP83867 configuration
3044d329b92f arm64: dts: imx8mp-venice-gw702x: add support for PHY LED's
f182d73a2626 arm64: dts: imx8mm-venice-gw700x: add support for PHY LED's
d3db1dc8839a arm64: dts: freescale: imx8m*-venice-*: fix gw,gsc dt-schema warnings
9c2deab85d38 arm64: dts: imx8mp: Fix pgc_mlmix location
6896a8965e07 arm64: dts: imx8dxl-evk: add imx8dxl_cm4, lsio mu5, related memory region
404e19dc4843 arm64: dts: freescale: add TQMa8MPQL on MBa8MP-RAS314
351776b51351 dt-bindings: arm: pmu: Add new Cortex and Neoverse cores
13e0277614be ASoC: dt-bindings: wsa8840: Document port mapping property
64fbaceb813b ASoC: dt-bindings: wsa883x: Document port mapping property
196cd9f46b12 Merge tag 'amlogic-arm64-dt-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt
7a5851618f58 arm/arm64: dts: arm: Use generic clock and regulator nodenames
74b264fb6eab Merge tag 'microchip-dt64-6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/dt
4a5beeb6c23e ARM: dts: turris-omnia: Add GPIO key node for front button
535946d93f93 ARM: dts: turris-omnia: Add MCU system-controller node
b8d58c4b1978 dt-bindings: firmware: add cznic,turris-omnia-mcu binding
12771b2b9bd2 Merge tag 'renesas-dts-for-v6.11-tag2-v2' of https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
d6c6b66c1c38 ASoC: dt-bindings: simple-audio-mux: add state-labels property
6ef635553b4a dt-bindings: soc: ti: Move ti,j721e-system-controller.yaml to soc/ti
e61fd937cb60 arm64: dts: exynos850: Enable TRNG
064bd3f4239e riscv: dts: starfive: add PCIe dts configuration for JH7110
69340b4580b6 Merge 6.10-rc6 into tty-next
487dc59c9594 spi: dt-bindings: fsl-dspi: Convert to yaml format
44648d5137af ASoC: dt-bindings: realtek,rt5659: Convert to dtschema
cb12f2b5d9e7 ASoC: dt-bindings: fsl_rpmsg: Add compatible string for i.MX95
305bea0b9eb0 Merge 6.10-rc6 into usb-next
f84eff05b6e9 Merge 6.10-rc6 into char-misc-next
6c5ae53f0fac dt-bindings: mtd: gpmi-nand: Add 'fsl,imx8qxp-gpmi-nand' compatible string
f3a93107760d arm64: dts: renesas: r8a779h0: R-Car Sound support
2f6509f24c66 arm64: dts: renesas: r8a779g0: Tidy up sound DT settings
32cd14b55dda arm64: dts: renesas: Add interrupt-names to arch timer nodes
ca43e03db36f ARM: dts: renesas: Add interrupt-names to arch timer nodes
283131cc4f4f arm64: dts: renesas: r9a08g045: Add missing hypervisor virtual timer IRQ
e6f864193159 arm64: dts: renesas: r9a07g054: Add missing hypervisor virtual timer IRQ
11014c614d4e arm64: dts: renesas: r9a07g044: Add missing hypervisor virtual timer IRQ
6d776e3ebaef arm64: dts: renesas: r9a07g043u: Add missing hypervisor virtual timer IRQ
ed7a29796e05 arm64: dts: renesas: r8a779g0: Add missing hypervisor virtual timer IRQ
5038f5a3c1c0 arm64: dts: renesas: r8a779f0: Add missing hypervisor virtual timer IRQ
467d04215747 arm64: dts: renesas: r8a779a0: Add missing hypervisor virtual timer IRQ
f6bccc274aa2 arm64: dts: renesas: r8a779h0: Drop "opp-shared" from opp-table-0
377bca17d6d6 arm64: dts: apm: Add dedicated syscon poweroff compatibles
b66d2d6fdff2 dt-bindings: input: cros-ec-keyboard: Add keyboard matrix v3.0
870d6cc60a92 dt-bindings: counter: Add new ti,am62-eqep compatible
c5c1c10869cf riscv: dts: allwinner: Add ClockworkPi and DevTerm devicetrees
ed51d4d99092 riscv: dts: allwinner: d1s-t113: Add system LDOs
2828a5484b9d dt-bindings: sram: sunxi-sram: Add regulators child
b34bd9487c4e dt-bindings: media: add qcom,msm8998-venus
fc655c8fe42c dt-bindings: display/msm/gmu: Add Adreno X185 GMU
010f66482c60 dt-bindings: iio: adc: adi,ad7606: comment and sort the compatible names
2ee434652388 dt-bindings: iio: adc: adi,ad7606: add missing datasheet link
2e9ffe4fbb14 media: dt-bindings: rc: add rc-mygica-utv3
b5607bdf5e8e dt-bindings: iio: stm32: dfsdm: fix dtbs warnings on dfsdm audio port
1136c28c1755 dt-bindings: interconnect: qcom: Add Qualcomm MSM8953 NoC
8ccc302c8c10 dt-bindings: hwmon: Add MPS mp2891
d8fa38847e5f Add audio support for LPC32XX CPUs
04d6bf0bb912 Merge tag 'v6.11-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
ee6e9d4ccfab Merge tag 'v6.11-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
2aa52a6f9ef1 Merge tag 'renesas-dt-bindings-for-v6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
ba7665edc433 Merge tag 'mtk-dts32-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt
188d0d5b331b Merge tag 'mtk-dts64-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt
37670585dc84 arm64: tegra: Restructure Orin NX/Nano device tree
7ca8b73978b7 Merge tag 'sti-dt-for-v6.11-round1' of https://git.kernel.org/pub/scm/linux/kernel/git/pchotard/sti into soc/dt
456d250dc03e arm: dts: arm: Drop redundant fixed-factor clocks
daae1a59728e dt-bindings: interrupt-controller: convert marvell,mpic binding to YAML
15c6548c562b ARM: dts: armada-{370-xp,375,38x,39x}: Drop #size-cells from mpic node
0c2e5b300e37 dt-bindings: mfd: Add entry for Marvell 88PM886 PMIC
a854f8f67c73 dt-bindings: input: cirrus,cs40l50: Add initial DT binding
d6f00c57bd3b Merge tag 'vexpress-updates-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/arm
39b2f3f647f9 ASoC: dt-bindings: fsl,xcvr: Adjust the number of interrupts
ca1bb52238fb ASoC: dt-bindings: lpc32xx: Add lpc32xx i2s DT binding
4949841b7477 powerpc/boot: Remove all 40x platforms from boot
fab375d8841c arm64: dts: rockchip: Delete the SoC variant dtsi for RK3399Pro
85b6c1408b66 arm64: dts: rockchip: Fix mic-in-differential usage on rk3568-evb1-v10
3c489ed6deef arm64: dts: rockchip: Fix mic-in-differential usage on rk3566-roc-pc
cc7e43ed2598 arm64: dts: rockchip: Drop invalid mic-in-differential on rk3568-rock-3a
55ef14c4c6a7 arm64: dts: rockchip: Add rock5b overlays for PCIe endpoint mode
753bed405c90 arm64: dts: rockchip: Add PCIe endpoint mode support
a4f97cf2b618 dt-bindings: display: add STM32 LVDS device
86b2223ec66e dt-bindings: display: panel: Add compatible for kingdisplay-kd101ne3
0c81a2122696 dt-bindings: display: simple: Add AUO G104STN01 panel
c8d32152a973 ARM: dts: sti: add thermal-zones support on stih418
7a7b6d6c7dfa ARM: dts: st: add thermal property on stih410.dtsi and stih418.dtsi
40ad84d82c0d dt-bindings: gpio: fsl,qoriq-gpio: add common property gpio-line-names
1b1e9fc36974 arm64: dts: amlogic: setup hdmi system clock
7ca9d3ced29f arm64: dts: amlogic: gx: correct hdmi clocks
81ab2e224016 dt-bindings: net: realtek,rtl82xx: Document known PHY IDs as compatible strings
545fc746daf5 dt-bindings: rng: Add Exynos850 support to exynos-trng
f1553d1d3919 dt-bindings: ti: fix TISCI protocol URL link
62abb0b64149 dt-bindings: rtc: Convert rtc-fsl-ftm-alarm.txt to yaml format
78b18026c5d9 Merge tag 'drm-misc-next-2024-06-27' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
edd469ee8db4 arm64: dts: qcom: qcs6490-rb3gen2: enable hdmi bridge
1376606fced0 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
698498427587 ARM: dts: rockchip: add #sound-dai-cells to hdmi node on rk3128
4377b57e47d5 ARM: dts: rockchip: add #sound-dai-cells to hdmi node no rk3036
f827d5f3292f Merge branch 'ib/ads7846-hsync' into next
93ddb60e9a48 Merge tag 'scmi-updates-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/drivers
cc95d35f9506 Merge tag 'socfpga_dts_updates_for_v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into soc/dt
c4aec9bbc766 Merge tag 'zynqmp-soc-for-6.11' of https://github.com/Xilinx/linux-xlnx into soc/dt
f88d837623de Merge tag 'juno-updates-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/dt
08b8d1fc5639 Merge tag 'renesas-dts-for-v6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
dc42361c2c5d Merge tag 'platform-drivers-x86-ib-lenovo-c630-v6.11-2' of https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86 into usb-next
1d5538193fac dt-bindings: usb: dwc2: switch to unevaluatedProperties
d7c2ed2e18bc arm64: dts: allwinner: h616: add IOMMU node
d254d60da336 ASoC: simple-card / audio-graph:
19a1947b34c4 media: dt-bindings: Add bindings for Raspberry Pi PiSP Back End
88c03013b6d6 arm64: dts: mediatek: Declare drive-strength numerically
8c62531bf50e dt-bindings: mips: brcm: Document brcm,bmips-cbr-reg property
470a5b004a29 dt-bindings: mfd: bd96801 PMIC core
8f64da089f3e dt-bindings: ROHM BD96801 PMIC regulators
aa2fc5b0543f dt-bindings: soc: ti: am654-serdes-ctrl: Move to dedicated schema
33a05bd1c573 dt-bindings: soc: microchip: sparx5-cpu-syscon: Move to dedicated schema
efc9ed749d42 dt-bindings: soc: intel: lgm-syscon: Move to dedicated schema
ec5149fc1b6a dt-bindings: soc: sprd: sc9863a-glbregs: Document SC9863A syscon
8b80b096361f dt-bindings: mfd: syscon: Drop hwlocks
0ff59f68591e arm64: dts: mt7622: fix switch probe on bananapi-r64
72e6177cd7c9 arm64: dts: mediatek: Add MT8186 Voltorb Chromebooks
aeb315d974d3 dt-bindings: arm: mediatek: Add MT8186 Voltorb Chromebooks
819ec4a5029f arm64: dts: mediatek: mt8183-kukui-jacuzzi: Add ports node for anx7625
787b5f1bd2b6 arm64: dts: mediatek: mt8183-pico6: Fix wake-on-X event node names
9f7d5f0f2550 arm64: dts: mt8173: Add G2Touch touchscreen node
126068b350d0 arm64: dts: mediatek: mt8183-kukui: Fix the value of `dlg,jack-det-rate` mismatch
b227018c089b arm64: dts: mediatek: mt8188: Add support for Mali GPU on Panfrost
193c6ed6242f arm64: dts: mediatek: mt8188: Add support for SoC power domains
1478d67a8557 arm64: dts: mediatek: mt8188: Add VDOSYS0/1 support for multimedia
1c24affc4fcc arm64: dts: mediatek: mt8188: Add Global Command Engine mailboxes
00dac5646992 arm64: dts: mediatek: mt8173-elm: drop PMIC's syscon node
54734e39a065 arm64: dts: mediatek: mt8365: use a specific SCPSYS compatible
a361706dff4e arm64: dts: mediatek: mt8365: drop incorrect power-domain-cells
528f37e62ec9 arm64: dts: mediatek: mt7981: add I2C controller
c9b2f35b365c arm64: dts: mediatek: mt7622: fix "emmc" pinctrl mux
fb9223474f55 arm64: dts: mediatek: mt7988: add I2C controllers
7808927c3e96 arm64: dts: mediatek: mt7988: add PWM controller
d9eab74f7c37 arm64: dts: mediatek: Add OpenWrt One
94108f5432a0 dt-bindings: arm64: dts: mediatek: Add OpenWrt One
632e88156c28 dt-bindings: vendor-prefixes: add OpenWrt
1a92c723525c arm64: dts: mediatek: Add mt7986 based Bananapi R3 Mini
223f8d2f314c dt-bindings: arm64: mediatek: add BananaPi R3 Mini
a96520eba088 arm64: dts: mediatek: mt7981: add efuse block
a4ed2ad3e74d arm64: dts: mediatek: mt7981: fix code alignment for PWM clocks
44e82b0f9745 arm64: dts: mediatek: mt7986a: bpi-r3: Convert to sugar syntax
3abed6d417dd arm64: dts: mediatek: mt8192-asurada: Add off-on-delay-us for pp3300_mipibrdg
f64f4e64160a arm64: dts: mediatek: add Kontron 3.5"-SBC-i1200
9957dd74d804 dt-bindings: arm64: mediatek: add Kontron 3.5"-SBC-i1200
fb62e898f72e arm64: dts: mediatek: mt8395-genio-1200-evk: add u3port1 for xhci1
bc5c7f58972b arm64: mediatek: mt8195-cherry: Introduce the MT8195 Dojo Chromebook
cf6f8953da39 dt-bindings: arm: mediatek: Add MT8195 HP Chromebook x360 13b-ca0002sa
a5f701258b4f arm64: dts: mediatek: mt8186-corsola: Specify sound DAI links and routing
feb3bffdeaf0 arm64: dts: mediatek: mt8195-cherry: Specify sound DAI links and routing
0ddc46d4be1f arm64: dts: mediatek: Drop mediatek,drive-strength-adv usage
6ec5b75f0620 arm64: dts: mediatek: mt8183-kukui: Drop bogus output-enable property
a6eed05e905c arm64: dts: mediatek: mt8395-nio-12l: Add power supplies for CPU/GPU scaling
28977a36a196 arm64: dts: mediatek: mt8395-nio-12l: Enable PHYs and USB role switch
8dee1cb52db0 arm64: dts: mediatek: mt8395-nio-12l: Define RSEL in microamperes
f68d804ff56c arm64: dts: medaitek: mt8395-nio-12l: Set i2c6 pins to bias-disable
9d4bb09ec836 arm64: dts: mediatek: mt8183: Refactor thermal zones
6124c6b665ad arm64: dts: mediatek: mt8192: Fix GPU thermal zone name for SVS
4f439642d3a9 arm64: dts: mediatek: mt8195: Fix GPU thermal zone name for SVS
8a8977166c97 arm64: dts: mediatek: add device-tree for Genio 700 EVK board
c5e90f4dfb63 dt-bindings: arm64: mediatek: add mt8390-evk board
dd3d95f33634 arm64: dts: mediatek: mt7981: add watchdog & WiFi controllers
246a854fd0c8 arm64: dts: mediatek: mt7988: add XHCI controllers
adc83b8e553f dt-bindings: soc: mediatek: Add support for MT8188 VPPSYS
3e7b225d188f arm64: dts: mediatek: Add missing chassis-type to MT8192 Chromebooks
af8afef83b25 arm64: dts: mediatek: Complete chassis-type for MT8183 Chromebooks
73c03d411592 arm64: dts: Add Airoha EN7581 SoC and EN7581 Evaluation Board
7fc3fd0bec17 dt-bindings: arm64: dts: airoha: Add en7581 entry
eda1887f8079 arm64: dts: mediatek: Add Cudy WR3000 V1
2d8291e5cefc arm64: dts: mediatek: mt7981: add pinctrl
372299a87d7b dt-bindings: arm64: dts: mediatek: Add Cudy WR3000 V1 router
9a9886e4afac dt-bindings: vendor-prefixes: add Cudy
352e7f750233 dt-bindings: net: add STM32MP25 compatible in documentation for stm32
644c4460e534 arm64: dts: amlogic: Add Amlogic S4 PWM
19990c89c3f8 ARM: dts: imx6qdl-kontron-samx6i: add actual device trees
6df92f0af21e ARM: dts: imx6qdl-kontron-samx6i: remove wake-up-gpio property
b852a14f153a ARM: dts: imx6qdl-kontron-samx6i: fix PCIe reset polarity
7c85a51af8e4 ARM: dts: imx6qdl-kontron-samx6i: fix node names
925e9778e323 ARM: dts: imx6qdl-kontron-samx6i: add SDIO_PWR_EN support
966d4b622923 ARM: dts: imx6qdl-kontron-samx6i: always enable eMMC
195f2e7f0b6f ARM: dts: imx6qdl-kontron-samx6i: fix product name
164fae57cbd3 ARM: dts: imx6qdl-kontron-samx6i: fix SPI0 chip selects
7a2075c73ab7 ARM: dts: imx6qdl-kontron-samx6i: cleanup the PMIC node
62b495b85d50 ARM: dts: imx6qdl-kontron-samx6i: fix board reset
478402a54bf9 ARM: dts: imx6qdl-kontron-samx6i: fix PHY reset
a31fcd5d47cf ARM: dts: imx6qdl-kontron-samx6i: fix phy-mode
45a59e221918 dt-bindings: arm: fsl: document Kontron SMARC-sAMX6i boards
75c2ed320920 dt-bindings: arm: add MBa8MP-RAS314 SBC
01b7a69de22c arm64: dts: imx8dxl-ss-conn: add gpmi nand
bcd156277fc5 arm64: dts: imx8-ss-conn: add gpmi nand node
748a0049c0c5 ARM: dts: nxp: imx6: convert NVMEM content to layout syntax
16a44584610c Add USB VBUS regulator for RZ/G2L
4631c20c54a0 ASoC: dt-bindings: amlogic,gx-sound-card: drop minItems for audio-widgets
3bc2603c91d5 ARM: dts: omap am5729-beagleboneai: drop unneeded ti,enable-id-detection
b0e5b80f3bf0 ASoC: audio-graph-port: add link-trigger-order
9346501d630e dt-bindings: display: panel: add Ilitek ili9806e panel controller
ca207e091629 dt-bindings: panel-simple-dsi: add lincoln LCD197 panel bindings
057b67caa65a dt-bindings: leds-lp55xx: Add new ti,lp5569 compatible
ee19acb5a353 dt-bindings: leds-lp55xx: Limit pwr-sel property to ti,lp8501
316b5f71197f dt-bindings: leds: Add Silergy SY7802 flash LED
130c091be77f Merge patch series "Add support for a few Zc* extensions, Zcmop and Zimop"
a7209e836d76 dt-bindings: riscv: add Zcmop ISA extension description
32ce188d78dd dt-bindings: riscv: add Zca, Zcf, Zcd and Zcb ISA extension description
39ae6cce759b dt-bindings: riscv: add Zimop ISA extension description
e4c8f65c7431 dt-bindings: soc: sti: st,sti-syscon: document codec node
8ac6e7a66084 ARM: dts: ti: align panel timings node name with dtschema
5af3947725b5 dt-bindings: pinctrl: aspeed,ast2600-pinctrl: add NCSI groups
f48ebd09f1cd dt-bindings: pinctrl: qcom: Add SM4250 pinctrl
f9f1f868a8c1 arm64: dts: amlogic: add power domain to hdmitx
2c51810f613f dt-bindings: display: meson-dw-hdmi: add missing power-domain
9b9a9de50743 arm64: dts: qcom: sm6115: add resets for sdhc_1
adfda2bbb957 arm64: dts: qcom: x1e80100: Add fastrpc nodes
c04df91b08ca arm64: dts: qcom: x1e80100: Add BWMONs
d8866de0e3ff dt-bindings: interconnect: qcom,msm8998-bwmon: Add X1E80100 BWMON instances
62e953885ec2 dt-bindings: interconnect: qcom,msm8998-bwmon: Remove opp-table from the required list
b2924dd329e7 arm64: dts: qcom: ipq6018: add sdhci node
e04e56b9224a ARM: dts: qcom: msm8926-motorola-peregrine: Add framebuffer supplies
77c0bdb9d1c6 ARM: dts: qcom: msm8926-motorola-peregrine: Update temperature sensor
0f52b044f3f3 ARM: dts: qcom: msm8926-motorola-peregrine: Add accelerometer, magnetometer, regulator
9bae13c1d79c arm64: dts: qcom: sc7280: Add clocks for QOS configuration
2b04714a636d arm64: dts: qcom: sm8650: Add video and camera clock controllers
c1efe58f5fb7 Merge branch '20240602114439.1611-1-quic_jkona@quicinc.com' into arm64-for-6.11
d105e553ba66 Merge branch '20240602114439.1611-1-quic_jkona@quicinc.com' into clk-for-6.11
4abbdce50568 dt-bindings: net: dsa: mediatek,mt7530: Minor wording fixes
11cbb8beabe6 dt-bindings: clock: qcom: Add SM8650 camera clock controller
cb715078fd07 dt-bindings: clock: qcom: Update the order of SC8280XP camcc header
395038364ccf dt-bindings: clock: qcom: Add SM8650 video clock controller
31e70f29efce dt-bindings: clock: qcom: Update SM8450 videocc header file name
2c38b81efa40 arm64: dts: qcom: pm8916: add temp-alarm thermal zone
bd749dc41ae6 arm64: dts: qcom: x1e80100-qcp: add audio support
129ecb168ea7 dt-bindings: iio: st-sensors: add LIS2DS12 accelerometer
1180d8e6b709 dt-bindings: iio: adf4350: add clk provider prop
f381ea112b46 dt-bindings: iio: adc: add ti,ads1119
2b4f01519d41 dt-bindings: display/msm/gpu: fix the schema being not applied
a41af83abe57 dt-bindings: display/msm/gpu: simplify compatible regex
94a274b4643e dt-bindings: display/msm/gpu: define reg-names in top-level
a788afae3dc5 dt-bindings: display/msm/gpu: constrain clocks in top-level
25d4870979fe regulator: Add bindings for MediaTek DVFSRC Regulators
4a75481a2582 arm64: dts: amlogic: g12: bump spdif output drive strength
2fb17caa577b arm64: dts: amlogic: sm1: fix spdif compatibles
ab6638f664dd dt-bindings: iommu: qcom,iommu: Add MSM8953 GPU IOMMU to SMMUv2 compatibles
ba6161c50d6a dt-bindings: iommu: add new compatible strings
7ca93a891e15 dt-bindings: net: cdns,macb: Deprecate magic-packet property
c502450f4868 dt-bindings: msm: dsi-phy-28nm: Document msm8937 compatible
84dd061f2740 dt-bindings: display/msm: qcom, mdp5: Add msm8937 compatible
bdf10c92f89f Merge patch series "dt-bindings: interrupt-controller: riscv,cpu-intc"
8c6c55383365 dt-bindings: riscv: cpus: add ref to interrupt-controller
c5b368bcc2dd dt-bindings: interrupt-controller: riscv,cpu-intc: convert to dtschema
bb4384c93fc9 dt-bindings: display/msm/dsi: allow specifying TE source
bedca719ed2b arm64: dts: rockchip: Increase VOP clk rate on RK3328
8b26cf42ba0c arm64: dts: rockchip: add gpio-line-names to radxa-zero-3
d808d9fee606 arm64: dts: rockchip: Split GPU OPPs of RK3588 and RK3588j
bc692467bbaf arm64: dts: rockchip: Add OPP data for CPU cores on RK3588j
04d2736a1df9 arm64: dts: rockchip: Add OPP data for CPU cores on RK3588
cb79ce85d6ac arm64: dts: rockchip: Add CPU/memory regulator coupling for 2 RK3588 boards
8324bc7493e4 arm64: dts: rockchip: fix mmc aliases for Radxa ZERO 3E/3W
431048c50e9f arm64: dts: rockchip: Add Neardi LBA3368 board
6a86c7f4eba1 dt-bindings: arm: rockchip: Add Neardi LBA3368
30e1185c5e84 dt-bindings: vendor-prefixes: Add Neardi Technology
f0caeb5a26b6 arm64: dts: rockchip: Enable PinePhone Pro vibrator
0b3420a3fab5 arm64: dts: rockchip: Enable PinePhone Pro IMU sensor
8d3d4f026872 arm64: dts: rockchip: Add Pinephone Pro support for GPIO LEDs
60f8d7de9cf9 arm64: dts: rockchip: Enable SPI flash on PinePhone Pro
dd40945a1d0e arm64: dts: rockchip: change spi-max-frequency for Radxa ROCK 3C
fde218de3133 arm64: dts: rockchip: add (but disabled) SFC node for Radxa ROCK 5A
5b50d73d3715 arm64: dts: rockchip: add SFC support for Radxa ROCK 5B
bc23c00c89d9 arm64: dts: rockchip: enable automatic fan control on Rock 5B
b527a384dce9 arm64: dts: rockchip: add passive GPU cooling on RK3588
14e5add5fcf0 arm64: dts: rockchip: enable thermal management on all RK3588 boards
33e7079543d5 arm64: dts: rockchip: add thermal zones information on RK3588
bf8f631f6202 arm64: dts: rockchip: Prepare RK3588 SoC dtsi files for per-variant OPPs
c1a8bf31d96d arm64: dts: rockchip: Add FriendlyElec CM3588 NAS board
f3e130bcb853 dt-bindings: arm: rockchip: Add FriendlyElec CM3588 NAS
3dd1653655c5 ARM: dts: rockchip: enable hdmi_sound and i2s0 for mk808 hdmi
e00282a99e81 media: dt-bindings: i2c: add GalaxyCore GC05A2 image sensor
5eaba2f16ce3 media: dt-bindings: i2c: add GalaxyCore GC08A3 image sensor
d80fcc67e81c dt-bindings: fuse: Document R-Car E-FUSE / OTP_MEM
108bf800bbcc dt-bindings: fuse: Document R-Car E-FUSE / PFC
a237b15be401 dt-bindings: serial: sc16is7xx: add reset-gpios
b0a2f330a33e dt-bindings: serial: vt8500-uart: convert to json-schema
4424fa1d93f8 dt-bindings: serial: mediatek,uart: add MT7988
4c0e43503ad2 dt-bindings: serial: Add documentation for Renesas RZ/V2H(P) (R9A09G057) SCIF support
8ec7c4dd4d54 dt-bindings: serial: renesas,scif: Make 'interrupt-names' property as required
05f061e77fdd dt-bindings: serial: renesas,scif: Validate 'interrupts' and 'interrupt-names'
61ac8c293830 dt-bindings: serial: renesas,scif: Move ref for serial.yaml at the end
a5355d52aa6a riscv: dts: starfive: jh7110: Add the core reset and jh7110 compatible for uarts
6ee809eee4b8 dt-bindings: serial: snps-dw-apb-uart: Add one more reset signal for StarFive JH7110 SoC
00938ca6b2cc dt-bindings: clock: rcar-gen2: Remove obsolete header files
93a2f90e5dae dt-bindings: clock: r8a7779: Remove duplicate newline
1c69648c3783 dt-bindings: interconnect: add clock property to enable QOS on SC7280
ae139066fd8a arm: dts: mediatek: Declare drive-strength numerically
df57b6016f20 arm64: dts: amlogic: ad402: fix thermal zone node name
5cdc16864c6e media: dt-bindings: Add Imagination E5010 JPEG Encoder
5eafadac3e6c arm64: dts: meson: add initial support for Dreambox One/Two
fb79dfb8abd5 dt-bindings: arm: amlogic: add support for Dreambox One/Two
760b80dc91b7 dt-bindings: add dream vendor prefix
3479297ef6e2 arm64: dts: meson: add support for OSMC Vero 4K
c3aca1695c51 dt-bindings: arm: amlogic: add OSMC Vero 4K
6059d5f5847e arm64: dts: qcom: sa8775p: add a dedicated memory carveout for TZ
57ae452a2fc8 dt-bindings: firmware: qcom,scm: add memory-region for sa8775p
c56e5741c444 arm64: dts: qcom: msm8976: Use mboxes in smsm node
2dd1561dbf08 arm64: dts: qcom: msm8953: Use mboxes in smsm node
5256d8af1685 arm64: dts: qcom: msm8939: Use mboxes in smsm node
95f17c0e881d arm64: dts: qcom: msm8916: Use mboxes in smsm node
08eeac2d578f ARM: dts: qcom: msm8974: Use mboxes in smsm node
792ac321ad35 arm64: dts: qcom: x1e80100: Enable tsens and thermal zone nodes
80edf3f389aa arm64: dts: qcom: qcm6490-fairphone-fp5: Configure PM8008 regulators
3170c49585b9 arm64: dts: qcom: sm7225-fairphone-fp4: Configure PM8008 regulators
b227df42c3ea arm64: dts: qcom: msm8916-gplus-fl8005a: Add BMS
2006c3130d2f dt-bindings: arm: qcom: Add Sony Xperia Z3 Compact
8e02c2cafb60 ARM: dts: qcom: msm8974-sony-shinano: increase load on l21 for sdhc2
d9b3dfcbdf76 ARM: dts: qcom: Add Sony Xperia Z3 Compact smartphone
6c680bb916ff ARM: dts: rockchip: Add SFC for RK3128
6afa1b71fb66 ARM: dts: qcom: use generic node names for Adreno and QFPROM
325e20f25b82 dt-bindings: clock: rk3128: Add HCLK_SFC
59e22bd1d054 dt-bindings: clock: rk3128: Drop CLK_NR_CLKS
fd734c5b3c4b ARM: dts: rockchip: add hdmi-sound node to rk3066a
bffb9e742cce ARM: dts: rockchip: Add spdif node for RK3128
8a45b75aac35 ARM: dts: rockchip: Add i2s nodes for RK3128
9eba8f5224bf ARM: dts: rockchip: Add DSI for RK3128
d3da4f5ce24c ARM: dts: rockchip: Add D-PHY for RK3128
9be7e4accf83 arm64: dts: hisilicon: hi3660: add dedicated hi3660-usb3-otg-bc compatible
3c2e65da34d4 dt-bindings: soc: hisilicon: document hi3660-usb3-otg-bc
e8fb7d7f8f9f arm: dts: aspeed: Use standard 'i2c' bus node name
317c638fdd01 arm: dts: nuvoton: Use standard 'i2c' bus node name
6cf23b45e43f spi: add devm_spi_optimize_message() helper
ebbcbfac14a6 ASoC: Add ak4619 codec support
c592005f8a1b ASoC: add compatible for ti,pcm5242
5178ee1e2814 ASoC: dt-bindings: convert everest,es7134.txt &
e87302bde56f tlv320adc3xxx: Allow MICBIAS pins to be used as
d12808dbea30 ARM: dts: nspire: Add full compatible for watchdog node
5e4e5faa2c3d ARM: dts: nspire: Add unit name addresses to memory nodes
f4ce0c4a4d06 dt-bindings: display/msm: Add SM7150 MDSS
cf3b09a69b9b dt-bindings: display/msm: Add SM7150 DPU
78c44c9f355d regulator: Merge up v6.10-rc4
889353999b73 arm64: dts: allwinner: rg35xx: Enable DVFS CPU frequency scaling
adce636b2919 arm64: dts: allwinner: h616: add additional CPU OPPs for the H700
6274dfe55e8d ASoC: dt-bindings: add ti,pcm5242 to pcm512x
c6ebe72f9e47 arm64: dts: allwinner: anbernic-rg35xx-h: Add ADC joysticks
a790c7004216 arm64: dts: allwinner: h616: Add GPADC device node
f7c9294626ce Merge branch 'sunxi/shared-clk-ids-for-6.11' into sunxi/dt-for-6.11
11f9b88a5caa dt-bindings: clock: sun50i-h616-ccu: Add GPADC clocks
be4ddf349915 ASoC: dt-bindings: cirrus,cs530x: Add initial DT binding
408c316d0e02 dt-bindings: adc: ad7173: add support for ad411x
5e495cea05cd dt-bindings: iio: adc: Add common-mode-channel property
10a66c61636b dt-bindings: input: touchscreen: edt-ft5x06: Add ft5426
3fdbb4dd165a dt-bindings: touchscreen: elan,ektf2127: Add EKTF2232
f082528be8b5 dt-bindings: touchscreen: convert elan,ektf2127 to json-schema
ce4f3b9bc536 arm64: dts: ti: k3-am62*-main: Remove unwanted properties from crypto
d01ba1f927d2 arm64: dts: ti: k3-am62a-main: Enable crypto accelerator
8627ae8b2884 Merge tag 'linux-can-next-for-6.11-20240621' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
50157490d29c dt-bindings: ads7846: Add hsync-gpios
c701fbb9fee5 dt-bindings: PCI: rockchip-dw-pcie: Fix description of legacy IRQ
8dd41a2486ec dt-bindings: PCI: rockchip-dw-pcie: Prepare for Endpoint mode support
d0fa31ccdd66 dt-bindings: PCI: snps,dw-pcie-ep: Add tx_int{a,b,c,d} legacy IRQs
3ad49d47ba4e dt-bindings: PCI: snps,dw-pcie-ep: Add vendor specific interrupt-names
99796abcd4d1 dt-bindings: PCI: snps,dw-pcie-ep: Add vendor specific reg-name
0776dc67d190 dt-bindings: display: bridge: tc358767: Keep enum sorted
17321de43320 dt-bindings: display: mediatek: rdma: add compatible for MT8365 SoC
3656eb92fcdb dt-bindings: display: mediatek: ovl: add compatible for MT8365 SoC
83f48793bae0 dt-bindings: display: mediatek: gamma: add compatible for MT8365 SoC
1defcb89a90c dt-bindings: display: mediatek: dpi: add compatible for MT8365
fc07a319b544 dt-bindings: display: mediatek: dsi: add compatible for MT8365 SoC
3c919b9e7ec6 dt-bindings: display: mediatek: dither: add compatible for MT8365 SoC
c37c9ee3999b dt-bindings: display: mediatek: color: add compatible for MT8365 SoC
bf2f5fafbbe3 dt-bindings: display: mediatek: ccorr: add compatible for MT8365 SoC
b01fea9984f0 dt-bindings: display: mediatek: aal: add compatible for MT8365 SoC
2d0d65354acf dt-bindings: net: mscc-miim: Add resets property
ca2f67d95c9f dt-bindings: net: remove arc_emac.txt
a69d7f400759 ARM: dts: rockchip: rk3xxx: fix emac node
cd4ab0e16f3d MIPS: dts: loongson: Add ISA node
685ed24e0b0b MIPS: dts: loongson: Fix GMAC phy node
948ccbf1fd11 MIPS: dts: loongson: Fix ls2k1000-rtc interrupt
8ceb1ba9386e MIPS: dts: loongson: Fix liointc IRQ polarity
b30647b42010 MIPS: Loongson64: Remove memory node for builtin-dtb
52e4613cf1c7 arm64: dts: qcom: sc8280xp-x13s: enable pm8008 camera pmic
40b6dbfd1474 arm64: dts: qcom: aim300: add AIM300 AIoT
ec793e8abf4d arm64: dts: qcom: add base AIM300 dtsi
ce30807fa92e arm64: dts: qcom: qcs8550: introduce qcs8550 dtsi
f4aca717f5ec dt-bindings: arm: qcom: Document QCS8550 SoC and the AIM300 AIoT board
997d115b5e22 arm64: dts: qcom: qdu1000: fix usb interrupts properties
b83e2896ac9b arm64: dts: qcom: qrb5165-rb5: add the Wifi node
ca4c4cb89a39 arm64: dts: qcom: sm8650-hdk: add the Wifi node
6a5ac37e660b arm64: dts: qcom: sm8650-qrd: add the Wifi node
4248d5813149 arm64: dts: qcom: sm8550-qrd: add the Wifi node
8abd32c9a81d arm64: dts: qcom: msm8916-gplus-fl8005a: Add sound and modem
bbe6414baff1 arm64: dts: qcom: qcm6490-shift-otter: Name the regulators
182195a9f261 arm64: dts: qcom: qcm6490-fairphone-fp5: Name the regulators
6ec1f9686feb arm64: dts: qcom: qdu1000: Add secure qfprom node
29a85d8a358e arm64: dts: qcom: sc7180-trogdor: Disable pwmleds node where unused
94f2c5ca780a arm64: dts: qcom: sm8650: drop second clock name from clock-output-names
1a57b098e81f arm64: dts: qcom: sm8550: drop second clock name from clock-output-names
ca2c5d4bab61 arm64: dts: qcom: sm8450: drop second clock name from clock-output-names
e26cafb1af5f arm64: dts: qcom: c630: Add Embedded Controller node
d8b26eed8c55 arm64: dts: qcom: sdm845: describe connections of USB/DP port
fb749a1f68c2 dt-bindings: net: Convert fsl-fman to yaml
c4169f1752ae dt-bindings: ptp: Convert ptp-qoirq to yaml format
6324d808bbd3 Merge tag 'drm-misc-next-2024-06-20' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
6d1a0d289bc0 Merge tag 'drm-misc-next-2024-06-13' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
7f6ef00716b4 Merge tag 'drm-misc-next-2024-06-06' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
d2a65dbba1fd Merge tag 'drm-misc-next-2024-05-30' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next
4aab25438827 dt-bindings: display: synopsys, dw-hdmi: Mark ddc-i2c-bus as deprecated
515d27993dda dt-bindings: display: synopsys, dw-hdmi: Document ddc-i2c-bus in core
a17fa871d999 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
10251c2cacd8 arm64: dts: amlogic: Used onboard usb hub reset on odroid n2
61a4af344668 dt-bindings: usb: Add the binding example for the Genesys Logic GL3523 hub
ed729e84f514 dt-bindings: usb: gpio-sbu-mux: Add an entry for TMUXHS4212
73c61be4c5bc dt-bindings: usb: qcom,dwc3: Add SC8180X compatibles
a449732742c4 dt-bindings: usb: cdns,usb3: use common usb-drd yaml
b654397b8cf6 dt-bindings: phy: airoha: Add PCIe PHY controller
139a406a93f8 regulator: dt-bindings: mt6315: Document MT6319 PMIC
699f790b1f36 dt-bindings: mmc: Convert fsl-esdhc.txt to yaml
f83527300cc0 dt-bindings: mmc: mmc-spi-slot: Change voltage-ranges to uint32-matrix
58c442806ba5 ASoC: dt-bindings: convert everest,es7134.txt to dt-schema
1eb581bb5458 ASoC: dt-bindings: convert everest,es7241.txt to dt-schema
0f5e7b5eecdb ASoC: dt-bindings: add missing vender prefix on filename
b995e82825fe dt-bindings: can: xilinx_can: Modify the title to indicate CAN and CANFD controllers are supported
55883d726a02 dt-bindings: media: mediatek: mdp3: Add support for MT8188 RDMA
304484744892 dt-bindings: mmc: meson-gx: add optional power-domains
985fdfc5ad82 dt-bindings: mmc: sdhci-msm: Document the SDX75 compatible
e0d89f15afae dt-bindings: mmc: Add support for BCM2712 SD host controller
e79ed47fec7a dt-bindings: arm: bcm: Add BCM2712 SoC support
f70e145bb72b arm64: dts: juno: Enable GPU
359adcff5dc0 arm64: dts: juno: add dedicated FPGA syscon compatible
b840da1e1e88 dt-bindings: arm: arm,juno-fpga-apb-regs: document FPGA syscon
167b2c2a8482 arm64: dts: exynos: gs101-oriole: add placeholder regulators for USB phy
fadf0b16f21f arm64: dts: ti: k3-am642-evm: Enable "SYNC_OUT0" output
c640d4e96794 arm64: dts: ti: k3-am62x-sk-common: Add bootph-all for I2C1 instance pinmux
ea5ddbe89a02 arm64: dts: ti: k3-am62p-j722s: Move SoC-specific node properties
db2a03bca3b5 arm64: dts: ti: k3-j722s: Enable PCIe and USB support on J722S-EVM
4a99d88640be arm64: dts: ti: k3-j722s-main: Add SERDES and PCIe support
1773fdfb045a arm64: dts: ti: k3-serdes: Add SERDES0/SERDES1 lane-muxing macros for J722S
876d825fa26b arm64: dts: ti: k3-j722s: Switch to k3-am62p-j722s-common-{}.dtsi includes
5aa393fbf373 arm64: dts: ti: k3-j722s: Add main domain peripherals specific to J722S
2a578d10250a arm64: dts: ti: k3-am62p-j722s: Move AM62P specific USB1 to am62p-main.dtsi
720cabda521b arm64: dts: ti: am62p: Rename am62p-{}.dtsi to am62p-j722s-common-{}.dtsi
abcd0ed7e4f5 arm64: dts: ti: am642-evm: Add overlay for NAND expansion card
878e31bcaf0d arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disable spi nor
379a2241db06 arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disable rtc
ecb45e649430 arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disable eth phy
c479c618458d arm64: dts: ti: k3-am64-phycore-som: Add serial_flash label
0a3b97d6bc29 arm64: dts: ti: k3-j721e: Add overlay for J721E Infotainment Expansion Board
c6550bccb361 arm64: dts: ti: am642-phyboard-electra: Add overlay to enable PCIe
e25824f14c10 arm64: dts: ti: am642-phyboard-electra: Remove PCIe pinmuxing
1618170d0807 arm64: dts: ti: k3-j784s4-main: Add node for EHRPWMs
f267be63dad1 ASoC: dt-bindings: ak4619: Add initial DT binding
c5076e654465 dt-bindings: gpu: mali-bifrost: Add compatible for MT8188 SoC
7bc8f6864ba0 riscv: dts: microchip: add an initial devicetree for the BeagleV Fire
7cdcc4ac7711 dt-bindings: riscv: microchip: document beaglev-fire
dd1fdf7eb9cc riscv: dts: starfive: Update flash partition layout
7c4d312b6840 riscv: dts: thead: th1520: Add PMU event node
119b05c2e749 riscv: dts: starfive: add Star64 board devicetree
3341bb3fb72b dt-bindings: riscv: starfive: add Star64 board compatible
aaf2e70da439 arm64: dts: ti: iot2050: Add IEP interrupts for SR1.0 devices
a39cec36c47e dt-bindings: net: Add IEP interrupt
3659bc02ff15 ASoC: dt-bindings: audio-graph-card2: add support for aux devices
ef7d6a907c39 dt-bindings: hwmon: ti,tmp108: document V+ supply, add short description
d2b1d8e084b3 ASoC: dt-bindings: tlv320adc3xxx: Add MICBIAS-as-GPO properties
b58e3051e374 dt-bindings: net: ethernet-controller: add 10g-qxgmii mode
57e8183fb001 dt-bindings: ata: ahci-fsl-qoriq: convert to yaml format
990a7c1fc03c Merge tag 'v6.10-rc4' into usb-next
119ab66456c2 dt-bindings: remoteproc: imx_rproc: Add minItems for power-domain
6cc9425706c0 dt-bindings: interrupt-controller: Add support for Microchip LAN966x OIC
e0fae4182277 ASoC: dt-bindings: realtek,rt5514: Convert to dtschema
e87c982f1cc5 ASoC: dt-bindings: realtek,rt5631: Convert to dtschema
4e5d4dbbc6ce dt-bindings: net: wireless: describe the ath12k PCI module
d7e7dcf400b2 dt-bindings: net: wireless: qcom,ath11k: describe the ath11k on QCA6390
3c24435cffbd dt-bindings: pinctrl: xilinx: Add support for function with pins
e3d47fd65403 dt-bindings: pinctrl: aspeed,ast2600-pinctrl: Describe I3C, USB
1d59b0e49ddb dt-bindings: pinctrl: aspeed,ast2500-pinctrl: Describe SGPM
ba66f806aad3 dt-bindings: pinctrl: aspeed: Use block syntax for function and groups
f3a30d7130a3 Merge tag 'renesas-pinctrl-for-v6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel
733cbf67ccef dt-bindings: firmware: arm,scmi: Add properties for i.MX95 Pinctrl OEM extensions
ffb8cefd9609 dt-bindings: pinctrl: qcom,pmic-gpio: Document PMC8380
23fc1a9433eb dt-bindings: pinctrl: Document nuvoton ma35d1 pin control
29c058ae8c68 dt-bindings: reset: Add syscon to nuvoton ma35d1 system-management node
c06bfbaeecfb dt-bindings: pinctrl: imx: Support i.MX91 IOMUXC
1659b629bffc arm64: zynqmp: Add pwm-fan node and fix ttc0 pwm-cells property
fd422e85ed65 arm64: zynqmp: Add support for K26 rev2 boards
873369daf816 arm64: zynqmp: Describe DisplayPort connector for Kria
c3755f380484 arm64: zynqmp: Add description for ina260 on kv260
97feab5ddf8e arm64: zynqmp: Add compatible string for kv260
61f97d0ba3dc arm64: zynqmp: Disable Tri-state for SDIO
ef3a26defce8 arm64: zynqmp: Remove address/size-cells from ams node
aebb2b83d644 arm64: zynqmp: Describe OCM controller
6bd3eb73303d arm64: zynqmp: Describe USB wakeup interrupt
7ca89154364f arm64: zynqmp: Add missing description for efuses
af2645a8c194 arm64: zynqmp: Use fpga-region as node name
f9837025af30 arm64: zynqmp: Align nvmem node with dt schema
53c15c5d452b Merge tag 'v6.10-rc4' into char-misc-next
6212d7a1b8f5 dt-bindings: memory: fsl: replace maintainer
de5a1550eb70 dt-bindings: arm: fsl: add i.MX93 9x9 QSB board
d3619cdf618f dt-bindings: arm: fsl: add i.MX95 19x19 EVK board
1955097b3773 dt-bindings: arm: fsl: Document Compulab IOT-GATE-iMX8
55ffe3e5634c arm64: dts: freescale: Support i.MX93 9x9 Quick Start Board
1951f593756d arm64: dts: freescale: add i.MX95 19x19 EVK minimal board dts
eaa2a07febab arm64: dts: freescale: add i.MX95 basic dtsi
b81ec85c8abb arm64: dts: imx8mm-iot-gateway: Add initial support
e9ecfb5e38e6 arm64: dts: layerscape: change thermal node name
562fe1dee8ac arm64: dts: layerscape: Change node name from 'esdhc' to 'mmc'
e56ea78e8d1e arm64: dts: imx8mp-msc-sm2s: Add HDMI output
ccb08e0483a5 arm64: dts: freescale: imx8mp-verdin: add HDMI support
05cb7dddf363 arm64: dts: imx8mp-debix-model-a: Enable HDMI output
be3cbb833806 arm64: dts: imx8: use defines for interrupts
58dfad47d913 arm64: dts: ls208xa: use defines for timer interrupts
bd6b12575c8a arm64: dts: freescale: use defines for interrupts
86c3ea025894 ARM: dts: e60k02: fix aliases for mmc
0f9c50976106 dt-bindings: Drop Li Yang as maintainer for all bindings
1b99acc8b7d3 arm64: dts: ls1028a-rdb: Add EEPROM nodes to I2C bus
f81534a2c9c4 Merge tag 'iio-for-6.11a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-testing
7e7dd5698d21 arm64: dts: imx8mp-beacon-kit: Fix errors found from CHECK_DTBS
070fadb49f83 arm64: dts: ls2160a: Change I2C clock name to ipg to fix DTB_CHECK warning
67da0accffca arm64: dts: ls208xa: Change I2C clock name to ipg to fix DTB_CHECK warning
502667bafb92 arm64: dts: ls1043a: Change I2C clock name to ipg to fix DTB_CHECK warning
166ccbfdddb3 arm64: dts: ls1012a: Reorder sai dma-names to clean up DTB_CHECK warning
8921c5b4f5ac dt-bindings: rng: meson: add optional power-domains
29a749153169 arm64: dts: imx8mp: Add imx8mp-specific irqsteer compatible
afaa14f38330 arm64: dts: freescale: imx8mp-verdin: don't limit i2c2 max. clock
1fff20a01ff9 arm64: dts: freescale: imx8mm-verdin: don't limit i2c2 max. clock
344e95378d10 arm64: dts: phygate-tauri-l: add overlays for RS232 and RS485
e5a9f1fa678f arm64: dts: phygate-tauri-l: enable pcie phy
0529751de381 ASoC: codecs: lpass: add support for v2.5 rx macro
3af35c085601 dt-bindings: phy: Add i.MX8Q HSIO SerDes PHY binding
f4666239b145 dt-bindings: phy: Add starfive,jh7110-dphy-tx
6c5e7bf76b43 dt-bindings: phy: qcom,usb-hs-phy: Add compatible
a0af0d584e2e dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: drop second output clock name
af0f9e759e82 arm64: dts: exynos: gs101: reorder properties as per guidelines
5d755abb3ee7 ARM: dts: imx: Add LVDS port data mapping on M53 Menlo
1e5c284f8857 arm64: dts: freescale: ls1028a: Reorder sai dma-names to fix warning
5de1e33517ec arm64: dts: freescale: ls1028a: Remove undocumented 'fsl,ls-pcie-ep'
cd94daf47dc8 arm64: dts: imx8mq-librem5: Don't wake up on volume key press
977a6878ba14 arm64: dts: imx8mp-tqma8mpql-mba8mpxl: Remove unused ocram node
bcbcacd295ec arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3
7e843da6d36b ARM: dts: imx28-tx28: drop redundant 'panel-name' property
cef3cd609336 ARM: dts: imx: drop redundant 'u-boot,panel-name' property
c3f6e7a7649f ARM: dts: imx6dl-aristainetos2_4: drop redundant 'power-on-delay' property
bc0dc13d4dc5 ARM: dts: imx: correct choice of panel native mode
93295300d928 ARM: dts: imx: align panel timings node name with dtschema
ec5a3090ae92 arm64: dts: imx8mp-evk: add bt-sco sound card support
1f9e2b057242 arm64: dts: imx8mp: Initialize audio PLLs from audiomix subsystem
e73ffa25cb29 dt-bindings: display: panel-edp-legacy: drop several eDP panels
cffe97832866 dt-bindings: sound: Convert max98088 to dtschema
31e6af346a28 ASoC: dt-bindings: convert tas571x.txt to dt-schema
29e70041cab6 dt-bindings: platform: Add Lenovo Yoga C630 EC
239aa1b26c12 dt-bindings: net: add STM32MP13 compatible in documentation for stm32
8154ba410b86 dt-bindings: firmware: arm,scmi: Add support for notification completion channel
5cf692edf49e dt-bindings: clock: sophgo: add clkgen for SG2042
d5c4b75e0b79 dt-bindings: clock: sophgo: add RP gate clocks for SG2042
8887902f69e7 dt-bindings: clock: sophgo: add pll clocks for SG2042
88fef3d9ee45 dt-bindings: net: dsa: lantiq,gswip: convert to YAML schema
bdc7fa4efbb1 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
05a7173cebac dt-bindings: iio: chemical: add ENS160 sensor
331df191d990 dt-bindings: vendor-prefixes: add ScioSense
b736352b1c28 dt-bindings: iio: light: add VEML6040 RGBW-LS
985c065b3020 dt-bindings: iio: adc: amlogic,meson-saradc: add optional power-domains
630da2896987 dt-bindings: iio: adc: ti,ads1015: add compatible for tla2021
4dcc08b8a6e7 mfd: pm8008: Rework to match new DT binding
893c50674025 dt-bindings: mfd: pm8008: Rework binding
dac8a6d7605e dt-bindings: mfd: pm8008: Drop redundant descriptions
83cbbd1eae56 dt-bindings: mfd: pm8008: Add reset gpio
915eed047caf dt-bindings: media: convert Mediatek consumer IR to the json-schema
8fda0b783313 dt-bindings: interconnect: Add MediaTek EMI Interconnect bindings
a7b27f102b00 arm64: dts: ti: k3-am642-sk: Add power supply temperature sensors
305fadd8a31b ARM: dts: qcom: motorola-falcon: add accelerometer, magnetometer
fc07a1dabdf8 arm64: dts: qcom: msm8916-acer-a1-724: Add sound and modem
c9bdb3194387 dt-bindings: soc: qcom,smsm: Allow specifying mboxes instead of qcom,ipc
1f1cc8fbc609 arm64: dts: qcom: qrb2210-rb1: Enable the GPU
e23b904d8220 arm64: dts: qcom: qcm2290: Add GPU nodes
577241491f84 Merge branch '20240606-topic-rb1_gpu-v4-1-4bc0c19da4af@linaro.org' into arm64-for-6.11
45a808074b35 Merge branch '20240606-topic-rb1_gpu-v4-1-4bc0c19da4af@linaro.org' into clk-for-6.11
0cfd0fbfe96f dt-bindings: clock: Add Qcom QCM2290 GPUCC
382492121a97 arm64: dts: qcom: qcm6490-fairphone-fp5: Use .mbn firmware for IPA
4614658a59a9 dt-bindings: clock: add qca8386/qca8084 clock and reset definitions
332e02304f2b dt-bindings: clock: qcom,sm8450-gpucc: reference qcom,gcc.yaml
a3cea8b5a2ca dt-bindings: clock: qcom,sm8550-dispcc: reference qcom,gcc.yaml
a7a6def17dfd dt-bindings: clock: qcom,sm8450-dispcc: reference qcom,gcc.yaml
bdfce787b460 dt-bindings: clock: qcom,sm6115-dispcc: reference qcom,gcc.yaml
f15963354917 dt-bindings: clock: qcom,sdm845-dispcc: reference qcom,gcc.yaml
95f614882df0 dt-bindings: clock: qcom,sc7280-dispcc: reference qcom,gcc.yaml
b44db77755ca dt-bindings: clock: qcom,sc7180-dispcc: reference qcom,gcc.yaml
ccb1fec013b0 dt-bindings: clock: qcom,qcm2290-dispcc: reference qcom,gcc.yaml
a8bec1f2a54e dt-bindings: clock: qcom,msm8998-gpucc: reference qcom,gcc.yaml
5162009ad4aa dt-bindings: clock: qcom,gpucc: reference qcom,gcc.yaml
bb75626b2c83 dt-bindings: clock: qcom,gpucc-sdm660: reference qcom,gcc.yaml
57a576f1c336 dt-bindings: clock: qcom,dispcc-sm8x50: reference qcom,gcc.yaml
e3fc6473d500 dt-bindings: clock: qcom,dispcc-sm6350: reference qcom,gcc.yaml
3a4e695e0c10 dt-bindings: clock: qcom,dispcc-sc8280xp: reference qcom,gcc.yaml
9ba119e9f2b5 dt-bindings: clock: qcom,videocc: reference qcom,gcc.yaml
34c55054c456 dt-bindings: clock: qcom,sm8450-videocc: reference qcom,gcc.yaml
5c0cb24eda45 dt-bindings: phy: g12a-usb2-phy: add optional power-domains
c95e52177530 ASoC: dt-bindings: wlf,wm8804: Convert to dtschema
461612dc145c ASoC: dt-bindings: wlf,wm8782: Convert to dtschema
5c208f256b7c arm64: dts: ti: k3-am69-sk: Add PCIe support
c5515f74fa96 arm64: dts: ti: k3-j784s4-evm: Add overlay for PCIe0 and PCIe1 EP Mode
b678dd09adcb arm64: dts: ti: k3-j784s4-evm: Enable PCIe0 and PCIe1 in RC Mode
c09a48bdb085 arm64: dts: ti: k3-j784s4-main: Add PCIe nodes
2a7a220ac4c2 arm64: dts: ti: k3-am62p: use eFuse MAC Address for CPSW3G Port 1
74a7a6627fef arm64: dts: ti: am62-phyboard-lyra: Add overlay to increase cpu frequency to 1.4 GHz
9bcf12672fe9 arm64: dts: ti: k3-am62p5-sk: Fix pinmux for McASP1 TX
99f08cf5687b arm64: dts: ti: k3-am625-phyboard-lyra-rdk: Drop McASP AFIFOs
77021f8c68f7 arm64: dts: ti: k3-am62-verdin: Drop McASP AFIFOs
edfe215e5eb1 arm64: dts: ti: k3-am625-beagleplay: Drop McASP AFIFOs
2468161b9182 arm64: dts: ti: k3-am62p5: Drop McASP AFIFOs
bc6492cf3cb5 arm64: dts: ti: k3-am62a7: Drop McASP AFIFOs
5f15c2aeb32c arm64: dts: ti: k3-am62x: Drop McASP AFIFOs
c64d6859de48 arm64: dts: ti: k3-am642-evm-icssg1-dualemac: add overlay for mii mode
99e036b39c5d arm64: dts: ti: k3-am65-main: Add PRU system events for virtio
7971fbc45c23 arm64: dts: ti: k3-am64-main: Add PRU system events for virtio
2dd002bcaf89 arm64: dts: ti: k3-j784s4-evm: Add TPS62873 node
d8db584a7575 arm64: dts: ti: k3-am69-sk: Add TPS62873 node
24b91360b6b3 arm64: dts: ti: k3-am68-sk-base-board: Add LP8733 and TPS6287 nodes
11ba190d31c7 arm64: dts: ti: k3-j784s4-evm: Enable USB3 support
e7f9f45716f3 arm64: dts: ti: k3-j784s4-main: Add support for USB
b3082f17a8b3 arm64: dts: ti: k3-j784s4-evm: Add support for multiple CAN instances
d2673756fb83 arm64: dts: ti: k3-am62a-wakeup: Enable RTC node
a026ba37e2bb arm64: dts: ti: k3-j721e-sk: Add support for multiple CAN instances
f968d337ab2b arm64: dts: ti: k3-j722s: Fix main domain GPIO count
371bbb2a8ae9 arm64: boot: dts: ti: k3-*: Add memory node to bootloader stage
f4412aaa2d25 arm64: dts: ti: k3-am642-hummingboard-t: correct rs485 rts polarity
e0688a865347 arm64: dts: ti: phycore-am64: Add PMIC
1b041d76850f arm64: dts: ti: k3-am62p-main: Fix the reg-range for main_pktdma
aecfb02d18a8 arm64: dts: ti: k3-am62a-main: Fix the reg-range for main_pktdma
7f37b3e2a39e arm64: dts: ti: k3-am62-main: Fix the reg-range for main_pktdma
fa3f77211b96 arm64: dts: ti: k3-j784s4: Add overlay for dual port USXGMII mode
7c195babb25a arm64: dts: ti: k3-j784s4: Add overlay to enable QSGMII mode with CPSW9G
747d3454b071 arm64: dts: ti: k3-j784s4-evm: Enable Main CPSW2G node and add aliases for it
59e9ae78a716 arm64: dts: ti: k3-j784s4-main: Add CPSW2G and CPSW9G nodes
39c8ae909406 arm64: dts: ti: k3-j784s4-evm: Add alias for MCU CPSW2G
2bdd1743a9f6 arm64: dts: ti: k3-am62x-sk-common: Add bootph-all property in phy_gmii_sel node
139283d46420 dt-bindings: hwmon: Add MPS mp9941
041b1655a6e1 dt-bindings: hwmon: Add MPS mp2993
b793bad7fedb dt-bindings: hwmon: ti,ina2xx: Add ti,alert-polarity-active-high property
0cd781c25275 ARM: dts: cirrus: align panel timings node name with dtschema
2341fb1462c1 dt-bindings: phy: armada-cp110-utmi: add optional swap-dx-lanes property
220e2517cef6 ARM: dts: vt8500: align panel timings node name with dtschema
d0d47ee2c516 ARM: dts: vt8500: replace "uhci" nodename with generic name "usb"
95b9c9d6eb7e arm64: dts: sprd: Split PMU nodes for heterogeneous CPUs
538c692d38e3 dt-bindings: fsl-qdma: Convert to yaml format
58c75d7caa20 dt-bindings: dma: Document STM32 DMA3 controller bindings
e1a4b1d5b656 dt-bindings: dma: New directory for STM32 DMA controllers bindings
53b97b689238 ASoC: dt-bindings: linux,spdif: Convert spdif-reciever.txt to dtschema
ebdea7428c51 MIPS: Loongson64: DTS: Fix PCIe port nodes for ls7a
f59a288638f5 MIPS: Loongson64: DTS: Fix msi node for ls7a
bf6a7375f5e8 MIPS: mobileye: Add EyeQ6H device tree
9aff9bb463cd dt-bindings: mips: Add bindings for a new Mobileye SoC EyeQ6H
19489c5d1dee dt-bindings: pinctrl: renesas: Document RZ/V2H(P) SoC
3122491781e8 dt-bindings: clock: renesas,rzg2l-cpg: Update description for #reset-cells
fd5baac16357 Merge tag 'wireless-next-2024-06-07' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
29f4de0ef4bb ASoC: dt-bindings: ak4554: Convert to dtschema
2105bb90d7b5 ASoC: codecs: wcd937x: add wcd937x audio codec
8b422dccbf51 dt-bindings: remoteproc: k3-dsp: Correct optional sram properties for AM62A SoCs
becf39ef8242 dt-bindings: trivial-devices: Add jedec,spd5118
3b382742f3d9 ASoC: dt-bindings: omap-mcpdm: Convert to DT schema
1a4199d44cfe ASoC: dt-bindings: document wcd937x Audio Codec
fc210f62f555 dt-bindings: clock: meson: a1: peripherals: support sys_pll input
5fe6503ba2ef dt-bindings: clock: meson: a1: pll: introduce new syspll bindings
7615509f5b20 Merge tag 'v6.10-rc3'
6ef1f4991e29 arm64: dts: qcom: sm8650: Throttle the GPU when overheating
599b1d660821 arm64: dts: qcom: sm8550: Throttle the GPU when overheating
49383e2ea3ad arm64: dts: qcom: sm8450: Throttle the GPU when overheating
31a484bcc749 arm64: dts: qcom: sm8350: Throttle the GPU when overheating
a935767c2752 arm64: dts: qcom: sm8250: Throttle the GPU when overheating
7fbeeedea92f arm64: dts: qcom: sm8150: Throttle the GPU when overheating
37fdeeadea59 arm64: dts: qcom: sm6350: Update GPU thermal zone settings
2537ffc90af6 arm64: dts: qcom: sm6115: Update GPU thermal zone settings
0da2b571e4f6 arm64: dts: qcom: sdm845: Throttle the GPU when overheating
bee498747075 arm64: dts: qcom: sdm630: Throttle the GPU when overheating
1b125a7146f2 arm64: dts: qcom: sc8280xp: Throttle the GPU when overheating
9d7c478acf92 arm64: dts: qcom: sc8180x: Throttle the GPU when overheating
c8e42fa645c1 arm64: dts: qcom: sm8650-*: Remove thermal zone polling delays
17bdcb160919 arm64: dts: qcom: sm8550-*: Remove thermal zone polling delays
ff00a733d2e9 arm64: dts: qcom: sm8450-*: Remove thermal zone polling delays
7f4c5e0fddf8 arm64: dts: qcom: sm8350-*: Remove thermal zone polling delays
dfb4acdb3665 arm64: dts: qcom: sm8250-*: Remove thermal zone polling delays
61b6f264f4a3 arm64: dts: qcom: sm8150-*: Remove thermal zone polling delays
54ee32713b1e arm64: dts: qcom: sm6375-*: Remove thermal zone polling delays
479d03ac8a18 arm64: dts: qcom: sm6350-*: Remove thermal zone polling delays
1d4ed206cc28 arm64: dts: qcom: sm6125-*: Remove thermal zone polling delays
7035d051ff3c arm64: dts: qcom: sm6115-*: Remove thermal zone polling delays
13062d235368 arm64: dts: qcom: sdm845-*: Remove thermal zone polling delays
1888c9728dd8 arm64: dts: qcom: sdm660-*: Remove thermal zone polling delays
2a15fb8d8a62 arm64: dts: qcom: sc8280xp-*: Remove thermal zone polling delays
1134e982a840 arm64: dts: qcom: sc8180x-*: Remove thermal zone polling delays
3ed654568782 arm64: dts: qcom: sc7280-*: Remove thermal zone polling delays
1dd543828473 arm64: dts: qcom: sc7180-*: Remove thermal zone polling delays
2fcc79649672 arm64: dts: qcom: sa8775p-*: Remove thermal zone polling delays
27f09f1d554f arm64: dts: qcom: qcs404-*: Remove thermal zone polling delays
b20ab65f0a5a arm64: dts: qcom: qcm2290-*: Remove thermal zone polling delays
1dec333ca252 arm64: dts: qcom: pmx75: Remove thermal zone polling delays
22e2d4c0408e arm64: dts: qcom: pms405: Remove thermal zone polling delays
92af0281e1b1 arm64: dts: qcom: pm7550ba: Remove thermal zone polling delays
41f906bdcabe arm64: dts: qcom: msm8998-*: Remove thermal zone polling delays
ae8c15eb2d2a arm64: dts: qcom: msm8996-*: Remove thermal zone polling delays
ce91afdee333 arm64: dts: qcom: msm8976-*: Remove thermal zone polling delays
3add3528ed70 arm64: dts: qcom: msm8953-*: Remove thermal zone polling delays
2c35a502d60a arm64: dts: qcom: msm8939-*: Remove thermal zone polling delays
a02be0981581 arm64: dts: qcom: msm8916-*: Remove thermal zone polling delays
abc8ce45e3dd arm64: dts: qcom: ipq9574-*: Remove thermal zone polling delays
45b69dd8c830 arm64: dts: qcom: ipq8074-*: Remove thermal zone polling delays
1cab7137168d arm64: dts: qcom: ipq6018-*: Remove thermal zone polling delays
e5935bec76c8 dt-bindings: dma: fsl,imx-dma: Convert to dtschema
4c5abccdb299 dt-bindings: display: panel: mipi-dbi-spi: Add a pixel format property
ed04286d197a arm64: dts: renesas: r8a779h0: Add video capture nodes
a4b93b2e76a5 arm64: dts: amlogic: gxbb-odroidc2: fix invalid reset-gpio property
f3e168853af5 arm64: dts: amlogic: a1: drop the invalid reset-name for usb@fe004400
f9198c5264f4 arm64: dts: amlogic: a1: use correct node name for mmc controller
49c4ee32e05a arm64: dts: amlogic: c3: use correct compatible for gpio_intc node
835e4b10b629 arm64: dts: amlogic: axg: fix tdm audio-controller clock order
de9d0bc3ff03 arm64: dts: amlogic: g12a-u200: add missing AVDD-supply to acodec
f4d38ef65719 arm64: dts: amlogic: g12a-u200: drop invalid sound-dai-cells
4b00f86b36d1 arm64: dts: amlogic: sm1: fix tdm controllers compatible
b363f64cf5ab arm64: dts: amlogic: sm1: fix tdm audio-controller clock order
f4f6bcf6c74f arm64: dts: amlogic: move ao_pinctrl into aobus
33663a76e0a1 arm64: dts: amlogic: meson-g12b-bananapi: remove invalid fan on wrong pwm_cd controller
effc7fa2e177 arm64: dts: qcom: sc7180-trogdor: Make clamshell/detachable fragments
6c31317523e4 arm64: dts: qcom: sc7180: pazquel: Add missing comment header
1e4bb7817b84 arm64: dts: qcom: sc7180: quackingstick: Disable instead of delete usb_c1
d8ad591f6d43 arm64: dts: qcom: sm8450-sony-xperia: correct touchscreen interrupt flags
5465b871ba23 arm64: dts: qcom: sm8250-sony-xperia: correct touchscreen interrupt flags
56d0c19dc455 arm64: dts: qcom: sm6375-pdx225: correct touchscreen interrupt flags
89efb295e0d3 arm64: dts: qcom: sm6350-pdx213: correct touchscreen interrupt flags
143a2600e46b arm64: dts: qcom: x1e80100-qcp: Add pmic-glink node with all 3 connectors
6c973a72ce2d arm64: dts: qcom: x1e80100-crd: Add pmic-glink node with all 3 connectors
9de79776c656 arm64: dts: qcom: x1e80100: Add remote endpoints between PHYs and DPs
a03abc110b0c Merge branch 'arm64-fixes-for-6.10' into arm64-for-6.11
0ae86529e1d3 media: dt-bindings: renesas,rzg2l-cru: Document Renesas RZ/G2UL CRU block
d54c8bb4d243 media: dt-bindings: renesas,rzg2l-csi2: Document Renesas RZ/G2UL CSI-2 block
f9623232ee1e dt-bindings: display: panel: constrain 'reg' in DSI panels (part two)
c801f2d2fbda dt-bindings: ufs: qcom,ufs: drop source clock entries
eb8edd876343 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
590425480541 arm64: dts: sm8650-hdk: add support for the Display Card overlay
085dcba7307c arm64: dts: qcom: pm660: Add rradc, charger
b2f5ae69325b dt-bindings: display: simple: Add PrimeView PM070WL4 panel
f6fb10e1f813 dt-bindings: vendor-prefixes: Add PrimeView
56a5ef33a14c dt-bindings: regulator: twl-regulator: convert to yaml
94899bfc48d4 ASoC: dt-bindings: convert amlogic,g12a-tohdmitx to dt-schema
8cc60d6feb40 arm64: dts: amlogic: a4: add power domain controller node
35212b72624e Merge branch 'dt' of https://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm into v6.11/arm64-dt
9274368c8fe8 arm64: dts: meson: radxa-zero2: add pwm-fan support
99dcb5d253a0 arm64: dts: meson: add GXLX/S905L/p271 support
c1ed206fd2c5 dt-bindings: arm: amlogic: add GXLX/S905L/p271 reference board
6cb5bcf9e424 arm64: dts: amlogic: ad402: move thermal-zones to top node
4a3ecb47ce34 arm64: dts: qcom: msm8916-samsung-fortuna/rossa: Add PMIC and charger
9914c77cad47 arm64: dts: qcom: msm8916-samsung-fortuna/rossa: Add S3FWRN5 NFC
fdcf701145c2 arm64: dts: qcom: msm8916-samsung-gprimeltecan: Add NFC
65bc77d179f3 dt-bindings: arm: qcom: add HTC One (M8)
ea2a839a9245 arm64: dts: qcom: x1e80100: Disable the SMB2360 4th instance by default
dcba93d10d82 arm64: dts: qcom: sc7280: Disable SuperSpeed instances in park mode
902bb8e5c438 arm64: dts: qcom: sc7180: Disable SuperSpeed instances in park mode
a5b491af8e09 ARM: dts: qcom: Add initial support for HTC One (M8)
0db00103797e arm64: dts: qcom: qrb4210-rb2: make L9A always-on
e811a4ab9a40 arm64: dts: qcom: qrb4210-rb2: switch I2C2 to i2c-gpio
daf2fb0cb0c0 arm64: dts: qcom: qrb2210-rb1: switch I2C2 to i2c-gpio
d37e99da7d63 arm64: dts: qcom: sm8650-hdk: allow more IOMMU SID for the first QUP instance
3a9597394c8a arm64: dts: qcom: use defines for interrupts
3b4f4e7a8e7e Merge tag 'ath-next-20240605' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath
0873cebaed77 dt-bindings: spi: amlogic,a1-spifc: add missing power-domains
fc0262c9385e dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Document RZ/Five SoC
916caeb909fd dt-bindings: arm-smmu: Fix Qualcomm SC8180X binding
06455c836073 regulator: dt-bindings: describe the PMU module of the WCN7850 package
758bccd66fd2 regulator: dt-bindings: describe the PMU module of the QCA6390 package
0d0bcaff1247 dt-bindings: power: add Amlogic A4 power domains
0ac4dd294c3d dt-bindings: arm: stm32: Add compatible string for DH electronics STM32MP13xx DHCOR DHSBC board
a3fc04d49ba9 dt-bindings: dsa: Rewrite Vitesse VSC73xx in schema
a6d186145f03 ARM: dts: stm32: osd32: move pwr_regulators to common
be0b6f9df78c ARM: dts: stm32: osd32: move usb phy power to common
28f4e3c74eb8 ARM: dts: stm32: Add arm,no-tick-in-suspend to STM32MP15xx STGEN timer
bd837880455e ARM: dts: stm32: add goodix touchscreen on stm32mp135f-dk
de88162fe80f ARM: dts: stm32: enable camera support on stm32mp135f-dk board
94d90e4fc870 ARM: dts: stm32: add DCMIPP pinctrl on STM32MP13x SoC family
6ad12c256e46 arm64: dts: st: add power domain on stm32mp25
d796d2f8b53e arm64: dts: st: add usart6 on stm32mp257f-ev1 board
be0495aab66a arm64: dts: st: add usart6 pinctrl used on stm32mp257f-ev1 board
3bd208725504 arm64: dts: st: add usart nodes on stm32mp25
4235109a0821 arm64: dts: st: enable STM32 access controller for RCC
1d0000e109cf arm64: dts: st: OP-TEE async notif on PPI 15 for stm32mp25
bb7d71f33c44 arm64: dts: qcom: msm8994: Use mboxes properties for APCS
3b951f505b65 arm64: dts: qcom: msm8976: Use mboxes properties for APCS
3835a6aea0d5 arm64: dts: qcom: msm8953: Use mboxes properties for APCS
af228fa17558 arm64: dts: qcom: msm8939: Use mboxes properties for APCS
5b3698f9feb1 arm64: dts: qcom: msm8916: Use mboxes properties for APCS
8f0d3f6c7f96 ARM: dts: qcom: msm8974: Use mboxes properties for APCS
c957952de6cc ASoC: fsl_xcvr: Support i.MX95 platform
c55291f04714 dt-bindings: iio: imu: Add ADIS16545/47 compatibles
ba34a5b1b524 dt-bindings: iio: imu: Add ADIS1657X family devices compatibles
c04814ae95af dt-bindings: iio: imu: Add ADIS16501 compatibles
3f96a8a3d2a2 dt-bindings: iio: adc: ad7380: add support for ad738x-4 4 channels variants
25530465404d dt-bindings: iio: adc: ad7380: add pseudo-differential parts
990f914ae055 dt-bindings: iio: adc: Add binding for AD7380 ADCs
9b6b99823fc3 dt-bindings: iio: dac: add ad35xxr single output variants
82d0cda413d1 dt-bindings: iio: dac: fix ad3552r gain parameter names
25b6dbcca68f dt-bindings: iio: adc: ad7192: Add AD7194 support
c94de4880cbd dt-bindings: iio: adc: Add single-channel property
9b57c6047a72 dt-bindings: iio: adc: ad7192: Add aincom supply
4d536d5adb63 arm64: dts: microchip: sparx5_pcb135: move non-MMIO nodes out of axi
9a8801345c09 arm64: dts: microchip: sparx5_pcb134: move non-MMIO nodes out of axi
2726d3c48fc2 dt-bindings: hwmon: g76x: Add support for g761
4b80d328a733 dt-bindings: hwmon: g762: Convert to yaml schema
53be82f295bc dt-bindings: usb: gpio-sbu-mux: Make 'enable-gpios' optional
f4aa28acacaf dt-bindings: musb: mpfs: add ULPI external vbus support
1c88cc358358 arm64: zynqmp: Add coresight cpu debug support
2a0cd72ede1b ASoC: dt-bindings: tlv320adc3xxx: Fix incorrect GPIO description
2ee0c84effe5 dt-bindings: clock: add Amlogic C3 peripherals clock controller
a8a79f4fdbd3 dt-bindings: clock: add Amlogic C3 SCMI clock controller support
bdd2d54dddef dt-bindings: clock: add Amlogic C3 PLL clock controller
8695e2f5b225 dt-bindings: media: add Maxim MAX96714 GMSL2 Deserializer
b36bb4558636 dt-bindings: media: add Maxim MAX96717 GMSL2 Serializer
fe7a91633ca8 media: dt-bindings: media: Add bindings for IMX283
0d8cb091fcf4 dt-bindings: media: imx258: Add alternate compatible strings
950285832004 dt-bindings: media: imx258: Rename to include vendor prefix
8365d73a2994 dt-bindings: clock: milbeaut: Drop providers and consumers from example
25e271c1fa8b ASoC: dt-bindings: fsl,xcvr: Add compatible string for i.MX95
2734c83b1a1d dt-bindings: phy: qcom,ipq8074-qmp-pcie: Document the IPQ9574 QMP PCIe PHYs
495c9f32f704 dt-bindings: phy: qcom,sc8280xp-qmp-usb3-uni: Add sc8180x USB3 compatible
e3e48ececf60 spi: Merge up fixes
948a62dc7c7e dt-bindings: clock: meson: Convert axg-audio-clkc to YAML format
088f8352d3e3 regulator: Merge up fixes
08363c2ef6e3 ASoC: Merge up fixes
53290fa26162 dt-bindings: display: panel: Add WL-355608-A8 panel
fbb4c6c6ff37 dt-bindings: gpio: aspeed,sgpio: Specify #interrupt-cells
34f8d0e8e958 dt-bindings: gpio: aspeed,sgpio: Specify gpio-line-names
ac3a205005a5 dt-bindings: gpio: mpc8xxx: Convert to yaml format
12d87fda8d86 dt-bindings: gpio: pca95xx: Document the TI TCA9535 variant
ea6eb8ddc31b arm64: dts: renesas: r9a08g045: Update fallback string for SDHI nodes
dc400949faa5 arm64: dts: renesas: rzg2l: Update fallback string for SDHI nodes
d628f1622ea4 arm64: dts: renesas: r9a09g011: Update fallback string for SDHI nodes
513988f81ecd arm64: dts: imx8mp-evk: Add MX8-DLVDS-LCD1 display module support
768b346dc37d arm64: dts: imx8qm: Add GPU nodes
72dfdd9d7cbf arm64: dts: imx8qm-mek: add fec2 support
07d20b7d2be0 arm64: dts: imx8qm: add ocopt and fec_mac[0,1]
4206c9e6eb8f arm64: dts: imx8qm-mek: add lsio mu5 and mu6
f9c5ba8e668f arm64: dts: imx8qm-mek: add flexcan support
f68ad7e6aa7c arm64: dts: imx8qm-mek: add cm41_i2c and children devices
5a32399aac7c arm64: dts: imx8qm-mek: add i2c0 and children devices
2caebfc7f2b2 arm64: dts: imx8x: add cm41 subsystem dtsi
72451ba1cd61 arm64: dts: imx8qm-mek: add sai and wm8960 support
e19ca52edf47 arm64: dts: imx8qm-ss-audio: add audio nodes
5a6be8f8b980 arm64: dts: imx8-ss-audio: remove memory-region = <&dsp_reserved>;
b19c79b98650 arm64: dts: imx8dxl-evk: add audio nodes
a6b324ac108f arm64: dts: imx8dxl-ss-adma: update audio node power domains and IRQ number
36ac044b846b arm64: dts: imx8dxl-ss-adma: delete unused node
f20ed0d70eb1 arm64: dts: freescale: tqma8xx: Add partitions subnode to spi-nor
b534f14f944e arm64: dts: freescale: tqma8mq: Add partitions subnode to spi-nor
fed28361018f arm64: dts: freescale: tqma8mpql: Add partitions subnode to spi-nor
1197d8fd9cb9 arm64: dts: freescale: tqma8mqnl: Add partitions subnode to spi-nor
14ee312730b9 arm64: dts: freescale: tqma8mqml: Add partitions subnode to spi-nor
2a468e3c97de arm64: dts: freescale: tqma9352: Add partitions subnode to spi-nor
838e4c9e1246 arm64: dts: mba93xxca: Add USB support
eaf3fcbaeb4b arm64: dts: mba93xxla: Add USB support
a23f0a0b5b71 arm64: dts: imx8mp-beacon-kit: Enable HDMI bridge HPD
7a7edb673114 arm64: dts: qcom: ipq8074: fix GCC node name
6ce61c07406e arm64: dts: qcom: ipq6018: fix GCC node name
7aac39798db6 arm64: dts: qcom: ipq9574: drop #power-domain-cells property of GCC
e4e5b5a82c7c arm64: dts: qcom: ipq5332: drop #power-domain-cells property of GCC
b392c64e38ea arm64: dts: qcom: ipq5018: drop #power-domain-cells property of GCC
d0bb7100e818 arm64: dts: qcom: sm8650-hdk: remove redundant properties
98422122d874 arm64: dts: qcom: sm7225-fairphone-fp4: Enable USB role switching
715dfdedd720 arm64: dts: qcom: pm7250b: Add a TCPM description
06bfb16205dc arm64: dts: qcom: pm7250b: Add node for PMIC VBUS booster
4020035b90ac arm64: dts: qcom: x1e80100: Describe the PCIe 6a resources
3778df0b858d arm64: dts: qcom: x1e80100-qcp: Fix the PHY regulator for PCIe 6a
5f7ada1d0e93 arm64: dts: qcom: x1e80100-crd: Fix the PHY regulator for PCIe 6a
adb13d9a84ba arm64: dts: qcom: x1e80100-qcp: Fix USB PHYs regulators
4469c08c7e9e ARM: dts: qcom: mdm9615: drop #power-domain-cells property of GCC
72165a870c02 ARM: dts: qcom: ipq8064: drop #power-domain-cells property of GCC
0d3aee760764 ARM: dts: qcom: ipq4019: drop #power-domain-cells property of GCC
7fdca61ac704 ARM: dts: qcom: msm8960: drop #power-domain-cells property of GCC
5b7587d02195 ARM: dts: qcom: msm8660: drop #power-domain-cells property of GCC
ea0cfecfe192 ARM: dts: qcom: apq8064: drop #power-domain-cells property of GCC
b144c7547a04 dt-bindings: clock: add schema for qcom,gcc-mdm9615
552ede935747 dt-bindings: clock: qcom,gcc: sort out power-domains support
9a39a855da51 dt-bindings: clock: qcom,gcc-other: rename to qcom,mdm-mdm9607
f49b5f7591dc arm64: dts: qcom: x1e80100-crd: Fix USB PHYs regulators
0552a947eb38 arm64: dts: qcom: sm8550: Remove usb default dr_mode
fe491e7a3b05 arm64: dts: qcom: sm8550: Move usb-role-switch to SoC dtsi
651e142a3047 arm64: dts: qcom: sa8775p: Add IMEM and PIL info region
e7baa041e108 dt-bindings: soc: qcom: add qcom,sa8775p-imem compatible
f28f4cdd346c arm64: dts: qcom: sm8550-samsung-q5q: fix typo
15d2e0ec0c1a arm64: dts: qcom: sm8650: Add Broadcast_AND register in LLCC block
bea94109880d arm64: dts: qcom: sm8550: Add Broadcast_AND register in LLCC block
c3a5436657a4 arm64: dts: qcom: sm8450: Add Broadcast_AND register in LLCC block
054753e165cb dt-bindings: arm: msm: Add llcc Broadcast_AND register
ee63c2cd308d arm64: dts: socfpga: stratix10: add L2 cache info
a54fac66c90a Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
670c3b008dd9 dt-bindings: backlight: Add Texas Instruments LM3509
54ac49fc4e93 dt-bindings: media: rockchip-rga: add rockchip,rk3588-rga
d499d46562e1 dt-bindings: net: ti: icssg_prueth: Add documentation for PA_STATS support
9ad1466248dd dt-bindings: riscv: add Zve32[xf] Zve64[xfd] ISA extension description
f32130672c19 arm64: dts: n5x: socdk: drop unneeded flash address/size-cells
b897b97f6ed2 arm64: dts: agilex: socdk: drop unneeded flash address/size-cells
569fc0f91b31 arm64: dts: stratix10: socdk_nand: drop unneeded flash address/size-cells
a165aed27a7c arm64: dts: stratix10: socdk: drop unneeded flash address/size-cells
c59af1dfef6e dt-bindings: net: wireless: ath11k: Drop "qcom,ipq8074-wcss-pil" from example
aa8c168cc509 arm64: dts: qcom: sa8775p: Add llcc support for the SA8775p platform
006eee87bd9e arm64: dts: qcom: add QCM6490 SHIFTphone 8
b8ad03a5eef6 dt-bindings: cache: qcom,llcc: Add SA8775p description
6cb4f7cb2ef2 dt-bindings: arm: qcom: Add QCM6490 SHIFTphone 8
74a3a8346e22 dt-bindings: net: rockchip-dwmac: Fix rockchip,rk3308-gmac compatible
4eba3a25a5c9 dt-bindings: hwmon: Add max6639
641b3d453328 dt-bindings: arm: Remove obsolete RTSM DCSCB binding
ea6f99fbbea2 Fix issue when using devm_of_regulator_put_matches and
ecdd9c65f73c ASoC: samsung: midas-audio: Add GPIO-based headset
d23a13743818 arm64: dts: allwinner: Add cache information to the SoC dtsi for H616
738ce71c8824 ASoC: codecs: add support for everest-semi es8311
c78935291b30 ASoC: fsl_mqs: Add i.MX95 platform support
5a472ba815a0 regulator: dt-bindings: rtq2208: Add specified fixed LDO VOUT property
374cffc90434 arm64: dts: qcom: x1e80100-pmics: Add the missing PMICs
345219e3d517 ASoC: dt-bindings: samsung,midas-audio: Add GPIO-based headset jack detection
b1a69658c0b6 ASoC: dt-bindings: samsung,midas-audio: Add headset mic bias supply
d1d083d2d183 dt-bindings: net: xilinx_gmii2rgmii: Add clock support
721a4f83490b Add support for GPIO based CS
c24fc05f09e2 Add optional reset control for Cadence SPI
07d6ce746d18 arm64: dts: qcom: sm8550: Add support for Samsung Galaxy Z Fold5
621429ed7b94 dt-bindings: arm: qcom: Add Samsung Galaxy Z Fold5
b1c524d0564e arm64: dts: qcom: sc7280: Add DT nodes for the TBUs
0758c7314648 arm64: dts: qcom: sdm845: Add DT nodes for the TBUs
5f04fe1b3510 arm64: dts: qcom: sm8450: Add OPP table support to PCIe
0baab1b9e8d6 arm64: dts: qcom: sm8450: Add interconnect path to PCIe node
583c02317b2a arm64: dts: qcom: sa8775p: mark ethernet devices as DMA-coherent
558fbd50739c dt-bindings: clock: Add PCIe pipe related clocks for IPQ9574
b3e9c1704787 arm64: dts: qcom: msm8998: set qcom,no-msa-ready-indicator for wifi
82aa75d2d0b4 dt-bindings: soc: qcom,smp2p: Mark qcom,ipc as deprecated
b2e9d4afec2c arm64: dts: qcom: sdm632-fairphone-fp3: Enable vibrator
4b59323f71de arm64: dts: qcom: pmi632: Add vibrator
f73d2dd03611 arm64: dts: qcom: Split PMU nodes for heterogeneous CPUs
05de7055b89d ASoC: dt-bindings: fsl,mqs: Add i.MX95 platform support
3f5fe41c3804 dt-bindings: PCI: Add StarFive JH7110 PCIe controller
9f4eb7abd49b dt-bindings: PCI: Add PLDA XpressRICH PCIe host common properties
e4f387b89376 arm64: dts: allwinner: Add cache information to the SoC dtsi for A64
3dc204acc142 arm64: dts: allwinner: Correct the model names for Pine64 boards
96ca047c9f12 dt-bindings: arm: sunxi: Correct the descriptions for Pine64 boards
d90a7c829946 arm64: dts: allwinner: Add cache information to the SoC dtsi for H6
0349fc2fc24b ARM: dts: sun50i: Add LRADC node
57a944ffa979 dt-bindings: input: sun4i-lradc-keys: Add H616 compatible
a2700f790e47 ARM: dts: qcom: msm8974: Use proper compatible for APCS syscon
6de30e631104 arm64: dts: qcom: qcs404: Use qcs404-hfpll compatible for hfpll
ef2352333793 ARM: dts: qcom: msm8974-hammerhead: Update gpio hog node name
f3defc076160 arm64: dts: qcom: Add Motorola Moto G 2015 (osprey)
425bf3ac31bd arm64: dts: qcom: Add Motorola Moto E 2015 LTE (surnia)
e16162bb2340 arm64: dts: qcom: Add device tree for Motorola Moto G4 Play (harpia)
64e69bc4d223 arm64: dts: qcom: msm8916-samsung-rossa: Add LIS2HH12 accelerometer
b0d0feffb5fd arm64: dts: qcom: msm8916-samsung-fortuna: Add LSM303C accelerometer/magnetometer
aff7f23bfdeb arm64: dts: qcom: msm8916-samsung-fortuna: Add BMC150 accelerometer/magnetometer
907c57e1ad45 dt-bindings: arm: qcom: Add msm8916 based Motorola devices
29f5eaa19cb7 arm64: dts: qcom: pmi8950: add pwm node
b4b7f8adfdcd arm64: dts: rockchip: add rfkill node for M.2 Key E Bluetooth on Rock 5B
80dc8efa40be dt-bindings: PCI: qcom-ep: Add support for SA8775P SoC
2e5ef051a7e1 dt-bindings: clock: rk3128: Add PCLK_MIPIPHY
704207bba594 dt-bindings: arm: qcom,ids: Add SoC ID for SDM670
9aee1f0d362e dt-bindings: arm: qcom: Add Lenovo Smart Tab M10 (WiFi)
2310f413fe97 arm64: dts: qcom: apq8016: Add Schneider HMIBSC board DTS
2ee38a07919c dt-bindings: arm: qcom: Add Schneider Electric HMIBSC board
658636c1c354 dt-bindings: vendor-prefixes: Add Schneider Electric
2da0ecd43d6c arm64: dts: qcom: msm8996: drop source clock entries from the UFS node
59127bfa0eac arm64: dts: qcom: msm8996: set GCC_UFS_ICE_CORE_CLK freq directly
be511ff0b6fa arm64: dts: qcom: msm8996: specify UFS core_clk frequencies
df6ed6d82d77 arm64: dts: qcom: msm8996: add fastrpc nodes
edcd37b582e3 arm64: dts: qcom: msm8996: add glink-edge nodes
60039957ec16 dt-bindings: cache: Add docs for StarFive Starlink cache controller
907b4719ead1 dt-bindings: display: rockchip,dw-mipi-dsi: Document RK3128 DSI
49f99127d76a arm64: dts: renesas: s4sk: Add aliases for I2C buses
9f88c8d8fbfe arm64: dts: renesas: spider-cpu: Add aliases for I2C buses
486661773d16 arm64: dts: renesas: white-hawk-cpu: Add aliases for I2C buses
7c68dab6e183 arm64: dts: renesas: condor-i: Add I2C EEPROM
5a50fa13c7fc arm64: dts: renesas: gray-hawk-single: Add aliases for I2C buses
8a6f471179e9 ARM: dts: renesas: r9a06g032: Describe GMAC1
3a88ef3c55ee arm64: dts: renesas: white-hawk: ethernet: Describe AVB1 and AVB2
2009b3502a18 arm64: dts: renesas: r8a779g0: Use MDIO node for all AVB devices
96a6be188d49 dt-bindings: pinctrl: renesas,rzg2l-pinctrl: Remove the check from the object
1a9279d1435c Merge tag 'v6.9' into next
e291d457b037 arm64: dts: rockchip: Add Radxa ROCK S0
c44dbfb45c6a dt-bindings: arm: rockchip: Add Radxa ROCK S0
caba73747c92 arm64: dts: rockchip: Update WIFi/BT related nodes on rk3308-rock-pi-s
f93b22435927 arm64: dts: rockchip: Add io-domains to rk3308-rock-pi-s
cebde305971e arm64: dts: rockchip: Add rk3308 IO voltage domains
db11d284200d arm64: dts: rockchip: Add OTP device node for RK3308
703b8eae20ee arm64: dts: rockchip: Add mdio and ethernet-phy nodes to rk3308-rock-pi-s
9c72cd5fa9f9 arm64: dts: rockchip: Add pinctrl for UART0 to rk3308-rock-pi-s
39110e4bec51 arm64: dts: rockchip: Add sdmmc related properties on rk3308-rock-pi-s
1476c5882f8a arm64: dts: rockchip: Add Radxa ZERO 3W/3E
66214a01c03d dt-bindings: arm: rockchip: Add Radxa ZERO 3W/3E
e2824fe5f496 arm64: dts: qcom: add TP-Link Archer AX55 v1
09d7dbde14f4 dt-bindings: arm: qcom: add TP-Link Archer AX55 v1
f6bac4156959 dt-bindings: arm: qcom,ids: Add SoC ID for IPQ5321
f2fe4b8d1c36 ARM: dts: qcom: msm8974: Add Samsung Galaxy Note 3
865710c9af68 dt-bindings: arm: qcom: Add Samsung Galaxy Note 3
783a6b1de0c7 arm64: dts: qcom: sa8775p: Mark PCIe EP controller as cache coherent
3147eded41a8 ARM: dts: qcom: msm8974-hammerhead: Hook up backlight
569566cdfe75 ARM: dts: qcom: Add support for Samsung Galaxy Tab 4 8.0 Wi-Fi
cbb1f30a9645 dt-bindings: arm: qcom: Document samsung,milletwifi device
720778a825a6 dt-bindings: clock: qcom: Add SM7150 VIDEOCC clocks
c8e9ac3c01b1 dt-bindings: clock: qcom: Add SM7150 CAMCC clocks
7454f4f4c660 dt-bindings: clock: qcom: Add SM7150 DISPCC clocks
81db77510082 arm64: dts: qcom: ipq9574: add MDIO bus
7b2edca4e52a arm64: dts: qcom: msm8976: Add WCNSS node
504474a06001 arm64: dts: qcom: msm8976: Add Adreno GPU
bd7e96ebb574 arm64: dts: qcom: msm8976: Add MDSS nodes
3b539c88a63f arm64: dts: qcom: msm8976: Add IOMMU nodes
4d66adf01466 arm64: dts: qcom: sc7280: Add APR nodes for sound
6120cd5b722f arm64: dts: qcom: sm8150-hdk: rename Type-C HS endpoints
b87d0f5208c4 arm64: dts: qcom: x1e80100: describe USB signals properly
5721094b3cc6 arm64: dts: qcom: sc8280xp: describe USB signals properly
e7918b3b507b arm64: dts: qcom: sc8180x: describe USB signals properly
f89efa4697d8 arm64: dts: qcom: sc8180x: switch USB+DP QMP PHYs to new bindings
9ef4eecfea49 arm64: dts: qcom: sm8250: add a link between DWC3 and QMP PHY
596265e5861f arm64: dts: qcom: sm8250: describe HS signals properly
00d6216e2b85 arm64: dts: qcom: sc8180x: correct dispcc clocks
4ea499263f5c dt-bindings: clk: qcom,dispcc-sm8x50: describe additional DP clocks
b5bd1921187b arm64: dts: qcom: msm8998: enable adreno_smmu by default
541bdc922afc arm64: dts: qcom: sdx75: Support for I2C and SPI
90dad263f277 arm64: dts: qcom: Add coresight nodes for SA8775p
0aab77d21b01 arm64: dts: qcom: sdm450: add Lenovo Smart Tab M10 DTS
32fed7bac153 arm64: dts: qcom: sdx75-idp: add SDHCI for SD Card
59d8e8b8e0fa arm64: dts: qcom: sdx75: Add SDHCI node
7ad4b9e2e2ce arm64: dts: qcom: sdm670: add smem region
8efb28a76b8f arm64: dts: qcom: sdm850-lenovo-yoga-c630: add WiFi calibration variant
1b642829941a arm64: dts: qcom: sdm850-lenovo-yoga-c630: fix IPA firmware path
dc6c838dccc5 dt-bindings: gpio: lsi,zevio-gpio: convert to dtschema
59a4a67afc05 arm64: dts: amlogic: ad402: setup thermal-zones
6a236b3c2551 arm64: dts: amlogic: a1: introduce cpu temperature sensor
aa46822a4efd arm64: dts: amlogic: a1: add cooling-cells for DVFS feature
e0b90f42928c dt-bindings: mtd: amlogic,meson-nand: support fields for boot ROM code
18164f2232ed dt-bindings: riscv: Add T-HEAD C908 compatible
ef4a90a4a4ef dts: zynqmp: add properties for TCM in remoteproc
6b7030b490a0 Merge drm/drm-next into drm-misc-next
d4e6dcb8c457 dt-bindings: iio: imu: bmi160: add bmi120
81f1d7e94463 arm64: dts: qcom: sm8650: Enable download mode register write
b16c77bd4b71 arm64: dts: qcom: qru1000-idp: enable USB nodes
711ac96f7b68 arm64: dts: qcom: qdu1000-idp: enable USB nodes
2e24b568f9cc arm64: dts: qcom: qdu1000: Add USB3 and PHY support
144b53af3287 arm64: dts: qcom: msm8996-xiaomi-common: drop excton from the USB PHY
ca2712d8912e arm64: dts: qcom: sda660-ifc6560: document missing USB PHY supplies
b4c3b4033bfd arm64: dts: qcom: sm8450: add power-domain to UFS PHY
03f65e0c4a88 arm64: dts: qcom: sm8350: add power-domain to UFS PHY
bb5098336d8a arm64: dts: qcom: sm8250: add power-domain to UFS PHY
a4d865f9e5f8 arm64: dts: qcom: sm6350: add power-domain to UFS PHY
e3c4ddbc94f0 arm64: dts: qcom: sm6115: add power-domain to UFS PHY
fbdf56e0da1b arm64: dts: qcom: sdm845: add power-domain to UFS PHY
e9f4a0a681f0 arm64: dts: qcom: sc8180x: add power-domain to UFS PHY
c9fe47108e88 arm64: dts: qcom: sc7180: drop extra UFS PHY compat
c681a980e875 arm64: dts: qcom: sa8775p: Add ep pcie1 controller node
b105bc60880d arm64: dts: qcom: sa8775p: Add ep pcie0 controller node
9028d47180b0 arm64: dts: qocm: sdx75: align smem node name with coding style
0767c2ee580c arm64: dts: qcom: sdx75: Add modem SMP2P node
11c8bfb4993d arm64: dts: qcom: sdx75: Add AOSS node
3615cb069ea2 arm64: dts: qcom: sdx75: Add TCSR register space
18205aeef5ab arm64: dts: qcom: sdx75: Add IPCC node
4c34024bfef1 dt-bindings: soc: qcom,aoss-qmp: Document the SDX75 AOSS channel
3cfcc5fe49ff spi: dt-bindings: Document the IBM FSI-attached SPI controller
e6248d4713f3 spi: dt-bindings: brcm,bcm2835-spi: convert to dtschema
df39d67e0ae0 spi: dt-bindings: marvell,mmp2-ssp: Merge PXA SSP into schema
8accece8989c spi: dt-bindings: Add num-cs property for mpfs-spi
488eb460844f spi: dt-bindings: spi-cadence: Add optional reset control
7e8e41cbe258 regulator: st,stm32mp1-pwr-reg: add compatible for STM32MP13
15c27d0f3810 ASoC: dt-bindings: ak4104: convert to dt schema
a8f3fcc457a0 ASoC: es8311: dt-bindings: add everest es8311 codec
2e1b2090ff9e arm64: dts: qcom: sm8650-hdk: enable GPU
3ae690a0a00c ARM: dts: qcom: msm8226-microsoft-common: Enable smbb explicitly
d5228aa0d99d arm64: dts: qcom: msm8916-samsung-fortuna/rossa: Add connector for MUIC
6c8106f83555 arm64: dts: qcom: msm8916/39-samsung-a2015: Add PMIC and charger
f766ad851246 arm64: dts: qcom: sm4450: Add cpufreq support
189ba8d32992 arm64: dts: qcom: sc7280: Remove CTS/RTS configuration
084f86949955 arm64: dts: qcom: qcm6490-rb3: Enable gpi-dma and qup node
5552273993e2 arm64: dts: qcom: sm8650: add support for the SM8650-HDK board
cbd32842a3b6 dt-bindings: arm: qcom: Document the HDK8650 board
3c648dd53ba7 arm64: dts: qcom: sm8650: Use "pcie" as the node name instead of "pci"
48a444b645c3 arm64: dts: qcom: sm8650: remove pcie-1-phy-aux-clk and add pcie1_phy pcie1_phy_aux_clk
6da3b5727444 arm64: dts: qcom: sm8550: remove pcie-1-phy-aux-clk and add pcie1_phy pcie1_phy_aux_clk
ebfcc1ae52db arm64: dts: qcom: sm8450: correct pcie1 phy clocks inputs to gcc
d77c7fe78ba9 arm64: dts: qcom: x1e80100: drop wrong usb-role-switch properties
68f587b34987 arm64: dts: qcom: delete wrong usb-role-switch properties
4d55e70cba5c arm64: dts: qcom: sm8650-mtp: connect USB-C SS port to QMP PHY
35810a5b295b arm64: dts: qcom: sm8650: move PHY's orientation-switch to SoC dtsi
47573776a6ca arm64: dts: qcom: sm8550: move PHY's orientation-switch to SoC dtsi
4ea39df7f741 arm64: dts: qcom: sm8450: move PHY's orientation-switch to SoC dtsi
f79cde078c44 arm64: dts: qcom: sm8350: move PHY's orientation-switch to SoC dtsi
3327c7573865 arm64: dts: qcom: sm8650: move USB graph to the SoC dtsi
177082987039 arm64: dts: qcom: sm8550: move USB graph to the SoC dtsi
16f6fa4337d4 arm64: dts: qcom: sm8450: move USB graph to the SoC dtsi
37b237724a9e arm64: dts: qcom: sm8350: move USB graph to the SoC dtsi
f10a66711750 arm64: dts: qcom: sm8150: move USB graph to the SoC dtsi
6f9132424676 arm64: dts: qcom: msm8996: add reset for display subsystem
e690ae398a3d arm64: dts: qcom: sc8180x: Correct PCIe slave ports
1bbb5ac0ca87 arm64: dts: qcom: sc8180x: Fix aoss_qmp node
1fa1f82b6edd arm64: dts: qcom: sc8180x: Drop ipa-virt interconnect
dae22a13972b arm64: dts: qcom: qcs6490-rb3gen2: Enable PMK8350 RTC module
53d71dd2bb8e dt-bindings: display: Reorganize legacy eDP panel bindings
0846180e8d14 dt-bindings: display: panel: Add compatible for IVO t109nw41
9819c979fa01 dt-bindings: display: panel: Add compatible for BOE nv110wum-l60
c7a981ad89ab dt-bindings: display: panel: Add himax hx83102 panel bindings
6854ce1f9562 dt-bindings: display: simple: Add Microtips & Lincolntech Dual-LVDS Panels
d7ae51b5189c dt-bindings: vendor-prefixes: Add lincolntech
ea5f2fcae3c2 dt-bindings: vendor-prefixes: Add microtips
110fc55106a8 dt-bindings: net: wireless: ath10k: add qcom,no-msa-ready-indicator prop

git-subtree-dir: dts/upstream
git-subtree-split: 3347eecf3408998fa7136c8789322cc99646ceab

1503 files changed:
Bindings/arm/airoha.yaml
Bindings/arm/amlogic.yaml
Bindings/arm/amlogic/analog-top.txt [deleted file]
Bindings/arm/amlogic/assist.txt [deleted file]
Bindings/arm/amlogic/bootrom.txt [deleted file]
Bindings/arm/amlogic/pmu.txt [deleted file]
Bindings/arm/arm,coresight-dummy-sink.yaml
Bindings/arm/arm,coresight-dummy-source.yaml
Bindings/arm/arm,juno-fpga-apb-regs.yaml [new file with mode: 0644]
Bindings/arm/atmel-sysregs.txt
Bindings/arm/axis.txt
Bindings/arm/bcm/bcm2835.yaml
Bindings/arm/cpu-enable-method/al,alpine-smp
Bindings/arm/cpus.yaml
Bindings/arm/freescale/fsl,imx7ulp-sim.yaml
Bindings/arm/freescale/fsl,vf610-mscm-cpucfg.txt [deleted file]
Bindings/arm/fsl.yaml
Bindings/arm/keystone/ti,sci.yaml
Bindings/arm/marvell/armada-7k-8k.yaml
Bindings/arm/marvell/marvell,dove.txt
Bindings/arm/mediatek.yaml
Bindings/arm/pmu.yaml
Bindings/arm/qcom.yaml
Bindings/arm/rockchip.yaml
Bindings/arm/rtsm-dcscb.txt [deleted file]
Bindings/arm/spear-misc.txt [deleted file]
Bindings/arm/stm32/stm32.yaml
Bindings/arm/sunxi.yaml
Bindings/arm/ti/k3.yaml
Bindings/ata/ahci-fsl-qoriq.txt [deleted file]
Bindings/ata/fsl,ahci.yaml [new file with mode: 0644]
Bindings/ata/rockchip,dwc-ahci.yaml
Bindings/cache/qcom,llcc.yaml
Bindings/cache/starfive,jh8100-starlink-cache.yaml [new file with mode: 0644]
Bindings/clock/airoha,en7523-scu.yaml
Bindings/clock/amlogic,a1-peripherals-clkc.yaml
Bindings/clock/amlogic,a1-pll-clkc.yaml
Bindings/clock/amlogic,axg-audio-clkc.txt [deleted file]
Bindings/clock/amlogic,axg-audio-clkc.yaml [new file with mode: 0644]
Bindings/clock/amlogic,c3-peripherals-clkc.yaml [new file with mode: 0644]
Bindings/clock/amlogic,c3-pll-clkc.yaml [new file with mode: 0644]
Bindings/clock/fsl,qoriq-clock-legacy.yaml [new file with mode: 0644]
Bindings/clock/fsl,qoriq-clock.yaml [new file with mode: 0644]
Bindings/clock/imx6q-clock.yaml
Bindings/clock/imx6sl-clock.yaml
Bindings/clock/imx6sll-clock.yaml
Bindings/clock/imx6sx-clock.yaml
Bindings/clock/imx6ul-clock.yaml
Bindings/clock/imx7d-clock.yaml
Bindings/clock/imx8m-clock.yaml
Bindings/clock/mediatek,mt7622-pciesys.yaml
Bindings/clock/mediatek,mt8188-sys-clock.yaml
Bindings/clock/milbeaut-clock.yaml
Bindings/clock/qcom,dispcc-sc8280xp.yaml
Bindings/clock/qcom,dispcc-sm6350.yaml
Bindings/clock/qcom,dispcc-sm8x50.yaml
Bindings/clock/qcom,gcc-apq8064.yaml
Bindings/clock/qcom,gcc-apq8084.yaml
Bindings/clock/qcom,gcc-ipq4019.yaml
Bindings/clock/qcom,gcc-ipq6018.yaml
Bindings/clock/qcom,gcc-ipq8064.yaml
Bindings/clock/qcom,gcc-ipq8074.yaml
Bindings/clock/qcom,gcc-mdm9607.yaml [moved from Bindings/clock/qcom,gcc-other.yaml with 87% similarity]
Bindings/clock/qcom,gcc-mdm9615.yaml [new file with mode: 0644]
Bindings/clock/qcom,gcc-msm8660.yaml
Bindings/clock/qcom,gcc-msm8909.yaml
Bindings/clock/qcom,gcc-msm8916.yaml
Bindings/clock/qcom,gcc-msm8953.yaml
Bindings/clock/qcom,gcc-msm8974.yaml
Bindings/clock/qcom,gcc-msm8976.yaml
Bindings/clock/qcom,gcc-msm8994.yaml
Bindings/clock/qcom,gcc-msm8996.yaml
Bindings/clock/qcom,gcc-msm8998.yaml
Bindings/clock/qcom,gcc-qcm2290.yaml
Bindings/clock/qcom,gcc-qcs404.yaml
Bindings/clock/qcom,gcc-sc7180.yaml
Bindings/clock/qcom,gcc-sc7280.yaml
Bindings/clock/qcom,gcc-sc8180x.yaml
Bindings/clock/qcom,gcc-sc8280xp.yaml
Bindings/clock/qcom,gcc-sdm660.yaml
Bindings/clock/qcom,gcc-sdm845.yaml
Bindings/clock/qcom,gcc-sdx55.yaml
Bindings/clock/qcom,gcc-sdx65.yaml
Bindings/clock/qcom,gcc-sm6115.yaml
Bindings/clock/qcom,gcc-sm6125.yaml
Bindings/clock/qcom,gcc-sm6350.yaml
Bindings/clock/qcom,gcc-sm8150.yaml
Bindings/clock/qcom,gcc-sm8250.yaml
Bindings/clock/qcom,gcc-sm8350.yaml
Bindings/clock/qcom,gcc-sm8450.yaml
Bindings/clock/qcom,gcc.yaml
Bindings/clock/qcom,gpucc-sdm660.yaml
Bindings/clock/qcom,gpucc.yaml
Bindings/clock/qcom,ipq5018-gcc.yaml
Bindings/clock/qcom,ipq5332-gcc.yaml
Bindings/clock/qcom,ipq9574-gcc.yaml
Bindings/clock/qcom,msm8998-gpucc.yaml
Bindings/clock/qcom,qca8k-nsscc.yaml [new file with mode: 0644]
Bindings/clock/qcom,qcm2290-dispcc.yaml
Bindings/clock/qcom,qcm2290-gpucc.yaml [new file with mode: 0644]
Bindings/clock/qcom,qdu1000-gcc.yaml
Bindings/clock/qcom,sa8775p-gcc.yaml
Bindings/clock/qcom,sc7180-dispcc.yaml
Bindings/clock/qcom,sc7280-dispcc.yaml
Bindings/clock/qcom,sdm845-dispcc.yaml
Bindings/clock/qcom,sdx75-gcc.yaml
Bindings/clock/qcom,sm4450-gcc.yaml
Bindings/clock/qcom,sm6115-dispcc.yaml
Bindings/clock/qcom,sm6115-gpucc.yaml
Bindings/clock/qcom,sm6125-gpucc.yaml
Bindings/clock/qcom,sm6350-camcc.yaml
Bindings/clock/qcom,sm6375-dispcc.yaml
Bindings/clock/qcom,sm6375-gcc.yaml
Bindings/clock/qcom,sm6375-gpucc.yaml
Bindings/clock/qcom,sm7150-camcc.yaml [new file with mode: 0644]
Bindings/clock/qcom,sm7150-dispcc.yaml [new file with mode: 0644]
Bindings/clock/qcom,sm7150-gcc.yaml
Bindings/clock/qcom,sm7150-videocc.yaml [new file with mode: 0644]
Bindings/clock/qcom,sm8350-videocc.yaml
Bindings/clock/qcom,sm8450-camcc.yaml
Bindings/clock/qcom,sm8450-dispcc.yaml
Bindings/clock/qcom,sm8450-gpucc.yaml
Bindings/clock/qcom,sm8450-videocc.yaml
Bindings/clock/qcom,sm8550-dispcc.yaml
Bindings/clock/qcom,sm8550-gcc.yaml
Bindings/clock/qcom,sm8650-gcc.yaml
Bindings/clock/qcom,videocc.yaml
Bindings/clock/qcom,x1e80100-gcc.yaml
Bindings/clock/qoriq-clock.txt [deleted file]
Bindings/clock/renesas,rzg2l-cpg.yaml
Bindings/clock/sophgo,sg2042-clkgen.yaml [new file with mode: 0644]
Bindings/clock/sophgo,sg2042-pll.yaml [new file with mode: 0644]
Bindings/clock/sophgo,sg2042-rpgate.yaml [new file with mode: 0644]
Bindings/clock/sprd,sc9860-clk.txt [deleted file]
Bindings/clock/sprd,sc9860-clk.yaml [new file with mode: 0644]
Bindings/clock/stericsson,abx500.txt [deleted file]
Bindings/clock/thead,th1520-clk-ap.yaml [new file with mode: 0644]
Bindings/clock/ti,sci-clk.yaml
Bindings/clock/ti-keystone-pllctrl.txt [deleted file]
Bindings/counter/ti-eqep.yaml
Bindings/crypto/allwinner,sun8i-ce.yaml
Bindings/display/amlogic,meson-dw-hdmi.yaml
Bindings/display/bridge/synopsys,dw-hdmi.yaml
Bindings/display/bridge/toshiba,tc358767.yaml
Bindings/display/imx/fsl,imx6-hdmi.yaml
Bindings/display/mediatek/mediatek,aal.yaml
Bindings/display/mediatek/mediatek,ccorr.yaml
Bindings/display/mediatek/mediatek,color.yaml
Bindings/display/mediatek/mediatek,dither.yaml
Bindings/display/mediatek/mediatek,dpi.yaml
Bindings/display/mediatek/mediatek,dsi.yaml
Bindings/display/mediatek/mediatek,gamma.yaml
Bindings/display/mediatek/mediatek,ovl.yaml
Bindings/display/mediatek/mediatek,rdma.yaml
Bindings/display/msm/dsi-controller-main.yaml
Bindings/display/msm/dsi-phy-28nm.yaml
Bindings/display/msm/gmu.yaml
Bindings/display/msm/gpu.yaml
Bindings/display/msm/qcom,mdp5.yaml
Bindings/display/msm/qcom,mdss.yaml
Bindings/display/msm/qcom,sm6375-mdss.yaml
Bindings/display/msm/qcom,sm7150-dpu.yaml [new file with mode: 0644]
Bindings/display/msm/qcom,sm7150-mdss.yaml [new file with mode: 0644]
Bindings/display/panel/anbernic,rg35xx-plus-panel.yaml [new file with mode: 0644]
Bindings/display/panel/asus,z00t-tm5p5-nt35596.yaml
Bindings/display/panel/boe,tv101wum-nl6.yaml
Bindings/display/panel/himax,hx83102.yaml [new file with mode: 0644]
Bindings/display/panel/ilitek,ili9806e.yaml [new file with mode: 0644]
Bindings/display/panel/jadard,jd9365da-h3.yaml
Bindings/display/panel/lg,sw43408.yaml
Bindings/display/panel/panel-edp-legacy.yaml [new file with mode: 0644]
Bindings/display/panel/panel-mipi-dbi-spi.yaml
Bindings/display/panel/panel-simple-dsi.yaml
Bindings/display/panel/panel-simple-lvds-dual-ports.yaml
Bindings/display/panel/panel-simple.yaml
Bindings/display/panel/raydium,rm69380.yaml
Bindings/display/panel/samsung,atna33xc20.yaml [new file with mode: 0644]
Bindings/display/panel/sharp,ld-d5116z01b.yaml [deleted file]
Bindings/display/panel/sony,td4353-jdi.yaml
Bindings/display/rockchip/rockchip,dw-hdmi.yaml
Bindings/display/rockchip/rockchip,dw-mipi-dsi.yaml
Bindings/display/st,stm32mp25-lvds.yaml [new file with mode: 0644]
Bindings/dma/fsl,imx-dma.yaml [new file with mode: 0644]
Bindings/dma/fsl-imx-dma.txt [deleted file]
Bindings/dma/fsl-qdma.txt [deleted file]
Bindings/dma/fsl-qdma.yaml [new file with mode: 0644]
Bindings/dma/qcom,gpi.yaml
Bindings/dma/sprd,sc9860-dma.yaml [new file with mode: 0644]
Bindings/dma/sprd-dma.txt [deleted file]
Bindings/dma/stm32/st,stm32-dma.yaml [moved from Bindings/dma/st,stm32-dma.yaml with 97% similarity]
Bindings/dma/stm32/st,stm32-dma3.yaml [new file with mode: 0644]
Bindings/dma/stm32/st,stm32-dmamux.yaml [moved from Bindings/dma/st,stm32-dmamux.yaml with 90% similarity]
Bindings/dma/stm32/st,stm32-mdma.yaml [moved from Bindings/dma/st,stm32-mdma.yaml with 96% similarity]
Bindings/eeprom/at24.yaml
Bindings/eeprom/at25.yaml
Bindings/firmware/arm,scmi.yaml
Bindings/firmware/cznic,turris-omnia-mcu.yaml [new file with mode: 0644]
Bindings/firmware/nxp,imx95-scmi-pinctrl.yaml [new file with mode: 0644]
Bindings/firmware/qcom,scm.yaml
Bindings/fsi/aspeed,ast2600-fsi-master.yaml [new file with mode: 0644]
Bindings/fsi/fsi-controller.yaml [new file with mode: 0644]
Bindings/fsi/fsi-master-aspeed.txt [deleted file]
Bindings/fsi/ibm,fsi2spi.yaml
Bindings/fsi/ibm,i2cr-fsi-master.yaml
Bindings/fsi/ibm,p9-fsi-controller.yaml [new file with mode: 0644]
Bindings/fsi/ibm,p9-occ.txt [deleted file]
Bindings/fsi/ibm,p9-occ.yaml [new file with mode: 0644]
Bindings/fsi/ibm,p9-sbefifo.yaml [new file with mode: 0644]
Bindings/fsi/ibm,p9-scom.yaml [new file with mode: 0644]
Bindings/fuse/renesas,rcar-efuse.yaml [new file with mode: 0644]
Bindings/fuse/renesas,rcar-otp.yaml [new file with mode: 0644]
Bindings/gpio/aspeed,sgpio.yaml
Bindings/gpio/atmel,at91rm9200-gpio.yaml [new file with mode: 0644]
Bindings/gpio/fsl,qoriq-gpio.yaml [new file with mode: 0644]
Bindings/gpio/fsl-imx-gpio.yaml
Bindings/gpio/gpio-mpc8xxx.txt [deleted file]
Bindings/gpio/gpio-mxs.yaml
Bindings/gpio/gpio-pca95xx.yaml
Bindings/gpio/gpio-vf610.yaml
Bindings/gpio/gpio-zevio.txt [deleted file]
Bindings/gpio/gpio_atmel.txt [deleted file]
Bindings/gpio/lsi,zevio-gpio.yaml [new file with mode: 0644]
Bindings/gpu/arm,mali-bifrost.yaml
Bindings/hwmon/g762.txt [deleted file]
Bindings/hwmon/gmt,g762.yaml [new file with mode: 0644]
Bindings/hwmon/maxim,max6639.yaml [new file with mode: 0644]
Bindings/hwmon/ti,ina2xx.yaml
Bindings/hwmon/ti,tmp108.yaml
Bindings/i2c/amlogic,meson6-i2c.yaml
Bindings/i2c/atmel,at91sam-i2c.yaml
Bindings/i2c/brcm,brcmstb-i2c.yaml
Bindings/i2c/i2c-demux-pinctrl.yaml
Bindings/i2c/i2c-fsi.txt [deleted file]
Bindings/i2c/i2c-imx-lpi2c.yaml
Bindings/i2c/i2c-lpc2k.txt [deleted file]
Bindings/i2c/i2c-mux-gpio.yaml
Bindings/i2c/ibm,i2c-fsi.yaml [new file with mode: 0644]
Bindings/i2c/nvidia,tegra20-i2c.yaml
Bindings/i2c/nxp,lpc1788-i2c.yaml [new file with mode: 0644]
Bindings/i2c/qcom,i2c-cci.yaml
Bindings/i2c/renesas,iic-emev2.yaml
Bindings/i2c/renesas,rcar-i2c.yaml
Bindings/i2c/renesas,riic.yaml
Bindings/i2c/renesas,rmobile-iic.yaml
Bindings/i2c/samsung,s3c2410-i2c.yaml
Bindings/i2c/snps,designware-i2c.yaml
Bindings/i2c/st,stm32-i2c.yaml
Bindings/i2c/ti,omap4-i2c.yaml
Bindings/i3c/i3c.yaml
Bindings/i3c/snps,dw-i3c-master.yaml
Bindings/iio/adc/adc.yaml
Bindings/iio/adc/adi,ad7173.yaml
Bindings/iio/adc/adi,ad7192.yaml
Bindings/iio/adc/adi,ad7380.yaml [new file with mode: 0644]
Bindings/iio/adc/adi,ad7606.yaml
Bindings/iio/adc/amlogic,meson-saradc.yaml
Bindings/iio/adc/mediatek,mt6359-auxadc.yaml [new file with mode: 0644]
Bindings/iio/adc/st,stm32-dfsdm-adc.yaml
Bindings/iio/adc/ti,ads1015.yaml
Bindings/iio/adc/ti,ads1119.yaml [new file with mode: 0644]
Bindings/iio/chemical/sciosense,ens160.yaml [new file with mode: 0644]
Bindings/iio/dac/adi,ad3552r.yaml
Bindings/iio/frequency/adi,adf4350.yaml
Bindings/iio/imu/adi,adis16475.yaml
Bindings/iio/imu/adi,adis16480.yaml
Bindings/iio/imu/bosch,bmi160.yaml
Bindings/iio/light/vishay,veml6075.yaml
Bindings/iio/magnetometer/fsl,mag3110.yaml
Bindings/iio/st,st-sensors.yaml
Bindings/incomplete-devices.yaml [new file with mode: 0644]
Bindings/input/allwinner,sun4i-a10-lradc-keys.yaml
Bindings/input/cirrus,cs40l50.yaml [new file with mode: 0644]
Bindings/input/ti,nspire-keypad.txt [deleted file]
Bindings/input/ti,nspire-keypad.yaml [new file with mode: 0644]
Bindings/input/touchscreen/ads7846.txt
Bindings/input/touchscreen/edt-ft5x06.yaml
Bindings/input/touchscreen/eeti,exc3000.yaml
Bindings/input/touchscreen/ektf2127.txt [deleted file]
Bindings/input/touchscreen/elan,ektf2127.yaml [new file with mode: 0644]
Bindings/input/touchscreen/himax,hx83112b.yaml
Bindings/input/touchscreen/imagis,ist3038c.yaml
Bindings/interconnect/mediatek,mt8183-emi.yaml [new file with mode: 0644]
Bindings/interconnect/qcom,msm8953.yaml [new file with mode: 0644]
Bindings/interconnect/qcom,msm8998-bwmon.yaml
Bindings/interconnect/qcom,sc7280-rpmh.yaml
Bindings/interconnect/qcom,sc8280xp-rpmh.yaml
Bindings/interconnect/qcom,sm8450-rpmh.yaml
Bindings/interrupt-controller/fsl,irqsteer.yaml
Bindings/interrupt-controller/fsl,ls-extirq.yaml
Bindings/interrupt-controller/fsl,ls-msi.yaml [new file with mode: 0644]
Bindings/interrupt-controller/fsl,ls-scfg-msi.txt [deleted file]
Bindings/interrupt-controller/marvell,armada-370-xp-mpic.txt [deleted file]
Bindings/interrupt-controller/marvell,mpic.yaml [new file with mode: 0644]
Bindings/interrupt-controller/microchip,lan966x-oic.yaml [new file with mode: 0644]
Bindings/interrupt-controller/qcom,pdc.yaml
Bindings/interrupt-controller/realtek,rtl-intc.yaml
Bindings/interrupt-controller/renesas,rzg2l-irqc.yaml
Bindings/interrupt-controller/riscv,cpu-intc.txt [deleted file]
Bindings/interrupt-controller/riscv,cpu-intc.yaml [new file with mode: 0644]
Bindings/iommu/allwinner,sun50i-h6-iommu.yaml
Bindings/iommu/arm,smmu.yaml
Bindings/iommu/msm,iommu-v0.txt [deleted file]
Bindings/iommu/qcom,apq8064-iommu.yaml [new file with mode: 0644]
Bindings/iommu/qcom,iommu.yaml
Bindings/leds/backlight/ti,lm3509.yaml [new file with mode: 0644]
Bindings/leds/leds-lp55xx.yaml
Bindings/leds/silergy,sy7802.yaml [new file with mode: 0644]
Bindings/mailbox/mediatek,gce-props.yaml [new file with mode: 0644]
Bindings/mailbox/qcom,cpucp-mbox.yaml [new file with mode: 0644]
Bindings/media/i2c/galaxycore,gc05a2.yaml [new file with mode: 0644]
Bindings/media/i2c/galaxycore,gc08a3.yaml [new file with mode: 0644]
Bindings/media/i2c/maxim,max96714.yaml [new file with mode: 0644]
Bindings/media/i2c/maxim,max96717.yaml [new file with mode: 0644]
Bindings/media/i2c/sony,imx258.yaml [moved from Bindings/media/i2c/imx258.yaml with 88% similarity]
Bindings/media/i2c/sony,imx283.yaml [new file with mode: 0644]
Bindings/media/img,e5010-jpeg-enc.yaml [new file with mode: 0644]
Bindings/media/mediatek,mdp3-rdma.yaml
Bindings/media/mediatek,mt7622-cir.yaml [new file with mode: 0644]
Bindings/media/mtk-cir.txt [deleted file]
Bindings/media/qcom,msm8996-venus.yaml
Bindings/media/raspberrypi,pispbe.yaml [new file with mode: 0644]
Bindings/media/rc.yaml
Bindings/media/renesas,rzg2l-cru.yaml
Bindings/media/renesas,rzg2l-csi2.yaml
Bindings/media/rockchip-rga.yaml
Bindings/memory-controllers/fsl/fsl,ifc.yaml
Bindings/memory-controllers/fsl/mmdc.yaml
Bindings/mfd/marvell,88pm886-a1.yaml [new file with mode: 0644]
Bindings/mfd/mediatek,mt8195-scpsys.yaml
Bindings/mfd/mfd.txt
Bindings/mfd/qcom,pm8008.yaml
Bindings/mfd/qcom,spmi-pmic.yaml
Bindings/mfd/rockchip,rk809.yaml [deleted file]
Bindings/mfd/rockchip,rk817.yaml
Bindings/mfd/rohm,bd96801-pmic.yaml [new file with mode: 0644]
Bindings/mfd/syscon-common.yaml [new file with mode: 0644]
Bindings/mfd/syscon.yaml
Bindings/mfd/ti,twl.yaml
Bindings/mips/brcm/soc.yaml
Bindings/mips/mobileye.yaml
Bindings/mips/mscc.txt
Bindings/mips/realtek-rtl.yaml
Bindings/misc/fsl,qoriq-mc.txt [deleted file]
Bindings/misc/fsl,qoriq-mc.yaml [new file with mode: 0644]
Bindings/misc/qemu,vcpu-stall-detector.yaml
Bindings/mmc/amlogic,meson-gx-mmc.yaml
Bindings/mmc/brcm,sdhci-brcmstb.yaml
Bindings/mmc/fsl,esdhc.yaml [new file with mode: 0644]
Bindings/mmc/fsl-esdhc.txt [deleted file]
Bindings/mmc/mmc-spi-slot.yaml
Bindings/mmc/sdhci-msm.yaml
Bindings/mmc/sdhci-sprd.txt [deleted file]
Bindings/mmc/sprd,sdhci-r11.yaml [new file with mode: 0644]
Bindings/mtd/amlogic,meson-nand.yaml
Bindings/mtd/atmel-nand.txt
Bindings/mtd/gpmi-nand.yaml
Bindings/mtd/qcom,nandc.yaml
Bindings/net/airoha,en7581-eth.yaml [new file with mode: 0644]
Bindings/net/arc_emac.txt [deleted file]
Bindings/net/bluetooth/mediatek,mt7622-bluetooth.yaml [new file with mode: 0644]
Bindings/net/bluetooth/nxp,88w8987-bt.yaml
Bindings/net/bluetooth/qualcomm-bluetooth.yaml
Bindings/net/can/xilinx,can.yaml
Bindings/net/cdns,macb.yaml
Bindings/net/dsa/lantiq,gswip.yaml [new file with mode: 0644]
Bindings/net/dsa/lantiq-gswip.txt [deleted file]
Bindings/net/dsa/mediatek,mt7530.yaml
Bindings/net/dsa/vitesse,vsc73xx.txt [deleted file]
Bindings/net/dsa/vitesse,vsc73xx.yaml [new file with mode: 0644]
Bindings/net/ethernet-controller.yaml
Bindings/net/ethernet-phy.yaml
Bindings/net/fsl,enetc-ierb.yaml [new file with mode: 0644]
Bindings/net/fsl,enetc-mdio.yaml [new file with mode: 0644]
Bindings/net/fsl,enetc.yaml [new file with mode: 0644]
Bindings/net/fsl,fman-mdio.yaml [new file with mode: 0644]
Bindings/net/fsl,fman-muram.yaml [new file with mode: 0644]
Bindings/net/fsl,fman-port.yaml [new file with mode: 0644]
Bindings/net/fsl,fman.yaml [new file with mode: 0644]
Bindings/net/fsl,qoriq-mc-dpmac.yaml
Bindings/net/fsl-enetc.txt [deleted file]
Bindings/net/fsl-fman.txt [deleted file]
Bindings/net/fsl-tsec-phy.txt
Bindings/net/hisilicon-hip04-net.txt
Bindings/net/mediatek,net.yaml
Bindings/net/mediatek-bluetooth.txt
Bindings/net/mscc,miim.yaml
Bindings/net/nxp,tja11xx.yaml
Bindings/net/pcs/snps,dw-xpcs.yaml [new file with mode: 0644]
Bindings/net/realtek,rtl82xx.yaml
Bindings/net/snps,dwmac.yaml
Bindings/net/stm32-dwmac.yaml
Bindings/net/ti,icss-iep.yaml
Bindings/net/ti,icssg-prueth.yaml
Bindings/net/wireless/qcom,ath10k.yaml
Bindings/net/wireless/qcom,ath11k-pci.yaml
Bindings/net/wireless/qcom,ath11k.yaml
Bindings/net/wireless/qcom,ath12k.yaml [new file with mode: 0644]
Bindings/net/xlnx,gmii-to-rgmii.yaml
Bindings/nvmem/amlogic,meson-gxbb-efuse.yaml
Bindings/nvmem/imx-iim.yaml
Bindings/nvmem/imx-ocotp.yaml
Bindings/nvmem/mediatek,efuse.yaml
Bindings/nvmem/mxs-ocotp.yaml
Bindings/nvmem/xlnx,zynqmp-nvmem.yaml
Bindings/pci/host-generic-pci.yaml
Bindings/pci/mediatek,mt7621-pcie.yaml
Bindings/pci/microchip,pcie-host.yaml
Bindings/pci/plda,xpressrich3-axi-common.yaml [new file with mode: 0644]
Bindings/pci/qcom,pcie-ep.yaml
Bindings/pci/qcom,pcie-sm8450.yaml
Bindings/pci/qcom,pcie-x1e80100.yaml
Bindings/pci/rockchip-dw-pcie-common.yaml [new file with mode: 0644]
Bindings/pci/rockchip-dw-pcie-ep.yaml [new file with mode: 0644]
Bindings/pci/rockchip-dw-pcie.yaml
Bindings/pci/snps,dw-pcie-ep.yaml
Bindings/pci/starfive,jh7110-pcie.yaml [new file with mode: 0644]
Bindings/pci/xilinx-versal-cpm.yaml
Bindings/perf/fsl-imx-ddr.yaml
Bindings/phy/airoha,en7581-pcie-phy.yaml [new file with mode: 0644]
Bindings/phy/amlogic,g12a-usb2-phy.yaml
Bindings/phy/fsl,imx8qm-hsio.yaml [new file with mode: 0644]
Bindings/phy/marvell,armada-cp110-utmi-phy.yaml
Bindings/phy/qcom,ipq8074-qmp-pcie-phy.yaml
Bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
Bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml
Bindings/phy/qcom,usb-hs-phy.yaml
Bindings/phy/rockchip,rk3399-emmc-phy.yaml [new file with mode: 0644]
Bindings/phy/rockchip-emmc-phy.txt [deleted file]
Bindings/phy/samsung,usb3-drd-phy.yaml
Bindings/phy/starfive,jh7110-dphy-tx.yaml [new file with mode: 0644]
Bindings/pinctrl/aspeed,ast2400-pinctrl.yaml
Bindings/pinctrl/aspeed,ast2500-pinctrl.yaml
Bindings/pinctrl/aspeed,ast2600-pinctrl.yaml
Bindings/pinctrl/fsl,imx9-pinctrl.yaml [moved from Bindings/pinctrl/fsl,imx93-pinctrl.yaml with 93% similarity]
Bindings/pinctrl/nuvoton,ma35d1-pinctrl.yaml [new file with mode: 0644]
Bindings/pinctrl/nuvoton,npcm845-pinctrl.yaml
Bindings/pinctrl/pinctrl-single.yaml
Bindings/pinctrl/qcom,mdm9607-tlmm.yaml
Bindings/pinctrl/qcom,pmic-gpio.yaml
Bindings/pinctrl/qcom,sm4250-lpass-lpi-pinctrl.yaml [new file with mode: 0644]
Bindings/pinctrl/qcom,sm6350-tlmm.yaml
Bindings/pinctrl/qcom,sm6375-tlmm.yaml
Bindings/pinctrl/renesas,rzg2l-pinctrl.yaml
Bindings/pinctrl/xlnx,zynqmp-pinctrl.yaml
Bindings/platform/lenovo,yoga-c630-ec.yaml [new file with mode: 0644]
Bindings/power/amlogic,meson-sec-pwrc.yaml
Bindings/power/supply/maxim,max17201.yaml [new file with mode: 0644]
Bindings/ptp/fsl,ptp.yaml [new file with mode: 0644]
Bindings/ptp/ptp-qoriq.txt [deleted file]
Bindings/pwm/adi,axi-pwmgen.yaml [new file with mode: 0644]
Bindings/pwm/atmel,at91sam-pwm.yaml
Bindings/pwm/fsl,vf610-ftm-pwm.yaml [new file with mode: 0644]
Bindings/pwm/imx-pwm.yaml
Bindings/pwm/imx-tpm-pwm.yaml
Bindings/pwm/mxs-pwm.yaml
Bindings/pwm/pwm-fsl-ftm.txt [deleted file]
Bindings/pwm/pwm-gpio.yaml [new file with mode: 0644]
Bindings/pwm/pwm.yaml
Bindings/regulator/mediatek,mt6873-dvfsrc-regulator.yaml [new file with mode: 0644]
Bindings/regulator/mt6315-regulator.yaml
Bindings/regulator/nxp,pca9450-regulator.yaml
Bindings/regulator/qcom,qca6390-pmu.yaml [new file with mode: 0644]
Bindings/regulator/richtek,rtq2208.yaml
Bindings/regulator/rohm,bd96801-regulator.yaml [new file with mode: 0644]
Bindings/regulator/sprd,sc2731-regulator.txt [deleted file]
Bindings/regulator/sprd,sc2731-regulator.yaml [new file with mode: 0644]
Bindings/regulator/st,stm32mp1-pwr-reg.yaml
Bindings/regulator/ti,tps65132.yaml
Bindings/regulator/twl-regulator.txt [deleted file]
Bindings/remoteproc/fsl,imx-rproc.yaml
Bindings/remoteproc/qcom,rpm-proc.yaml
Bindings/remoteproc/qcom,sa8775p-pas.yaml [new file with mode: 0644]
Bindings/remoteproc/ti,k3-dsp-rproc.yaml
Bindings/reset/nuvoton,ma35d1-reset.yaml
Bindings/reset/renesas,rzg2l-usbphy-ctrl.yaml
Bindings/reset/ti,sci-reset.yaml
Bindings/riscv/cpus.yaml
Bindings/riscv/extensions.yaml
Bindings/riscv/microchip.yaml
Bindings/riscv/starfive.yaml
Bindings/rng/amlogic,meson-rng.yaml
Bindings/rng/samsung,exynos5250-trng.yaml
Bindings/rtc/fsl,ls-ftm-alarm.yaml [new file with mode: 0644]
Bindings/rtc/rtc-fsl-ftm-alarm.txt [deleted file]
Bindings/rtc/st,stm32-rtc.yaml
Bindings/serial/mediatek,uart.yaml
Bindings/serial/mrvl,pxa-ssp.txt [deleted file]
Bindings/serial/nxp,sc16is7xx.yaml
Bindings/serial/renesas,scif.yaml
Bindings/serial/snps-dw-apb-uart.yaml
Bindings/serial/via,vt8500-uart.yaml [new file with mode: 0644]
Bindings/serial/vt8500-uart.txt [deleted file]
Bindings/soc/fsl/bman-portals.txt [deleted file]
Bindings/soc/fsl/bman.txt [deleted file]
Bindings/soc/fsl/cpm_qe/fsl,qe-firmware.yaml [new file with mode: 0644]
Bindings/soc/fsl/cpm_qe/fsl,qe-ic.yaml [new file with mode: 0644]
Bindings/soc/fsl/cpm_qe/fsl,qe-muram.yaml [new file with mode: 0644]
Bindings/soc/fsl/cpm_qe/fsl,qe-si.yaml [new file with mode: 0644]
Bindings/soc/fsl/cpm_qe/fsl,qe-siram.yaml [new file with mode: 0644]
Bindings/soc/fsl/cpm_qe/fsl,qe.yaml [new file with mode: 0644]
Bindings/soc/fsl/cpm_qe/qe.txt [deleted file]
Bindings/soc/fsl/fsl,bman-portal.yaml [new file with mode: 0644]
Bindings/soc/fsl/fsl,bman.yaml [new file with mode: 0644]
Bindings/soc/fsl/fsl,layerscape-dcfg.yaml
Bindings/soc/fsl/fsl,layerscape-scfg.yaml
Bindings/soc/fsl/fsl,ls1028a-reset.yaml [new file with mode: 0644]
Bindings/soc/fsl/fsl,qman-fqd.yaml [new file with mode: 0644]
Bindings/soc/fsl/fsl,qman-portal.yaml [new file with mode: 0644]
Bindings/soc/fsl/fsl,qman.yaml [new file with mode: 0644]
Bindings/soc/fsl/qman-portals.txt [deleted file]
Bindings/soc/fsl/qman.txt [deleted file]
Bindings/soc/hisilicon/hisilicon,hi3660-usb3-otg-bc.yaml [new file with mode: 0644]
Bindings/soc/intel/intel,lgm-syscon.yaml [new file with mode: 0644]
Bindings/soc/mediatek/mediatek,mutex.yaml
Bindings/soc/microchip/microchip,sparx5-cpu-syscon.yaml [new file with mode: 0644]
Bindings/soc/mobileye/mobileye,eyeq5-olb.yaml [new file with mode: 0644]
Bindings/soc/qcom/qcom,aoss-qmp.yaml
Bindings/soc/qcom/qcom,rpm-master-stats.yaml
Bindings/soc/qcom/qcom,smp2p.yaml
Bindings/soc/qcom/qcom,smsm.yaml
Bindings/soc/rockchip/grf.yaml
Bindings/soc/sprd/sprd,sc9863a-glbregs.yaml [new file with mode: 0644]
Bindings/soc/sti/st,sti-syscon.yaml
Bindings/soc/ti/sci-pm-domain.yaml
Bindings/soc/ti/ti,am654-serdes-ctrl.yaml [new file with mode: 0644]
Bindings/soc/ti/ti,j721e-system-controller.yaml [moved from Bindings/mfd/ti,j721e-system-controller.yaml with 96% similarity]
Bindings/sound/ak4104.txt [deleted file]
Bindings/sound/ak4554.txt [deleted file]
Bindings/sound/amlogic,g12a-tohdmitx.txt [deleted file]
Bindings/sound/amlogic,g12a-tohdmitx.yaml [new file with mode: 0644]
Bindings/sound/amlogic,gx-sound-card.yaml
Bindings/sound/asahi-kasei,ak4104.yaml [new file with mode: 0644]
Bindings/sound/asahi-kasei,ak4375.yaml [moved from Bindings/sound/ak4375.yaml with 94% similarity]
Bindings/sound/asahi-kasei,ak4554.yaml [new file with mode: 0644]
Bindings/sound/asahi-kasei,ak4613.yaml [moved from Bindings/sound/ak4613.yaml with 94% similarity]
Bindings/sound/asahi-kasei,ak4619.yaml [new file with mode: 0644]
Bindings/sound/asahi-kasei,ak4642.yaml [moved from Bindings/sound/ak4642.yaml with 94% similarity]
Bindings/sound/audio-graph-card2.yaml
Bindings/sound/audio-graph-port.yaml
Bindings/sound/cirrus,cs4270.yaml [new file with mode: 0644]
Bindings/sound/cirrus,cs42xx8.yaml [new file with mode: 0644]
Bindings/sound/cirrus,cs530x.yaml [new file with mode: 0644]
Bindings/sound/cs4270.txt [deleted file]
Bindings/sound/cs42xx8.txt [deleted file]
Bindings/sound/everest,es7134.txt [deleted file]
Bindings/sound/everest,es71x4.yaml [new file with mode: 0644]
Bindings/sound/everest,es7241.txt [deleted file]
Bindings/sound/everest,es7241.yaml [new file with mode: 0644]
Bindings/sound/everest,es8316.yaml
Bindings/sound/fsl,imx-audio-spdif.yaml [deleted file]
Bindings/sound/fsl,mqs.yaml
Bindings/sound/fsl,qmc-audio.yaml
Bindings/sound/fsl,rpmsg.yaml
Bindings/sound/fsl,sgtl5000.yaml [moved from Bindings/sound/sgtl5000.yaml with 97% similarity]
Bindings/sound/fsl,xcvr.yaml
Bindings/sound/fsl-asoc-card.yaml
Bindings/sound/linux,spdif.yaml [moved from Bindings/sound/linux,spdif-dit.yaml with 75% similarity]
Bindings/sound/maxim,max98088.txt [deleted file]
Bindings/sound/maxim,max98088.yaml [new file with mode: 0644]
Bindings/sound/mscc,zl38060.yaml [moved from Bindings/sound/zl38060.yaml with 96% similarity]
Bindings/sound/nuvoton,nau8824.yaml
Bindings/sound/nxp,lpc3220-i2s.yaml [new file with mode: 0644]
Bindings/sound/omap-mcpdm.txt [deleted file]
Bindings/sound/pcm512x.txt
Bindings/sound/qcom,apq8096.txt [deleted file]
Bindings/sound/qcom,msm8916-wcd-digital-codec.yaml [new file with mode: 0644]
Bindings/sound/qcom,msm8916-wcd-digital.txt [deleted file]
Bindings/sound/qcom,sm8250.yaml
Bindings/sound/qcom,wcd934x.yaml
Bindings/sound/qcom,wcd937x-sdw.yaml [new file with mode: 0644]
Bindings/sound/qcom,wcd937x.yaml [new file with mode: 0644]
Bindings/sound/qcom,wcd938x.yaml
Bindings/sound/qcom,wcd939x.yaml
Bindings/sound/qcom,wsa883x.yaml
Bindings/sound/qcom,wsa8840.yaml
Bindings/sound/realtek,rt1019.yaml [moved from Bindings/sound/rt1019.yaml with 90% similarity]
Bindings/sound/realtek,rt5514.yaml [new file with mode: 0644]
Bindings/sound/realtek,rt5631.yaml [new file with mode: 0644]
Bindings/sound/realtek,rt5645.yaml [new file with mode: 0644]
Bindings/sound/realtek,rt5659.yaml [new file with mode: 0644]
Bindings/sound/realtek,rt5677.yaml [new file with mode: 0644]
Bindings/sound/rt5514.txt [deleted file]
Bindings/sound/rt5631.txt [deleted file]
Bindings/sound/rt5645.txt [deleted file]
Bindings/sound/rt5659.txt [deleted file]
Bindings/sound/rt5677.txt [deleted file]
Bindings/sound/samsung,midas-audio.yaml
Bindings/sound/simple-audio-mux.yaml
Bindings/sound/spdif-receiver.txt [deleted file]
Bindings/sound/tas571x.txt [deleted file]
Bindings/sound/ti,omap4-mcpdm.yaml [new file with mode: 0644]
Bindings/sound/ti,tas2562.yaml [moved from Bindings/sound/tas2562.yaml with 97% similarity]
Bindings/sound/ti,tas2770.yaml [moved from Bindings/sound/tas2770.yaml with 97% similarity]
Bindings/sound/ti,tas27xx.yaml [moved from Bindings/sound/tas27xx.yaml with 97% similarity]
Bindings/sound/ti,tas57xx.yaml [new file with mode: 0644]
Bindings/sound/ti,tas5805m.yaml [moved from Bindings/sound/tas5805m.yaml with 95% similarity]
Bindings/sound/ti,tlv320adc3xxx.yaml
Bindings/sound/ti,tlv320adcx140.yaml [moved from Bindings/sound/tlv320adcx140.yaml with 99% similarity]
Bindings/sound/wlf,wm8750.yaml [moved from Bindings/sound/wm8750.yaml with 92% similarity]
Bindings/sound/wlf,wm8782.yaml [new file with mode: 0644]
Bindings/sound/wlf,wm8804.yaml [new file with mode: 0644]
Bindings/sound/wm8782.txt [deleted file]
Bindings/sound/wm8804.txt [deleted file]
Bindings/spi/amlogic,a1-spifc.yaml
Bindings/spi/atmel,at91rm9200-spi.yaml
Bindings/spi/brcm,bcm2835-spi.txt [deleted file]
Bindings/spi/brcm,bcm2835-spi.yaml [new file with mode: 0644]
Bindings/spi/fsl,dspi-peripheral-props.yaml [new file with mode: 0644]
Bindings/spi/fsl,dspi.yaml [new file with mode: 0644]
Bindings/spi/ibm,spi-fsi.yaml [new file with mode: 0644]
Bindings/spi/marvell,mmp2-ssp.yaml
Bindings/spi/microchip,mpfs-spi.yaml
Bindings/spi/snps,dw-apb-ssi.yaml
Bindings/spi/spi-cadence.yaml
Bindings/spi/spi-fsl-dspi.txt [deleted file]
Bindings/spi/spi-fsl-lpspi.yaml
Bindings/spi/spi-peripheral-props.yaml
Bindings/spi/st,stm32-spi.yaml
Bindings/sram/allwinner,sun4i-a10-system-control.yaml
Bindings/sram/qcom,imem.yaml
Bindings/thermal/allwinner,sun8i-a83t-ths.yaml
Bindings/thermal/amlogic,thermal.yaml
Bindings/thermal/brcm,avs-ro-thermal.yaml
Bindings/thermal/brcm,avs-tmon.yaml
Bindings/thermal/brcm,bcm2835-thermal.yaml
Bindings/thermal/fsl,scu-thermal.yaml
Bindings/thermal/generic-adc-thermal.yaml
Bindings/thermal/hisilicon,tsensor.yaml [new file with mode: 0644]
Bindings/thermal/hisilicon-thermal.txt [deleted file]
Bindings/thermal/imx-thermal.yaml
Bindings/thermal/imx8mm-thermal.yaml
Bindings/thermal/loongson,ls2k-thermal.yaml
Bindings/thermal/mediatek,lvts-thermal.yaml
Bindings/thermal/nvidia,tegra124-soctherm.yaml
Bindings/thermal/nvidia,tegra186-bpmp-thermal.yaml
Bindings/thermal/nvidia,tegra30-tsensor.yaml
Bindings/thermal/qcom,spmi-temp-alarm.yaml
Bindings/thermal/qcom-spmi-adc-tm-hc.yaml
Bindings/thermal/qcom-spmi-adc-tm5.yaml
Bindings/thermal/qcom-tsens.yaml
Bindings/thermal/qoriq-thermal.yaml
Bindings/thermal/rcar-gen3-thermal.yaml
Bindings/thermal/rcar-thermal.yaml
Bindings/thermal/rockchip-thermal.yaml
Bindings/thermal/rzg2l-thermal.yaml
Bindings/thermal/samsung,exynos-thermal.yaml
Bindings/thermal/socionext,uniphier-thermal.yaml
Bindings/thermal/sprd-thermal.yaml
Bindings/thermal/st,stm32-thermal.yaml
Bindings/thermal/thermal-zones.yaml
Bindings/thermal/ti,am654-thermal.yaml
Bindings/thermal/ti,j72xx-thermal.yaml
Bindings/timer/realtek,otto-timer.yaml [new file with mode: 0644]
Bindings/timer/renesas,tmu.yaml
Bindings/timer/sifive,clint.yaml
Bindings/timer/sprd,sc9860-timer.yaml [new file with mode: 0644]
Bindings/timer/spreadtrum,sprd-timer.txt [deleted file]
Bindings/trivial-devices.yaml
Bindings/ufs/qcom,ufs.yaml
Bindings/usb/cdns,usb3.yaml
Bindings/usb/dwc2.yaml
Bindings/usb/fsl,usb2.yaml [new file with mode: 0644]
Bindings/usb/fsl-usb.txt [deleted file]
Bindings/usb/genesys,gl850g.yaml
Bindings/usb/gpio-sbu-mux.yaml
Bindings/usb/microchip,mpfs-musb.yaml
Bindings/usb/microchip,usb2514.yaml
Bindings/usb/qcom,dwc3.yaml
Bindings/vendor-prefixes.yaml
Bindings/watchdog/amlogic,meson-gxbb-wdt.yaml
Bindings/watchdog/dlg,da9062-watchdog.yaml
Bindings/watchdog/fsl-imx-wdt.yaml
Bindings/watchdog/fsl-imx7ulp-wdt.yaml
Bindings/watchdog/img,pdc-wdt.yaml [new file with mode: 0644]
Bindings/watchdog/imgpdc-wdt.txt [deleted file]
Bindings/watchdog/renesas,wdt.yaml
include/dt-bindings/arm/qcom,ids.h
include/dt-bindings/clock/amlogic,a1-peripherals-clkc.h
include/dt-bindings/clock/amlogic,a1-pll-clkc.h
include/dt-bindings/clock/amlogic,c3-peripherals-clkc.h [new file with mode: 0644]
include/dt-bindings/clock/amlogic,c3-pll-clkc.h [new file with mode: 0644]
include/dt-bindings/clock/amlogic,c3-scmi-clkc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,ipq9574-gcc.h
include/dt-bindings/clock/qcom,qca8k-nsscc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,qcm2290-gpucc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm7150-camcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm7150-dispcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm7150-videocc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm8650-camcc.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,sm8650-videocc.h [new file with mode: 0644]
include/dt-bindings/clock/r8a7779-clock.h
include/dt-bindings/clock/r8a7790-clock.h [deleted file]
include/dt-bindings/clock/r8a7791-clock.h [deleted file]
include/dt-bindings/clock/r8a7792-clock.h [deleted file]
include/dt-bindings/clock/r8a7793-clock.h [deleted file]
include/dt-bindings/clock/r8a7794-clock.h [deleted file]
include/dt-bindings/clock/rk3128-cru.h
include/dt-bindings/clock/rk3188-cru-common.h
include/dt-bindings/clock/sophgo,sg2042-clkgen.h [new file with mode: 0644]
include/dt-bindings/clock/sophgo,sg2042-pll.h [new file with mode: 0644]
include/dt-bindings/clock/sophgo,sg2042-rpgate.h [new file with mode: 0644]
include/dt-bindings/clock/sun50i-h616-ccu.h
include/dt-bindings/clock/thead,th1520-clk-ap.h [new file with mode: 0644]
include/dt-bindings/i3c/i3c.h [new file with mode: 0644]
include/dt-bindings/iio/adc/mediatek,mt6357-auxadc.h [new file with mode: 0644]
include/dt-bindings/iio/adc/mediatek,mt6358-auxadc.h [new file with mode: 0644]
include/dt-bindings/iio/adc/mediatek,mt6359-auxadc.h [new file with mode: 0644]
include/dt-bindings/input/cros-ec-keyboard.h
include/dt-bindings/interconnect/mediatek,mt8183.h [new file with mode: 0644]
include/dt-bindings/interconnect/mediatek,mt8195.h [new file with mode: 0644]
include/dt-bindings/interconnect/qcom,ipq9574.h [new file with mode: 0644]
include/dt-bindings/interconnect/qcom,msm8953.h [new file with mode: 0644]
include/dt-bindings/mfd/qcom-pm8008.h [deleted file]
include/dt-bindings/mfd/st,stpmic1.h
include/dt-bindings/power/amlogic,a4-pwrc.h [new file with mode: 0644]
include/dt-bindings/power/amlogic,a5-pwrc.h [new file with mode: 0644]
include/dt-bindings/regulator/st,stm32mp25-regulator.h [new file with mode: 0644]
include/dt-bindings/reset/airoha,en7581-reset.h [new file with mode: 0644]
include/dt-bindings/reset/qcom,qca8k-nsscc.h [new file with mode: 0644]
include/dt-bindings/reset/sun50i-h616-ccu.h
include/dt-bindings/sound/audio-graph.h [new file with mode: 0644]
include/dt-bindings/thermal/mediatek,lvts-thermal.h
src/arm/arm/arm-realview-eb-bbrevd.dtsi
src/arm/arm/arm-realview-eb.dtsi
src/arm/arm/arm-realview-pb1176.dts
src/arm/arm/arm-realview-pb11mp.dts
src/arm/arm/arm-realview-pbx.dtsi
src/arm/arm/integratorap-im-pd1.dts
src/arm/arm/integratorap.dts
src/arm/arm/integratorcp.dts
src/arm/arm/mps2.dtsi
src/arm/arm/versatile-ab.dts
src/arm/arm/vexpress-v2m-rs1.dtsi
src/arm/arm/vexpress-v2m.dtsi
src/arm/arm/vexpress-v2p-ca15-tc1.dts
src/arm/arm/vexpress-v2p-ca15_a7.dts
src/arm/arm/vexpress-v2p-ca5s.dts
src/arm/arm/vexpress-v2p-ca9.dts
src/arm/aspeed/aspeed-g4.dtsi
src/arm/aspeed/aspeed-g5.dtsi
src/arm/aspeed/aspeed-g6.dtsi
src/arm/cirrus/ep7211-edb7211.dts
src/arm/intel/ixp/intel-ixp42x-linksys-nslu2.dts
src/arm/marvell/armada-370-xp.dtsi
src/arm/marvell/armada-375.dtsi
src/arm/marvell/armada-385-atl-x530.dts
src/arm/marvell/armada-385-turris-omnia.dts
src/arm/marvell/armada-38x.dtsi
src/arm/marvell/armada-39x.dtsi
src/arm/marvell/kirkwood-blackarmor-nas220.dts
src/arm/marvell/kirkwood-c200-v1.dts
src/arm/marvell/kirkwood-cloudbox.dts
src/arm/marvell/kirkwood-d2net.dts
src/arm/marvell/kirkwood-dir665.dts
src/arm/marvell/kirkwood-dns320.dts
src/arm/marvell/kirkwood-dns325.dts
src/arm/marvell/kirkwood-dnskw.dtsi
src/arm/marvell/kirkwood-dockstar.dts
src/arm/marvell/kirkwood-dreamplug.dts
src/arm/marvell/kirkwood-goflexnet.dts
src/arm/marvell/kirkwood-guruplug-server-plus.dts
src/arm/marvell/kirkwood-ib62x0.dts
src/arm/marvell/kirkwood-iconnect.dts
src/arm/marvell/kirkwood-iomega_ix2_200.dts
src/arm/marvell/kirkwood-l-50.dts
src/arm/marvell/kirkwood-laplug.dts
src/arm/marvell/kirkwood-linkstation.dtsi
src/arm/marvell/kirkwood-linksys-viper.dts
src/arm/marvell/kirkwood-lsxl.dtsi
src/arm/marvell/kirkwood-mplcec4.dts
src/arm/marvell/kirkwood-mv88f6281gtw-ge.dts
src/arm/marvell/kirkwood-netxbig.dtsi
src/arm/marvell/kirkwood-ns2-common.dtsi
src/arm/marvell/kirkwood-ns2lite.dts
src/arm/marvell/kirkwood-nsa310.dts
src/arm/marvell/kirkwood-nsa310a.dts
src/arm/marvell/kirkwood-nsa310s.dts
src/arm/marvell/kirkwood-nsa320.dts
src/arm/marvell/kirkwood-nsa325.dts
src/arm/marvell/kirkwood-nsa3x0-common.dtsi
src/arm/marvell/kirkwood-openblocks_a6.dts
src/arm/marvell/kirkwood-openblocks_a7.dts
src/arm/marvell/kirkwood-pogo_e02.dts
src/arm/marvell/kirkwood-pogoplug-series-4.dts
src/arm/marvell/kirkwood-sheevaplug-esata.dts
src/arm/marvell/kirkwood-sheevaplug.dts
src/arm/marvell/kirkwood-synology.dtsi
src/arm/marvell/kirkwood-t5325.dts
src/arm/marvell/kirkwood-ts219-6281.dts
src/arm/marvell/kirkwood-ts219-6282.dts
src/arm/marvell/kirkwood-ts419.dtsi
src/arm/marvell/mvebu-linkstation-gpio-simple.dtsi
src/arm/marvell/orion5x-lacie-d2-network.dts
src/arm/marvell/orion5x-lacie-ethernet-disk-mini-v2.dts
src/arm/marvell/orion5x-linkstation-lschl.dts
src/arm/marvell/orion5x-lswsgl.dts
src/arm/marvell/orion5x-maxtor-shared-storage-2.dts
src/arm/marvell/orion5x-netgear-wnr854t.dts
src/arm/marvell/orion5x-rd88f5182-nas.dts
src/arm/mediatek/mt2701-evb.dts
src/arm/mediatek/mt7623.dtsi
src/arm/nspire/nspire-classic.dtsi
src/arm/nspire/nspire-cx.dts
src/arm/nspire/nspire.dtsi
src/arm/nuvoton/nuvoton-npcm730-kudo.dts
src/arm/nuvoton/nuvoton-npcm750-runbmc-olympus.dts
src/arm/nxp/imx/e60k02.dtsi
src/arm/nxp/imx/imx51-apf51dev.dts
src/arm/nxp/imx/imx51-babbage.dts
src/arm/nxp/imx/imx51-ts4800.dts
src/arm/nxp/imx/imx53-m53evk.dts
src/arm/nxp/imx/imx53-m53menlo.dts
src/arm/nxp/imx/imx53-tx53-x03x.dts
src/arm/nxp/imx/imx53-tx53-x13x.dts
src/arm/nxp/imx/imx6dl-aristainetos2_4.dts
src/arm/nxp/imx/imx6dl-aristainetos_4.dts
src/arm/nxp/imx/imx6dl-aristainetos_7.dts
src/arm/nxp/imx/imx6dl-kontron-samx6i-ads2.dts [new file with mode: 0644]
src/arm/nxp/imx/imx6dl-kontron-samx6i.dtsi
src/arm/nxp/imx/imx6dl-yapp43-common.dtsi
src/arm/nxp/imx/imx6q-kontron-samx6i-ads2.dts [new file with mode: 0644]
src/arm/nxp/imx/imx6q-kontron-samx6i.dtsi
src/arm/nxp/imx/imx6qdl-gw52xx.dtsi
src/arm/nxp/imx/imx6qdl-gw53xx.dtsi
src/arm/nxp/imx/imx6qdl-gw54xx.dtsi
src/arm/nxp/imx/imx6qdl-gw560x.dtsi
src/arm/nxp/imx/imx6qdl-gw5903.dtsi
src/arm/nxp/imx/imx6qdl-gw5904.dtsi
src/arm/nxp/imx/imx6qdl-kontron-samx6i-ads2.dtsi [new file with mode: 0644]
src/arm/nxp/imx/imx6qdl-kontron-samx6i.dtsi
src/arm/nxp/imx/imx6qdl-mba6a.dtsi
src/arm/nxp/imx/imx6qdl-mba6b.dtsi
src/arm/nxp/imx/imx6qdl-sabreauto.dtsi
src/arm/nxp/imx/imx6qdl-tx6-lcd.dtsi
src/arm/nxp/imx/imx6qdl-tx6-lvds.dtsi
src/arm/nxp/imx/imx6ul-tx6ul.dtsi
src/arm/nxp/mxs/imx28-tx28.dts
src/arm/qcom/msm8226-motorola-falcon.dts
src/arm/qcom/qcom-apq8026-samsung-milletwifi.dts [new file with mode: 0644]
src/arm/qcom/qcom-apq8064.dtsi
src/arm/qcom/qcom-apq8084.dtsi
src/arm/qcom/qcom-ipq4019.dtsi
src/arm/qcom/qcom-ipq8064.dtsi
src/arm/qcom/qcom-mdm9615.dtsi
src/arm/qcom/qcom-msm8226-microsoft-common.dtsi
src/arm/qcom/qcom-msm8226-samsung-ms013g.dts [new file with mode: 0644]
src/arm/qcom/qcom-msm8226.dtsi
src/arm/qcom/qcom-msm8660.dtsi
src/arm/qcom/qcom-msm8926-motorola-peregrine.dts
src/arm/qcom/qcom-msm8960.dtsi
src/arm/qcom/qcom-msm8974-lge-nexus5-hammerhead.dts
src/arm/qcom/qcom-msm8974-samsung-hlte.dts [new file with mode: 0644]
src/arm/qcom/qcom-msm8974.dtsi
src/arm/qcom/qcom-msm8974pro-htc-m8.dts [new file with mode: 0644]
src/arm/qcom/qcom-msm8974pro-sony-xperia-shinano-aries.dts [new file with mode: 0644]
src/arm/qcom/qcom-msm8974pro-sony-xperia-shinano-common.dtsi
src/arm/renesas/r8a73a4.dtsi
src/arm/renesas/r8a7742.dtsi
src/arm/renesas/r8a7743.dtsi
src/arm/renesas/r8a7744.dtsi
src/arm/renesas/r8a7745.dtsi
src/arm/renesas/r8a77470.dtsi
src/arm/renesas/r8a7790.dtsi
src/arm/renesas/r8a7791.dtsi
src/arm/renesas/r8a7792.dtsi
src/arm/renesas/r8a7793.dtsi
src/arm/renesas/r8a7794.dtsi
src/arm/renesas/r9a06g032.dtsi
src/arm/rockchip/rk3036.dtsi
src/arm/rockchip/rk3066a-mk808.dts
src/arm/rockchip/rk3066a.dtsi
src/arm/rockchip/rk3128.dtsi
src/arm/rockchip/rk3xxx.dtsi
src/arm/rockchip/rv1126-edgeble-neu2-io.dts
src/arm/st/stih407-family.dtsi
src/arm/st/stih410.dtsi
src/arm/st/stih418.dtsi
src/arm/st/stm32f429.dtsi
src/arm/st/stm32mp13-pinctrl.dtsi
src/arm/st/stm32mp131.dtsi
src/arm/st/stm32mp133.dtsi
src/arm/st/stm32mp135f-dhcor-dhsbc.dts [new file with mode: 0644]
src/arm/st/stm32mp135f-dk.dts
src/arm/st/stm32mp13xx-dhcor-som.dtsi [new file with mode: 0644]
src/arm/st/stm32mp151.dtsi
src/arm/st/stm32mp157a-dk1-scmi.dts
src/arm/st/stm32mp157c-dk2-scmi.dts
src/arm/st/stm32mp157c-ed1-scmi.dts
src/arm/st/stm32mp157c-ev1-scmi.dts
src/arm/st/stm32mp157c-osd32mp1-red.dts
src/arm/st/stm32mp15xc-lxa-tac.dtsi
src/arm/st/stm32mp15xx-osd32.dtsi
src/arm/ti/davinci/da850-evm.dts
src/arm/ti/omap/am335x-guardian.dts
src/arm/ti/omap/am335x-pdu001.dts
src/arm/ti/omap/am335x-pepper.dts
src/arm/ti/omap/am5729-beagleboneai.dts
src/arm/ti/omap/omap3-n900.dts
src/arm/vt8500/vt8500-bv07.dts
src/arm/vt8500/vt8500.dtsi
src/arm/vt8500/wm8505-ref.dts
src/arm/vt8500/wm8505.dtsi
src/arm/vt8500/wm8650-mid.dts
src/arm/vt8500/wm8650.dtsi
src/arm/vt8500/wm8750.dtsi
src/arm/vt8500/wm8850-w70v2.dts
src/arm/vt8500/wm8850.dtsi
src/arm64/airoha/en7581-evb.dts [new file with mode: 0644]
src/arm64/airoha/en7581.dtsi [new file with mode: 0644]
src/arm64/allwinner/sun50i-a64-pine64-lts.dts
src/arm64/allwinner/sun50i-a64-pine64-plus.dts
src/arm64/allwinner/sun50i-a64-pine64.dts
src/arm64/allwinner/sun50i-a64-pinebook.dts
src/arm64/allwinner/sun50i-a64-pinetab-early-adopter.dts
src/arm64/allwinner/sun50i-a64-pinetab.dts
src/arm64/allwinner/sun50i-a64-sopine-baseboard.dts
src/arm64/allwinner/sun50i-a64.dtsi
src/arm64/allwinner/sun50i-h6-pine-h64-model-b.dts
src/arm64/allwinner/sun50i-h6-pine-h64.dts
src/arm64/allwinner/sun50i-h6.dtsi
src/arm64/allwinner/sun50i-h616-cpu-opp.dtsi
src/arm64/allwinner/sun50i-h616.dtsi
src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
src/arm64/allwinner/sun50i-h700-anbernic-rg35xx-h.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-a4.dtsi
src/arm64/amlogic/amlogic-c3.dtsi
src/arm64/amlogic/meson-a1-ad402.dts
src/arm64/amlogic/meson-a1.dtsi
src/arm64/amlogic/meson-axg.dtsi
src/arm64/amlogic/meson-g12-common.dtsi
src/arm64/amlogic/meson-g12.dtsi
src/arm64/amlogic/meson-g12a-u200.dts
src/arm64/amlogic/meson-g12b-bananapi.dtsi
src/arm64/amlogic/meson-g12b-dreambox-one.dts [new file with mode: 0644]
src/arm64/amlogic/meson-g12b-dreambox-two.dts [new file with mode: 0644]
src/arm64/amlogic/meson-g12b-dreambox.dtsi [new file with mode: 0644]
src/arm64/amlogic/meson-g12b-odroid-n2.dtsi
src/arm64/amlogic/meson-g12b-radxa-zero2.dts
src/arm64/amlogic/meson-gxbb-odroidc2.dts
src/arm64/amlogic/meson-gxbb.dtsi
src/arm64/amlogic/meson-gxl-s905x-vero4k.dts [new file with mode: 0644]
src/arm64/amlogic/meson-gxl.dtsi
src/arm64/amlogic/meson-gxlx-s905l-p271.dts [new file with mode: 0644]
src/arm64/amlogic/meson-s4.dtsi
src/arm64/amlogic/meson-sm1.dtsi
src/arm64/apm/apm-merlin.dts
src/arm64/apm/apm-mustang.dts
src/arm64/arm/corstone1000-fvp.dts
src/arm64/arm/corstone1000.dtsi
src/arm64/arm/foundation-v8.dtsi
src/arm64/arm/fvp-base-revc.dts
src/arm64/arm/juno-base.dtsi
src/arm64/arm/juno-clocks.dtsi
src/arm64/arm/juno-motherboard.dtsi
src/arm64/arm/rtsm_ve-motherboard.dtsi
src/arm64/arm/vexpress-v2f-1xv7-ca53x2.dts
src/arm64/exynos/exynos850.dtsi
src/arm64/exynos/google/gs101-oriole.dts
src/arm64/exynos/google/gs101.dtsi
src/arm64/freescale/fsl-ls1012a.dtsi
src/arm64/freescale/fsl-ls1028a-rdb.dts
src/arm64/freescale/fsl-ls1028a.dtsi
src/arm64/freescale/fsl-ls1043a-qds.dts
src/arm64/freescale/fsl-ls1043a-rdb.dts
src/arm64/freescale/fsl-ls1043a.dtsi
src/arm64/freescale/fsl-ls1046a-qds.dts
src/arm64/freescale/fsl-ls1046a.dtsi
src/arm64/freescale/fsl-ls1088a-qds.dts
src/arm64/freescale/fsl-ls1088a.dtsi
src/arm64/freescale/fsl-ls2080a.dtsi
src/arm64/freescale/fsl-ls2088a.dtsi
src/arm64/freescale/fsl-ls208xa-qds.dtsi
src/arm64/freescale/fsl-ls208xa-rdb.dtsi
src/arm64/freescale/fsl-ls208xa.dtsi
src/arm64/freescale/fsl-lx2160a.dtsi
src/arm64/freescale/imx8-ss-audio.dtsi
src/arm64/freescale/imx8-ss-cm41.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8-ss-conn.dtsi
src/arm64/freescale/imx8dxl-evk.dts
src/arm64/freescale/imx8dxl-ss-adma.dtsi
src/arm64/freescale/imx8dxl-ss-conn.dtsi
src/arm64/freescale/imx8mm-evk.dtsi
src/arm64/freescale/imx8mm-iot-gateway.dts [new file with mode: 0644]
src/arm64/freescale/imx8mm-phygate-tauri-l-rs232-rs232.dtso [new file with mode: 0644]
src/arm64/freescale/imx8mm-phygate-tauri-l-rs232-rs485.dtso [new file with mode: 0644]
src/arm64/freescale/imx8mm-phygate-tauri-l-rs232-rts-cts.dtso [new file with mode: 0644]
src/arm64/freescale/imx8mm-phygate-tauri-l.dts
src/arm64/freescale/imx8mm-tqma8mqml.dtsi
src/arm64/freescale/imx8mm-ucm-som.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8mm-venice-gw700x.dtsi
src/arm64/freescale/imx8mm-venice-gw7901.dts
src/arm64/freescale/imx8mm-venice-gw7902.dts
src/arm64/freescale/imx8mm-venice-gw7903.dts
src/arm64/freescale/imx8mm-venice-gw7904.dts
src/arm64/freescale/imx8mm-verdin.dtsi
src/arm64/freescale/imx8mn-tqma8mqnl.dtsi
src/arm64/freescale/imx8mn-venice-gw7902.dts
src/arm64/freescale/imx8mp-beacon-kit.dts
src/arm64/freescale/imx8mp-beacon-som.dtsi
src/arm64/freescale/imx8mp-debix-model-a.dts
src/arm64/freescale/imx8mp-dhcom-pdk2.dts
src/arm64/freescale/imx8mp-dhcom-pdk3.dts
src/arm64/freescale/imx8mp-dhcom-som.dtsi
src/arm64/freescale/imx8mp-evk-mx8-dlvds-lcd1.dtso [new file with mode: 0644]
src/arm64/freescale/imx8mp-evk.dts
src/arm64/freescale/imx8mp-msc-sm2s-ep1.dts
src/arm64/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts [new file with mode: 0644]
src/arm64/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
src/arm64/freescale/imx8mp-tqma8mpql.dtsi
src/arm64/freescale/imx8mp-venice-gw702x.dtsi
src/arm64/freescale/imx8mp-venice-gw74xx.dts
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-nonwifi.dtsi
src/arm64/freescale/imx8mp-verdin-wifi.dtsi
src/arm64/freescale/imx8mp-verdin-yavia.dtsi
src/arm64/freescale/imx8mp-verdin.dtsi
src/arm64/freescale/imx8mp.dtsi
src/arm64/freescale/imx8mq-librem5.dtsi
src/arm64/freescale/imx8mq-tqma8mq.dtsi
src/arm64/freescale/imx8qm-mek.dts
src/arm64/freescale/imx8qm-ss-audio.dtsi [new file with mode: 0644]
src/arm64/freescale/imx8qm.dtsi
src/arm64/freescale/imx8qxp-mek.dts
src/arm64/freescale/imx93-11x11-evk.dts
src/arm64/freescale/imx93-9x9-qsb.dts [new file with mode: 0644]
src/arm64/freescale/imx93-tqma9352-mba93xxca.dts
src/arm64/freescale/imx93-tqma9352-mba93xxla.dts
src/arm64/freescale/imx93-tqma9352.dtsi
src/arm64/freescale/imx93.dtsi
src/arm64/freescale/imx95-19x19-evk.dts [new file with mode: 0644]
src/arm64/freescale/imx95-clock.h [new file with mode: 0644]
src/arm64/freescale/imx95-pinfunc.h [new file with mode: 0644]
src/arm64/freescale/imx95-power.h [new file with mode: 0644]
src/arm64/freescale/imx95.dtsi [new file with mode: 0644]
src/arm64/freescale/qoriq-fman3-0-10g-0.dtsi
src/arm64/freescale/qoriq-fman3-0-10g-1.dtsi
src/arm64/freescale/qoriq-fman3-0-1g-0.dtsi
src/arm64/freescale/qoriq-fman3-0-1g-1.dtsi
src/arm64/freescale/qoriq-fman3-0-1g-2.dtsi
src/arm64/freescale/qoriq-fman3-0-1g-3.dtsi
src/arm64/freescale/qoriq-fman3-0-1g-4.dtsi
src/arm64/freescale/qoriq-fman3-0-1g-5.dtsi
src/arm64/freescale/qoriq-fman3-0.dtsi
src/arm64/freescale/tqma8xx.dtsi
src/arm64/hisilicon/hi3660.dtsi
src/arm64/intel/socfpga_agilex_socdk.dts
src/arm64/intel/socfpga_n5x_socdk.dts
src/arm64/marvell/armada-3720-gl-mv1000.dts
src/arm64/marvell/cn9130-cf-base.dts [new file with mode: 0644]
src/arm64/marvell/cn9130-cf-pro.dts [new file with mode: 0644]
src/arm64/marvell/cn9130-cf.dtsi [new file with mode: 0644]
src/arm64/marvell/cn9130-sr-som.dtsi [new file with mode: 0644]
src/arm64/marvell/cn9131-cf-solidwan.dts [new file with mode: 0644]
src/arm64/marvell/cn9132-clearfog.dts [new file with mode: 0644]
src/arm64/marvell/cn9132-sr-cex7.dtsi [new file with mode: 0644]
src/arm64/mediatek/mt2712-evb.dts
src/arm64/mediatek/mt6795-sony-xperia-m5.dts
src/arm64/mediatek/mt7622-bananapi-bpi-r64.dts
src/arm64/mediatek/mt7622-rfb1.dts
src/arm64/mediatek/mt7981b-cudy-wr3000-v1.dts [new file with mode: 0644]
src/arm64/mediatek/mt7981b-openwrt-one.dts [new file with mode: 0644]
src/arm64/mediatek/mt7981b.dtsi
src/arm64/mediatek/mt7986a-bananapi-bpi-r3-emmc.dtso
src/arm64/mediatek/mt7986a-bananapi-bpi-r3-mini.dts [new file with mode: 0644]
src/arm64/mediatek/mt7986a-bananapi-bpi-r3-nand.dtso
src/arm64/mediatek/mt7986a-bananapi-bpi-r3-nor.dtso
src/arm64/mediatek/mt7986a-bananapi-bpi-r3-sd.dtso
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/mt8183-evb.dts
src/arm64/mediatek/mt8183-kukui-audio-da7219.dtsi
src/arm64/mediatek/mt8183-kukui-jacuzzi-cozmo.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-fennel-sku1.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-fennel-sku6.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-fennel-sku7.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-fennel14-sku2.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-fennel14.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-kappa.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-kenzo.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-makomo-sku0.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-makomo-sku1.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-pico6.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-willow-sku0.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi-willow-sku1.dts
src/arm64/mediatek/mt8183-kukui-jacuzzi.dtsi
src/arm64/mediatek/mt8183-kukui-kodama-sku32.dts
src/arm64/mediatek/mt8183-kukui.dtsi
src/arm64/mediatek/mt8183-pumpkin.dts
src/arm64/mediatek/mt8183.dtsi
src/arm64/mediatek/mt8186-corsola-voltorb-sku589824.dts [new file with mode: 0644]
src/arm64/mediatek/mt8186-corsola-voltorb-sku589825.dts [new file with mode: 0644]
src/arm64/mediatek/mt8186-corsola-voltorb.dtsi [new file with mode: 0644]
src/arm64/mediatek/mt8186-corsola.dtsi
src/arm64/mediatek/mt8188.dtsi
src/arm64/mediatek/mt8192-asurada-hayato-r1.dts
src/arm64/mediatek/mt8192-asurada-hayato-r5-sku2.dts
src/arm64/mediatek/mt8192-asurada-spherion-r0.dts
src/arm64/mediatek/mt8192-asurada-spherion-r4.dts
src/arm64/mediatek/mt8192-asurada.dtsi
src/arm64/mediatek/mt8192.dtsi
src/arm64/mediatek/mt8195-cherry-dojo-r1.dts [new file with mode: 0644]
src/arm64/mediatek/mt8195-cherry.dtsi
src/arm64/mediatek/mt8195-demo.dts
src/arm64/mediatek/mt8195-evb.dts
src/arm64/mediatek/mt8195.dtsi
src/arm64/mediatek/mt8365-evk.dts
src/arm64/mediatek/mt8365.dtsi
src/arm64/mediatek/mt8390-genio-700-evk.dts [new file with mode: 0644]
src/arm64/mediatek/mt8395-genio-1200-evk.dts
src/arm64/mediatek/mt8395-kontron-3-5-sbc-i1200.dts [new file with mode: 0644]
src/arm64/mediatek/mt8395-radxa-nio-12l.dts
src/arm64/microchip/sparx5_pcb134_board.dtsi
src/arm64/microchip/sparx5_pcb135_board.dtsi
src/arm64/nvidia/tegra234-p3768-0000+p3767-0000.dts
src/arm64/nvidia/tegra234-p3768-0000+p3767-0005.dts
src/arm64/nvidia/tegra234-p3768-0000+p3767.dtsi [moved from src/arm64/nvidia/tegra234-p3768-0000.dtsi with 90% similarity]
src/arm64/qcom/apq8016-schneider-hmibsc.dts [new file with mode: 0644]
src/arm64/qcom/ipq5018-tplink-archer-ax55-v1.dts [new file with mode: 0644]
src/arm64/qcom/ipq5018.dtsi
src/arm64/qcom/ipq5332.dtsi
src/arm64/qcom/ipq6018.dtsi
src/arm64/qcom/ipq8074.dtsi
src/arm64/qcom/ipq9574.dtsi
src/arm64/qcom/msm8216-samsung-fortuna3g.dts
src/arm64/qcom/msm8916-acer-a1-724.dts
src/arm64/qcom/msm8916-gplus-fl8005a.dts
src/arm64/qcom/msm8916-lg-c50.dts [new file with mode: 0644]
src/arm64/qcom/msm8916-lg-m216.dts [new file with mode: 0644]
src/arm64/qcom/msm8916-motorola-common.dtsi [new file with mode: 0644]
src/arm64/qcom/msm8916-motorola-harpia.dts [new file with mode: 0644]
src/arm64/qcom/msm8916-motorola-osprey.dts [new file with mode: 0644]
src/arm64/qcom/msm8916-motorola-surnia.dts [new file with mode: 0644]
src/arm64/qcom/msm8916-samsung-a2015-common.dtsi
src/arm64/qcom/msm8916-samsung-a3u-eur.dts
src/arm64/qcom/msm8916-samsung-a5u-eur.dts
src/arm64/qcom/msm8916-samsung-e5.dts
src/arm64/qcom/msm8916-samsung-e7.dts
src/arm64/qcom/msm8916-samsung-fortuna-common.dtsi
src/arm64/qcom/msm8916-samsung-gprimeltecan.dts
src/arm64/qcom/msm8916-samsung-grandmax.dts
src/arm64/qcom/msm8916-samsung-grandprimelte.dts
src/arm64/qcom/msm8916-samsung-rossa-common.dtsi
src/arm64/qcom/msm8916-samsung-rossa.dts
src/arm64/qcom/msm8916.dtsi
src/arm64/qcom/msm8939-samsung-a7.dts
src/arm64/qcom/msm8939.dtsi
src/arm64/qcom/msm8953-motorola-potter.dts
src/arm64/qcom/msm8953-xiaomi-daisy.dts
src/arm64/qcom/msm8953-xiaomi-mido.dts
src/arm64/qcom/msm8953-xiaomi-tissot.dts
src/arm64/qcom/msm8953-xiaomi-vince.dts
src/arm64/qcom/msm8953.dtsi
src/arm64/qcom/msm8956.dtsi
src/arm64/qcom/msm8976.dtsi
src/arm64/qcom/msm8994.dtsi
src/arm64/qcom/msm8996-xiaomi-common.dtsi
src/arm64/qcom/msm8996.dtsi
src/arm64/qcom/msm8998.dtsi
src/arm64/qcom/pm6125.dtsi
src/arm64/qcom/pm6150.dtsi
src/arm64/qcom/pm6150l.dtsi
src/arm64/qcom/pm6350.dtsi
src/arm64/qcom/pm660.dtsi
src/arm64/qcom/pm660l.dtsi
src/arm64/qcom/pm7250b.dtsi
src/arm64/qcom/pm7325.dtsi
src/arm64/qcom/pm7550ba.dtsi
src/arm64/qcom/pm8010.dtsi
src/arm64/qcom/pm8150.dtsi
src/arm64/qcom/pm8150b.dtsi
src/arm64/qcom/pm8150l.dtsi
src/arm64/qcom/pm8350.dtsi
src/arm64/qcom/pm8350b.dtsi
src/arm64/qcom/pm8350c.dtsi
src/arm64/qcom/pm8450.dtsi
src/arm64/qcom/pm8550.dtsi
src/arm64/qcom/pm8550b.dtsi
src/arm64/qcom/pm8550ve.dtsi
src/arm64/qcom/pm8550vs.dtsi
src/arm64/qcom/pm8916.dtsi
src/arm64/qcom/pm8953.dtsi
src/arm64/qcom/pm8994.dtsi
src/arm64/qcom/pm8998.dtsi
src/arm64/qcom/pmi632.dtsi
src/arm64/qcom/pmi8950.dtsi
src/arm64/qcom/pmm8155au_1.dtsi
src/arm64/qcom/pmm8155au_2.dtsi
src/arm64/qcom/pmr735a.dtsi
src/arm64/qcom/pmr735b.dtsi
src/arm64/qcom/pmr735d_a.dtsi
src/arm64/qcom/pmr735d_b.dtsi
src/arm64/qcom/pms405.dtsi
src/arm64/qcom/pmx75.dtsi
src/arm64/qcom/qcm2290.dtsi
src/arm64/qcom/qcm6490-fairphone-fp5.dts
src/arm64/qcom/qcm6490-idp.dts
src/arm64/qcom/qcm6490-shift-otter.dts [new file with mode: 0644]
src/arm64/qcom/qcs404.dtsi
src/arm64/qcom/qcs6490-rb3gen2.dts
src/arm64/qcom/qcs8550-aim300-aiot.dts [new file with mode: 0644]
src/arm64/qcom/qcs8550-aim300.dtsi [new file with mode: 0644]
src/arm64/qcom/qcs8550.dtsi [new file with mode: 0644]
src/arm64/qcom/qdu1000-idp.dts
src/arm64/qcom/qdu1000.dtsi
src/arm64/qcom/qrb2210-rb1.dts
src/arm64/qcom/qrb4210-rb2.dts
src/arm64/qcom/qrb5165-rb5.dts
src/arm64/qcom/qru1000-idp.dts
src/arm64/qcom/sa8155p.dtsi
src/arm64/qcom/sa8775p-pmics.dtsi
src/arm64/qcom/sa8775p-ride-r3.dts [new file with mode: 0644]
src/arm64/qcom/sa8775p-ride.dts
src/arm64/qcom/sa8775p-ride.dtsi [new file with mode: 0644]
src/arm64/qcom/sa8775p.dtsi
src/arm64/qcom/sc7180-trogdor-clamshell.dtsi [new file with mode: 0644]
src/arm64/qcom/sc7180-trogdor-coachz.dtsi
src/arm64/qcom/sc7180-trogdor-detachable.dtsi [new file with mode: 0644]
src/arm64/qcom/sc7180-trogdor-homestar.dtsi
src/arm64/qcom/sc7180-trogdor-kingoftown.dts
src/arm64/qcom/sc7180-trogdor-lazor-r1-kb.dts
src/arm64/qcom/sc7180-trogdor-lazor-r1-lte.dts
src/arm64/qcom/sc7180-trogdor-lazor-r10-kb.dts
src/arm64/qcom/sc7180-trogdor-lazor-r10-lte.dts
src/arm64/qcom/sc7180-trogdor-lazor-r3-kb.dts
src/arm64/qcom/sc7180-trogdor-lazor-r3-lte.dts
src/arm64/qcom/sc7180-trogdor-lazor-r9-kb.dts
src/arm64/qcom/sc7180-trogdor-lazor-r9-lte.dts
src/arm64/qcom/sc7180-trogdor-lazor.dtsi
src/arm64/qcom/sc7180-trogdor-pazquel.dtsi
src/arm64/qcom/sc7180-trogdor-pompom.dtsi
src/arm64/qcom/sc7180-trogdor-quackingstick.dtsi
src/arm64/qcom/sc7180-trogdor-r1.dts
src/arm64/qcom/sc7180-trogdor-wormdingler.dtsi
src/arm64/qcom/sc7180-trogdor.dtsi
src/arm64/qcom/sc7180.dtsi
src/arm64/qcom/sc7280-idp.dtsi
src/arm64/qcom/sc7280-qcard.dtsi
src/arm64/qcom/sc7280.dtsi
src/arm64/qcom/sc8180x-lenovo-flex-5g.dts
src/arm64/qcom/sc8180x-pmics.dtsi
src/arm64/qcom/sc8180x-primus.dts
src/arm64/qcom/sc8180x.dtsi
src/arm64/qcom/sc8280xp-crd.dts
src/arm64/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
src/arm64/qcom/sc8280xp-pmics.dtsi
src/arm64/qcom/sc8280xp.dtsi
src/arm64/qcom/sda660-inforce-ifc6560.dts
src/arm64/qcom/sdm450-lenovo-tbx605f.dts [new file with mode: 0644]
src/arm64/qcom/sdm450-motorola-ali.dts
src/arm64/qcom/sdm630.dtsi
src/arm64/qcom/sdm632-fairphone-fp3.dts
src/arm64/qcom/sdm632-motorola-ocean.dts
src/arm64/qcom/sdm670.dtsi
src/arm64/qcom/sdm845-mtp.dts
src/arm64/qcom/sdm845.dtsi
src/arm64/qcom/sdm850-lenovo-yoga-c630.dts
src/arm64/qcom/sdx75-idp.dts
src/arm64/qcom/sdx75.dtsi
src/arm64/qcom/sm4250-oneplus-billie2.dts
src/arm64/qcom/sm4450.dtsi
src/arm64/qcom/sm6115-fxtec-pro1x.dts
src/arm64/qcom/sm6115.dtsi
src/arm64/qcom/sm6115p-lenovo-j606f.dts
src/arm64/qcom/sm6125-sony-xperia-seine-pdx201.dts
src/arm64/qcom/sm6125-xiaomi-laurel-sprout.dts
src/arm64/qcom/sm6125.dtsi
src/arm64/qcom/sm6350-sony-xperia-lena-pdx213.dts
src/arm64/qcom/sm6350.dtsi
src/arm64/qcom/sm6375-sony-xperia-murray-pdx225.dts
src/arm64/qcom/sm6375.dtsi
src/arm64/qcom/sm7225-fairphone-fp4.dts
src/arm64/qcom/sm8150-hdk.dts
src/arm64/qcom/sm8150.dtsi
src/arm64/qcom/sm8250-mtp.dts
src/arm64/qcom/sm8250-sony-xperia-edo.dtsi
src/arm64/qcom/sm8250-xiaomi-elish-common.dtsi
src/arm64/qcom/sm8250.dtsi
src/arm64/qcom/sm8350-hdk.dts
src/arm64/qcom/sm8350.dtsi
src/arm64/qcom/sm8450-hdk.dts
src/arm64/qcom/sm8450-sony-xperia-nagara.dtsi
src/arm64/qcom/sm8450.dtsi
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 [new file with mode: 0644]
src/arm64/qcom/sm8550-sony-xperia-yodo-pdx234.dts
src/arm64/qcom/sm8550.dtsi
src/arm64/qcom/sm8650-hdk-display-card.dtso [new file with mode: 0644]
src/arm64/qcom/sm8650-hdk.dts [new file with mode: 0644]
src/arm64/qcom/sm8650-mtp.dts
src/arm64/qcom/sm8650-qrd.dts
src/arm64/qcom/sm8650.dtsi
src/arm64/qcom/x1e80100-asus-vivobook-s15.dts [new file with mode: 0644]
src/arm64/qcom/x1e80100-crd.dts
src/arm64/qcom/x1e80100-lenovo-yoga-slim7x.dts [new file with mode: 0644]
src/arm64/qcom/x1e80100-pmics.dtsi
src/arm64/qcom/x1e80100-qcp.dts
src/arm64/qcom/x1e80100.dtsi
src/arm64/renesas/condor-common.dtsi
src/arm64/renesas/r8a774a1.dtsi
src/arm64/renesas/r8a774b1.dtsi
src/arm64/renesas/r8a774c0.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.dtsi
src/arm64/renesas/r8a77980-condor.dts
src/arm64/renesas/r8a77980.dtsi
src/arm64/renesas/r8a77990.dtsi
src/arm64/renesas/r8a77995.dtsi
src/arm64/renesas/r8a779a0.dtsi
src/arm64/renesas/r8a779f0-spider-cpu.dtsi
src/arm64/renesas/r8a779f0.dtsi
src/arm64/renesas/r8a779f4-s4sk.dts
src/arm64/renesas/r8a779g0-white-hawk-ard-audio-da7212.dtso
src/arm64/renesas/r8a779g0.dtsi
src/arm64/renesas/r8a779h0-gray-hawk-single.dts
src/arm64/renesas/r8a779h0.dtsi
src/arm64/renesas/r9a07g043.dtsi
src/arm64/renesas/r9a07g043u.dtsi
src/arm64/renesas/r9a07g044.dtsi
src/arm64/renesas/r9a07g054.dtsi
src/arm64/renesas/r9a08g045.dtsi
src/arm64/renesas/r9a09g011.dtsi
src/arm64/renesas/rz-smarc-common.dtsi
src/arm64/renesas/white-hawk-cpu-common.dtsi
src/arm64/renesas/white-hawk-ethernet.dtsi
src/arm64/rockchip/rk3308-rock-pi-s.dts
src/arm64/rockchip/rk3308-rock-s0.dts [new file with mode: 0644]
src/arm64/rockchip/rk3308.dtsi
src/arm64/rockchip/rk3328-rock-pi-e.dts
src/arm64/rockchip/rk3328-rock64.dts
src/arm64/rockchip/rk3328.dtsi
src/arm64/rockchip/rk3368-lba3368.dts [new file with mode: 0644]
src/arm64/rockchip/rk3399-pinephone-pro.dts
src/arm64/rockchip/rk3399-puma.dtsi
src/arm64/rockchip/rk3399pro.dtsi [deleted file]
src/arm64/rockchip/rk3566-orangepi-3b-v1.1.dts [new file with mode: 0644]
src/arm64/rockchip/rk3566-orangepi-3b-v2.1.dts [new file with mode: 0644]
src/arm64/rockchip/rk3566-orangepi-3b.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3566-pinenote.dtsi
src/arm64/rockchip/rk3566-quartz64-a.dts
src/arm64/rockchip/rk3566-quartz64-b.dts
src/arm64/rockchip/rk3566-radxa-zero-3.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3566-radxa-zero-3e.dts [new file with mode: 0644]
src/arm64/rockchip/rk3566-radxa-zero-3w.dts [new file with mode: 0644]
src/arm64/rockchip/rk3566-roc-pc.dts
src/arm64/rockchip/rk3566-rock-3c.dts
src/arm64/rockchip/rk3566-soquartz.dtsi
src/arm64/rockchip/rk3568-evb1-v10.dts
src/arm64/rockchip/rk3568-fastrhino-r66s.dts
src/arm64/rockchip/rk3568-fastrhino-r66s.dtsi
src/arm64/rockchip/rk3568-fastrhino-r68s.dts
src/arm64/rockchip/rk3568-rock-3a.dts
src/arm64/rockchip/rk3568-rock-3b.dts [new file with mode: 0644]
src/arm64/rockchip/rk356x.dtsi
src/arm64/rockchip/rk3588-armsom-sige7.dts
src/arm64/rockchip/rk3588-base-pinctrl.dtsi [moved from src/arm64/rockchip/rk3588s-pinctrl.dtsi with 100% similarity]
src/arm64/rockchip/rk3588-base.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3588-edgeble-neu6a-common.dtsi
src/arm64/rockchip/rk3588-evb1-v10.dts
src/arm64/rockchip/rk3588-extra-pinctrl.dtsi [moved from src/arm64/rockchip/rk3588-pinctrl.dtsi with 100% similarity]
src/arm64/rockchip/rk3588-extra.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3588-friendlyelec-cm3588-nas.dts [new file with mode: 0644]
src/arm64/rockchip/rk3588-friendlyelec-cm3588.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3588-ok3588-c.dts
src/arm64/rockchip/rk3588-opp.dtsi [new file with mode: 0644]
src/arm64/rockchip/rk3588-quartzpro64.dts
src/arm64/rockchip/rk3588-rock-5-itx.dts [new file with mode: 0644]
src/arm64/rockchip/rk3588-rock-5b-pcie-ep.dtso [new file with mode: 0644]
src/arm64/rockchip/rk3588-rock-5b-pcie-srns.dtso [new file with mode: 0644]
src/arm64/rockchip/rk3588-rock-5b.dts
src/arm64/rockchip/rk3588-toybrick-x0.dts
src/arm64/rockchip/rk3588-turing-rk1.dtsi
src/arm64/rockchip/rk3588.dtsi
src/arm64/rockchip/rk3588j.dtsi
src/arm64/rockchip/rk3588s-rock-5a.dts
src/arm64/rockchip/rk3588s.dtsi
src/arm64/sprd/ums512.dtsi
src/arm64/sprd/ums9620.dtsi
src/arm64/st/stm32mp25-pinctrl.dtsi
src/arm64/st/stm32mp251.dtsi
src/arm64/st/stm32mp253.dtsi
src/arm64/st/stm32mp257f-ev1.dts
src/arm64/ti/k3-am62-lp-sk-nand.dtso [new file with mode: 0644]
src/arm64/ti/k3-am62-lp-sk.dts
src/arm64/ti/k3-am62-main.dtsi
src/arm64/ti/k3-am62-verdin-dahlia.dtsi
src/arm64/ti/k3-am62-verdin-dev.dtsi
src/arm64/ti/k3-am62-verdin.dtsi
src/arm64/ti/k3-am62-wakeup.dtsi
src/arm64/ti/k3-am62.dtsi
src/arm64/ti/k3-am625-beagleplay.dts
src/arm64/ti/k3-am625-phyboard-lyra-1-4-ghz-opp.dtso [new file with mode: 0644]
src/arm64/ti/k3-am625-phyboard-lyra-rdk.dts
src/arm64/ti/k3-am62a-main.dtsi
src/arm64/ti/k3-am62a-phycore-som.dtsi [new file with mode: 0644]
src/arm64/ti/k3-am62a-wakeup.dtsi
src/arm64/ti/k3-am62a7-phyboard-lyra-rdk.dts [new file with mode: 0644]
src/arm64/ti/k3-am62a7-sk.dts
src/arm64/ti/k3-am62p-j722s-common-main.dtsi [new file with mode: 0644]
src/arm64/ti/k3-am62p-j722s-common-mcu.dtsi [moved from src/arm64/ti/k3-am62p-mcu.dtsi with 93% similarity]
src/arm64/ti/k3-am62p-j722s-common-thermal.dtsi [moved from src/arm64/ti/k3-am62p-thermal.dtsi with 100% similarity]
src/arm64/ti/k3-am62p-j722s-common-wakeup.dtsi [moved from src/arm64/ti/k3-am62p-wakeup.dtsi with 93% similarity]
src/arm64/ti/k3-am62p-main.dtsi
src/arm64/ti/k3-am62p.dtsi
src/arm64/ti/k3-am62p5-sk.dts
src/arm64/ti/k3-am62x-phyboard-lyra.dtsi [new file with mode: 0644]
src/arm64/ti/k3-am62x-sk-common.dtsi
src/arm64/ti/k3-am64-main.dtsi
src/arm64/ti/k3-am64-phycore-som.dtsi
src/arm64/ti/k3-am64-tqma64xxl-mbax4xxl-sdcard.dtso
src/arm64/ti/k3-am64-tqma64xxl-mbax4xxl-wlan.dtso
src/arm64/ti/k3-am642-evm-icssg1-dualemac-mii.dtso [new file with mode: 0644]
src/arm64/ti/k3-am642-evm-nand.dtso [new file with mode: 0644]
src/arm64/ti/k3-am642-evm.dts
src/arm64/ti/k3-am642-hummingboard-t.dts
src/arm64/ti/k3-am642-phyboard-electra-pcie-usb2.dtso [new file with mode: 0644]
src/arm64/ti/k3-am642-phyboard-electra-rdk.dts
src/arm64/ti/k3-am642-sk.dts
src/arm64/ti/k3-am642-tqma64xxl-mbax4xxl.dts
src/arm64/ti/k3-am642-tqma64xxl.dtsi
src/arm64/ti/k3-am65-iot2050-common-pg1.dtsi
src/arm64/ti/k3-am65-main.dtsi
src/arm64/ti/k3-am65-mcu.dtsi
src/arm64/ti/k3-am654-base-board.dts
src/arm64/ti/k3-am68-sk-base-board.dts
src/arm64/ti/k3-am68-sk-som.dtsi
src/arm64/ti/k3-am69-sk.dts
src/arm64/ti/k3-am6xx-phycore-disable-eth-phy.dtso [new file with mode: 0644]
src/arm64/ti/k3-am6xx-phycore-disable-rtc.dtso [new file with mode: 0644]
src/arm64/ti/k3-am6xx-phycore-disable-spi-nor.dtso [new file with mode: 0644]
src/arm64/ti/k3-am6xx-phycore-qspi-nor.dtso [new file with mode: 0644]
src/arm64/ti/k3-j7200-mcu-wakeup.dtsi
src/arm64/ti/k3-j7200-som-p0.dtsi
src/arm64/ti/k3-j721e-common-proc-board-infotainment.dtso [new file with mode: 0644]
src/arm64/ti/k3-j721e-mcu-wakeup.dtsi
src/arm64/ti/k3-j721e-sk.dts
src/arm64/ti/k3-j721e-som-p0.dtsi
src/arm64/ti/k3-j721s2-mcu-wakeup.dtsi
src/arm64/ti/k3-j721s2-som-p0.dtsi
src/arm64/ti/k3-j722s-evm.dts
src/arm64/ti/k3-j722s-main.dtsi [new file with mode: 0644]
src/arm64/ti/k3-j722s.dtsi
src/arm64/ti/k3-j784s4-evm-pcie0-pcie1-ep.dtso [new file with mode: 0644]
src/arm64/ti/k3-j784s4-evm-quad-port-eth-exp1.dtso [new file with mode: 0644]
src/arm64/ti/k3-j784s4-evm-usxgmii-exp1-exp2.dtso [new file with mode: 0644]
src/arm64/ti/k3-j784s4-evm.dts
src/arm64/ti/k3-j784s4-main.dtsi
src/arm64/ti/k3-j784s4-mcu-wakeup.dtsi
src/arm64/ti/k3-j784s4.dtsi
src/arm64/ti/k3-pinctrl.h
src/arm64/ti/k3-serdes.h
src/arm64/xilinx/zynqmp-clk-ccf.dtsi
src/arm64/xilinx/zynqmp-sck-kv-g-revA.dtso
src/arm64/xilinx/zynqmp-sck-kv-g-revB.dtso
src/arm64/xilinx/zynqmp-sm-k26-revA.dts
src/arm64/xilinx/zynqmp-smk-k26-revA.dts
src/arm64/xilinx/zynqmp-zcu102-rev1.0.dts
src/arm64/xilinx/zynqmp.dtsi
src/mips/loongson/loongson64-2k1000.dtsi
src/mips/loongson/loongson64g_4core_ls7a.dts
src/mips/mobileye/eyeq5-clocks.dtsi [moved from src/mips/mobileye/eyeq5-fixed-clocks.dtsi with 88% similarity]
src/mips/mobileye/eyeq5-pins.dtsi [new file with mode: 0644]
src/mips/mobileye/eyeq5.dtsi
src/mips/mobileye/eyeq6h-epm6.dts [new file with mode: 0644]
src/mips/mobileye/eyeq6h-fixed-clocks.dtsi [new file with mode: 0644]
src/mips/mobileye/eyeq6h-pins.dtsi [new file with mode: 0644]
src/mips/mobileye/eyeq6h.dtsi [new file with mode: 0644]
src/mips/realtek/cameo-rtl9302c-2x-rtl8224-2xge.dts [new file with mode: 0644]
src/mips/realtek/rtl838x.dtsi
src/mips/realtek/rtl83xx.dtsi
src/mips/realtek/rtl930x.dtsi [new file with mode: 0644]
src/powerpc/acadia.dts [deleted file]
src/powerpc/haleakala.dts [deleted file]
src/powerpc/hotfoot.dts [deleted file]
src/powerpc/kilauea.dts [deleted file]
src/powerpc/klondike.dts [deleted file]
src/powerpc/makalu.dts [deleted file]
src/powerpc/obs600.dts [deleted file]
src/riscv/allwinner/sun20i-d1-clockworkpi-v3.14.dts [new file with mode: 0644]
src/riscv/allwinner/sun20i-d1-devterm-v3.14.dts [new file with mode: 0644]
src/riscv/allwinner/sunxi-d1s-t113.dtsi
src/riscv/microchip/mpfs-beaglev-fire-fabric.dtsi [new file with mode: 0644]
src/riscv/microchip/mpfs-beaglev-fire.dts [new file with mode: 0644]
src/riscv/sophgo/sg2042-milkv-pioneer.dts
src/riscv/sophgo/sg2042.dtsi
src/riscv/starfive/jh7110-common.dtsi
src/riscv/starfive/jh7110-milkv-mars.dts
src/riscv/starfive/jh7110-pine64-star64.dts [new file with mode: 0644]
src/riscv/starfive/jh7110-starfive-visionfive-2.dtsi
src/riscv/starfive/jh7110.dtsi
src/riscv/thead/th1520.dtsi

index 3292c669ee11d5e143408206bec20151857f4bf8..7c38c08dbf3fa583d2e9a9164ff2163d1481f00a 100644 (file)
@@ -22,6 +22,10 @@ properties:
           - enum:
               - airoha,en7523-evb
           - const: airoha,en7523
+      - items:
+          - enum:
+              - airoha,en7581-evb
+          - const: airoha,en7581
 
 additionalProperties: true
 
index a374b98080feac99f0016f5a93eb3d26224002f0..0647851ae1f55a27bfb148252532bcf15ca905bf 100644 (file)
@@ -91,6 +91,7 @@ properties:
               - libretech,aml-s905x-cc
               - libretech,aml-s905x-cc-v2
               - nexbox,a95x
+              - osmc,vero4k
           - const: amlogic,s905x
           - const: amlogic,meson-gxl
 
@@ -107,6 +108,13 @@ properties:
           - const: amlogic,s905d
           - const: amlogic,meson-gxl
 
+      - description: Boards with the Amlogic Meson GXLX S905L SoC
+        items:
+          - enum:
+              - amlogic,p271
+          - const: amlogic,s905l
+          - const: amlogic,meson-gxlx
+
       - description: Boards with the Amlogic Meson GXM S912 SoC
         items:
           - enum:
@@ -169,6 +177,8 @@ properties:
               - azw,gtking
               - azw,gtking-pro
               - bananapi,bpi-m2s
+              - dream,dreambox-one
+              - dream,dreambox-two
               - hardkernel,odroid-go-ultra
               - hardkernel,odroid-n2
               - hardkernel,odroid-n2l
diff --git a/Bindings/arm/amlogic/analog-top.txt b/Bindings/arm/amlogic/analog-top.txt
deleted file mode 100644 (file)
index 101dc21..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-Amlogic Meson8 and Meson8b "analog top" registers:
---------------------------------------------------
-
-The analog top registers contain information about the so-called
-"metal revision" (which encodes the "minor version") of the SoC.
-
-Required properties:
-- reg: the register range of the analog top registers
-- compatible: depending on the SoC this should be one of:
-               - "amlogic,meson8-analog-top"
-               - "amlogic,meson8b-analog-top"
-               along with "syscon"
-
-
-Example:
-
-       analog_top: analog-top@81a8 {
-               compatible = "amlogic,meson8-analog-top", "syscon";
-               reg = <0x81a8 0x14>;
-       };
diff --git a/Bindings/arm/amlogic/assist.txt b/Bindings/arm/amlogic/assist.txt
deleted file mode 100644 (file)
index 7656812..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Amlogic Meson6/Meson8/Meson8b assist registers:
------------------------------------------------
-
-The assist registers contain basic information about the SoC,
-for example the encoded SoC part number.
-
-Required properties:
-- reg: the register range of the assist registers
-- compatible: should be "amlogic,meson-mx-assist" along with "syscon"
-
-
-Example:
-
-       assist: assist@7c00 {
-               compatible = "amlogic,meson-mx-assist", "syscon";
-               reg = <0x7c00 0x200>;
-       };
diff --git a/Bindings/arm/amlogic/bootrom.txt b/Bindings/arm/amlogic/bootrom.txt
deleted file mode 100644 (file)
index 407e27f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Amlogic Meson6/Meson8/Meson8b bootrom:
---------------------------------------
-
-The bootrom register area can be used to access SoC specific
-information, such as the "misc version".
-
-Required properties:
-- reg: the register range of the bootrom registers
-- compatible: should be "amlogic,meson-mx-bootrom" along with "syscon"
-
-
-Example:
-
-       bootrom: bootrom@d9040000 {
-               compatible = "amlogic,meson-mx-bootrom", "syscon";
-               reg = <0xd9040000 0x10000>;
-       };
diff --git a/Bindings/arm/amlogic/pmu.txt b/Bindings/arm/amlogic/pmu.txt
deleted file mode 100644 (file)
index 72f8d08..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-Amlogic Meson8 and Meson8b power-management-unit:
--------------------------------------------------
-
-The pmu is used to turn off and on different power domains of the SoCs
-This includes the power to the CPU cores.
-
-Required node properties:
-- compatible value : depending on the SoC this should be one of:
-                       "amlogic,meson8-pmu"
-                       "amlogic,meson8b-pmu"
-- reg : physical base address and the size of the registers window
-
-Example:
-
-       pmu@c81000e4 {
-               compatible = "amlogic,meson8b-pmu", "syscon";
-               reg = <0xc81000e0 0x18>;
-       };
index c960c8e0a9a59193dc288dd0b778cce633bf43de..08b89b62c505b94fc8d099b34c8c9bfe7946d87e 100644 (file)
@@ -30,7 +30,7 @@ description: |
 maintainers:
   - Mike Leach <mike.leach@linaro.org>
   - Suzuki K Poulose <suzuki.poulose@arm.com>
-  - James Clark <james.clark@arm.com>
+  - James Clark <james.clark@linaro.org>
   - Mao Jinlong <quic_jinlmao@quicinc.com>
   - Hao Zhang <quic_hazha@quicinc.com>
 
index 6745b4cc8f1caaa98bf4d4c722dbb0c8d46df6b3..d50a60368e279a3ec52a77635851ca11d2ac5582 100644 (file)
@@ -29,7 +29,7 @@ description: |
 maintainers:
   - Mike Leach <mike.leach@linaro.org>
   - Suzuki K Poulose <suzuki.poulose@arm.com>
-  - James Clark <james.clark@arm.com>
+  - James Clark <james.clark@linaro.org>
   - Mao Jinlong <quic_jinlmao@quicinc.com>
   - Hao Zhang <quic_hazha@quicinc.com>
 
diff --git a/Bindings/arm/arm,juno-fpga-apb-regs.yaml b/Bindings/arm/arm,juno-fpga-apb-regs.yaml
new file mode 100644 (file)
index 0000000..ce5f2e1
--- /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/arm/arm,juno-fpga-apb-regs.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ARM Juno FPGA APB Registers
+
+maintainers:
+  - Sudeep Holla <sudeep.holla@arm.com>
+
+properties:
+  compatible:
+    items:
+      - const: arm,juno-fpga-apb-regs
+      - const: syscon
+      - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  ranges: true
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+patternProperties:
+  "^led@[0-9a-f]+,[0-9a-f]$":
+    $ref: /schemas/leds/register-bit-led.yaml#
+
+required:
+  - compatible
+  - reg
+  - ranges
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    syscon@10000 {
+        compatible = "arm,juno-fpga-apb-regs", "syscon", "simple-mfd";
+        reg = <0x010000 0x1000>;
+        ranges = <0x0 0x10000 0x1000>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        led@8,0 {
+            compatible = "register-bit-led";
+            reg = <0x08 0x04>;
+            offset = <0x08>;
+            mask = <0x01>;
+            label = "vexpress:0";
+            linux,default-trigger = "heartbeat";
+            default-state = "on";
+        };
+    };
index 67a66bf7489579a9be9ae457c161542e6e59ac06..7374beb5a6132100929c97345a8806314b40864a 100644 (file)
@@ -41,35 +41,6 @@ Examples:
                reg = <0xffffe800 0x200>;
        };
 
-RAMC PHY Controller required properties:
-- compatible: Should be "microchip,sama7g5-ddr3phy", "syscon"
-- reg: Should contain registers location and length
-
-Example:
-
-       ddr3phy: ddr3phy@e3804000 {
-               compatible = "microchip,sama7g5-ddr3phy", "syscon";
-               reg = <0xe3804000 0x1000>;
-};
-
-Special Function Registers (SFR)
-
-Special Function Registers (SFR) manage specific aspects of the integrated
-memory, bridge implementations, processor and other functionality not controlled
-elsewhere.
-
-required properties:
-- compatible: Should be "atmel,<chip>-sfr", "syscon" or
-       "atmel,<chip>-sfrbu", "syscon"
-  <chip> can be "sama5d3", "sama5d4" or "sama5d2".
-  It also can be "microchip,sam9x60-sfr", "syscon".
-- reg: Should contain registers location and length
-
-       sfr@f0038000 {
-               compatible = "atmel,sama5d3-sfr", "syscon";
-               reg = <0xf0038000 0x60>;
-       };
-
 Security Module (SECUMOD)
 
 The Security Module macrocell provides all necessary secure functions to avoid
index ae345e1c8d2b8f514865f70374cada6e4b868654..ebd33a88776fa7aa98c85fd2c5144211deb02103 100644 (file)
@@ -7,22 +7,6 @@ ARTPEC-6 ARM SoC
 Required root node properties:
 - compatible = "axis,artpec6";
 
-ARTPEC-6 System Controller
---------------------------
-
-The ARTPEC-6 has a system controller with mixed functions controlling DMA, PCIe
-and resets.
-
-Required properties:
-- compatible: "axis,artpec6-syscon", "syscon"
-- reg: Address and length of the register bank.
-
-Example:
-       syscon {
-               compatible = "axis,artpec6-syscon", "syscon";
-               reg = <0xf8000000 0x48>;
-       };
-
 ARTPEC-6 Development board:
 ---------------------------
 Required root node properties:
index 162a39dab218237ae7222650e5c279eaa6da0261..e4ff71f006b8c87799e3f2e1f1629676859517f4 100644 (file)
@@ -23,6 +23,12 @@ properties:
               - raspberrypi,4-model-b
           - const: brcm,bcm2711
 
+      - description: BCM2712 based Boards
+        items:
+          - enum:
+              - raspberrypi,5-model-b
+          - const: brcm,bcm2712
+
       - description: BCM2835 based Boards
         items:
           - enum:
index 35e5afb6d9ad5132fa8192cb60863cb0f0667cfb..cc7b1402a31fc9bb7f1dc7e55a308fc8828fabe9 100644 (file)
@@ -27,16 +27,6 @@ Properties:
 - reg : Offset and length of the register set for the device
 
 
-* Alpine System-Fabric Service Registers
-
-The System-Fabric Service Registers allow various operation on CPU and
-system fabric, like powering CPUs off.
-
-Properties:
-- compatible : Should contain "al,alpine-sysfabric-service" and "syscon".
-- reg : Offset and length of the register set for the device
-
-
 Example:
 
 cpus {
index cc5a21b47e26a7fd09cd5a504f2e909fc396d3da..f308ff6c3532e207264cf86441bc99800f411602 100644 (file)
@@ -147,6 +147,7 @@ properties:
       - arm,cortex-a710
       - arm,cortex-a715
       - arm,cortex-a720
+      - arm,cortex-a725
       - arm,cortex-m0
       - arm,cortex-m0+
       - arm,cortex-m1
@@ -161,10 +162,15 @@ properties:
       - arm,cortex-x2
       - arm,cortex-x3
       - arm,cortex-x4
+      - arm,cortex-x925
       - arm,neoverse-e1
       - arm,neoverse-n1
       - arm,neoverse-n2
+      - arm,neoverse-n3
       - arm,neoverse-v1
+      - arm,neoverse-v2
+      - arm,neoverse-v3
+      - arm,neoverse-v3ae
       - brcm,brahma-b15
       - brcm,brahma-b53
       - brcm,vulcan
index 526f508cb98d0ddc800afb861aad55ca819eaea8..bd39cf107f3e1668ddc0ec94b0b43d5af658dbbd 100644 (file)
@@ -7,7 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale i.MX7ULP System Integration Module
 
 maintainers:
-  - Anson Huang <anson.huang@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+  - Fabio Estevam <festevam@gmail.com>
 
 description: |
   The system integration module (SIM) provides system control and chip configuration
diff --git a/Bindings/arm/freescale/fsl,vf610-mscm-cpucfg.txt b/Bindings/arm/freescale/fsl,vf610-mscm-cpucfg.txt
deleted file mode 100644 (file)
index 44aa3c4..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-Freescale Vybrid Miscellaneous System Control - CPU Configuration
-
-The MSCM IP contains multiple sub modules, this binding describes the first
-block of registers which contains CPU configuration information.
-
-Required properties:
-- compatible:  "fsl,vf610-mscm-cpucfg", "syscon"
-- reg:         the register range of the MSCM CPU configuration registers
-
-Example:
-       mscm_cpucfg: cpucfg@40001000 {
-               compatible = "fsl,vf610-mscm-cpucfg", "syscon";
-               reg = <0x40001000 0x800>;
-       }
index 6d185d09cb6ae8e5893221fac3c058292ade86b8..80747d79418a00224efa74c3fe74c7fcf1439dbc 100644 (file)
@@ -8,7 +8,6 @@ title: Freescale i.MX Platforms
 
 maintainers:
   - Shawn Guo <shawnguo@kernel.org>
-  - Li Yang <leoyang.li@nxp.com>
 
 properties:
   $nodename:
@@ -363,6 +362,12 @@ properties:
           - const: gw,ventana
           - const: fsl,imx6q
 
+      - description: i.MX6Q Kontron SMARC-sAMX6i on SMARC Eval Carrier 2.0
+        items:
+          - const: kontron,imx6q-samx6i-ads2
+          - const: kontron,imx6q-samx6i
+          - const: fsl,imx6q
+
       - description: i.MX6Q PHYTEC phyBOARD-Mira
         items:
           - enum:
@@ -544,6 +549,12 @@ properties:
           - const: gw,ventana
           - const: fsl,imx6dl
 
+      - description: i.MX6DL Kontron SMARC-sAMX6i on SMARC Eval Carrier 2.0
+        items:
+          - const: kontron,imx6dl-samx6i-ads2
+          - const: kontron,imx6dl-samx6i
+          - const: fsl,imx6dl
+
       - description: i.MX6DL PHYTEC phyBOARD-Mira
         items:
           - enum:
@@ -946,6 +957,13 @@ properties:
               - prt,prt8mm                # i.MX8MM Protonic PRT8MM Board
           - const: fsl,imx8mm
 
+      - description: Compulab i.MX8MM UCM SoM based boards
+        items:
+          - enum:
+              - compulab,imx8mm-iot-gateway     # i.MX8MM Compulab IoT-Gateway
+          - const: compulab,imx8mm-ucm-som      # i.MX8MM Compulab UCM SoM
+          - const: fsl,imx8mm
+
       - description: Emtop i.MX8MM based Boards
         items:
           - const: ees,imx8mm-emtop-baseboard      # i.MX8MM Emtop SoM on i.MX8M Mini Baseboard V1
@@ -1145,8 +1163,9 @@ properties:
           version as an industrial computing device.
         items:
           - enum:
-              - tq,imx8mp-tqma8mpql-mba8mpxl # TQ-Systems GmbH i.MX8MP TQMa8MPQL SOM on MBa8MPxL
-          - const: tq,imx8mp-tqma8mpql       # TQ-Systems GmbH i.MX8MP TQMa8MPQL SOM
+              - tq,imx8mp-tqma8mpql-mba8mpxl      # TQ-Systems GmbH i.MX8MP TQMa8MPQL SOM on MBa8MPxL
+              - tq,imx8mp-tqma8mpql-mba8mp-ras314 # TQ-Systems GmbH i.MX8MP TQMa8MPQL SOM on MBa8MP-RAS314
+          - const: tq,imx8mp-tqma8mpql            # TQ-Systems GmbH i.MX8MP TQMa8MPQL SOM
           - const: fsl,imx8mp
 
       - description: i.MX8MQ based Boards
@@ -1272,9 +1291,16 @@ properties:
       - description: i.MX93 based Boards
         items:
           - enum:
+              - fsl,imx93-9x9-qsb         # i.MX93 9x9 QSB Board
               - fsl,imx93-11x11-evk       # i.MX93 11x11 EVK Board
           - const: fsl,imx93
 
+      - description: i.MX95 based Boards
+        items:
+          - enum:
+              - fsl,imx95-19x19-evk       # i.MX95 19x19 EVK Board
+          - const: fsl,imx95
+
       - description: i.MXRT1050 based Boards
         items:
           - enum:
index 7f06b10802449126990a0febd01037e2e03300d7..25a2b42105e541cb3c8ad12a0dfec1af038fa907 100644 (file)
@@ -20,7 +20,7 @@ description: |
   initialized early into boot process and provides services to Operating Systems
   on multiple processors including ones running Linux.
 
-  See http://processors.wiki.ti.com/index.php/TISCI for protocol definition.
+  See https://software-dl.ti.com/tisci/esd/latest/index.html for protocol definition.
 
   The TI-SCI node describes the Texas Instrument's System Controller entity node.
   This parent node may optionally have additional children nodes which describe
index 16d2e132d3d1bf2a61bd46ee7db7673b9e0747fb..538d91be885788f371155b63800f6ba422821fe1 100644 (file)
@@ -82,4 +82,22 @@ properties:
           - const: marvell,armada-ap807-quad
           - const: marvell,armada-ap807
 
+      - description:
+          SolidRun CN9130 SoM based single-board computers
+        items:
+          - enum:
+              - solidrun,cn9130-clearfog-base
+              - solidrun,cn9130-clearfog-pro
+              - solidrun,cn9131-solidwan
+          - const: solidrun,cn9130-sr-som
+          - const: marvell,cn9130
+
+      - description:
+          SolidRun CN9132 COM-Express Type 7 based single-board computers
+        items:
+          - enum:
+              - solidrun,cn9132-clearfog
+          - const: solidrun,cn9132-sr-cex7
+          - const: marvell,cn9130
+
 additionalProperties: true
index aaaf64c56e448d87ad353724ac0a0ed07c910858..e10e8525eabdd2eee393574448847220fc3fe010 100644 (file)
@@ -5,18 +5,3 @@ Boards with a Marvell Dove SoC shall have the following properties:
 
 Required root node property:
 - compatible: must contain "marvell,dove";
-
-* Global Configuration registers
-
-Global Configuration registers of Dove SoC are shared by a syscon node.
-
-Required properties:
-- compatible: must contain "marvell,dove-global-config" and "syscon".
-- reg: base address and size of the Global Configuration registers.
-
-Example:
-
-gconf: global-config@e802c {
-       compatible = "marvell,dove-global-config", "syscon";
-       reg = <0xe802c 0x14>;
-};
index 09f9ffd3ff7b2c5f357bb87ec4d46a4a671b9cde..1d4bb50fcd8d9aadb7b77e144a474b79da005056 100644 (file)
@@ -85,12 +85,15 @@ properties:
           - const: mediatek,mt7629
       - items:
           - enum:
+              - cudy,wr3000-v1
+              - openwrt,one
               - xiaomi,ax3000t
           - const: mediatek,mt7981b
       - items:
           - enum:
               - acelink,ew-7886cax
               - bananapi,bpi-r3
+              - bananapi,bpi-r3mini
               - mediatek,mt7986a-rfb
           - const: mediatek,mt7986a
       - items:
@@ -293,6 +296,13 @@ properties:
           - const: google,tentacruel-sku327683
           - const: google,tentacruel
           - const: mediatek,mt8186
+      - description: Google Voltorb (Acer Chromebook 311 C723/C732T)
+        items:
+          - enum:
+              - google,voltorb-sku589824
+              - google,voltorb-sku589825
+          - const: google,voltorb
+          - const: mediatek,mt8186
       - items:
           - enum:
               - mediatek,mt8186-evb
@@ -342,6 +352,14 @@ properties:
           - const: google,tomato-rev3
           - const: google,tomato
           - const: mediatek,mt8195
+      - description: HP Dojo sku1, 3, 5, 7 (HP Chromebook x360 13b-ca0002sa)
+        items:
+          - const: google,dojo-sku7
+          - const: google,dojo-sku5
+          - const: google,dojo-sku3
+          - const: google,dojo-sku1
+          - const: google,dojo
+          - const: mediatek,mt8195
       - items:
           - enum:
               - mediatek,mt8195-demo
@@ -353,6 +371,12 @@ properties:
           - const: mediatek,mt8365
       - items:
           - enum:
+              - mediatek,mt8390-evk
+          - const: mediatek,mt8390
+          - const: mediatek,mt8188
+      - items:
+          - enum:
+              - kontron,3-5-sbc-i1200
               - mediatek,mt8395-evk
               - radxa,nio-12l
           - const: mediatek,mt8395
index 99b5e953070740fbd4cae7479576f926c90b33d1..528544d0a1614c9f9bddaafa8dac4782d09ac7e9 100644 (file)
@@ -53,14 +53,20 @@ properties:
           - arm,cortex-a710-pmu
           - arm,cortex-a715-pmu
           - arm,cortex-a720-pmu
+          - arm,cortex-a725-pmu
           - arm,cortex-x1-pmu
           - arm,cortex-x2-pmu
           - arm,cortex-x3-pmu
           - arm,cortex-x4-pmu
+          - arm,cortex-x925-pmu
           - arm,neoverse-e1-pmu
           - arm,neoverse-n1-pmu
           - arm,neoverse-n2-pmu
+          - arm,neoverse-n3-pmu
           - arm,neoverse-v1-pmu
+          - arm,neoverse-v2-pmu
+          - arm,neoverse-v3-pmu
+          - arm,neoverse-v3ae-pmu
           - brcm,vulcan-pmu
           - cavium,thunder-pmu
           - nvidia,denver-pmu
index ae885414b1811ee34e2b74a59716141347ad1a67..f08e13b611728f9024c5aba8aa71d7a463c3d4ea 100644 (file)
@@ -42,6 +42,7 @@ description: |
         msm8996
         msm8998
         qcs404
+        qcs8550
         qcm2290
         qcm6490
         qdu1000
@@ -96,6 +97,7 @@ properties:
       - items:
           - enum:
               - qcom,apq8016-sbc
+              - schneider,apq8016-hmibsc
           - const: qcom,apq8016
 
       - items:
@@ -104,6 +106,7 @@ properties:
               - huawei,sturgeon
               - lg,lenok
               - samsung,matisse-wifi
+              - samsung,milletwifi
           - const: qcom,apq8026
 
       - items:
@@ -138,6 +141,7 @@ properties:
               - microsoft,makepeace
               - microsoft,moneypenny
               - motorola,falcon
+              - samsung,ms013g
               - samsung,s3ve3g
           - const: qcom,msm8226
 
@@ -175,6 +179,7 @@ properties:
       - items:
           - enum:
               - lge,hammerhead
+              - samsung,hlte
               - sony,xperia-amami
               - sony,xperia-honami
           - const: qcom,msm8974
@@ -182,8 +187,10 @@ properties:
       - items:
           - enum:
               - fairphone,fp2
+              - htc,m8
               - oneplus,bacon
               - samsung,klte
+              - sony,xperia-aries
               - sony,xperia-castor
               - sony,xperia-leo
           - const: qcom,msm8974pro
@@ -203,8 +210,13 @@ properties:
               - asus,z00l
               - gplus,fl8005a
               - huawei,g7
+              - lg,c50
+              - lg,m216
               - longcheer,l8910
               - longcheer,l8150
+              - motorola,harpia
+              - motorola,osprey
+              - motorola,surnia
               - qcom,msm8916-mtp
               - samsung,a3u-eur
               - samsung,a5u-eur
@@ -316,6 +328,7 @@ properties:
       - items:
           - enum:
               - qcom,ipq5018-rdp432-c2
+              - tplink,archer-ax55-v1
           - const: qcom,ipq5018
 
       - items:
@@ -366,6 +379,7 @@ properties:
               - fairphone,fp5
               - qcom,qcm6490-idp
               - qcom,qcs6490-rb3gen2
+              - shift,otter
           - const: qcom,qcm6490
 
       - description: Qualcomm Technologies, Inc. Distributed Unit 1000 platform
@@ -802,6 +816,7 @@ properties:
 
       - items:
           - enum:
+              - lenovo,tbx605f
               - motorola,ali
           - const: qcom,sdm450
 
@@ -883,6 +898,7 @@ properties:
       - items:
           - enum:
               - qcom,sa8775p-ride
+              - qcom,sa8775p-ride-r3
           - const: qcom,sa8775p
 
       - items:
@@ -1004,17 +1020,28 @@ properties:
               - qcom,sm8550-hdk
               - qcom,sm8550-mtp
               - qcom,sm8550-qrd
+              - samsung,q5q
               - sony,pdx234
           - const: qcom,sm8550
 
       - items:
           - enum:
+              - qcom,qcs8550-aim300-aiot
+          - const: qcom,qcs8550-aim300
+          - const: qcom,qcs8550
+          - const: qcom,sm8550
+
+      - items:
+          - enum:
+              - qcom,sm8650-hdk
               - qcom,sm8650-mtp
               - qcom,sm8650-qrd
           - const: qcom,sm8650
 
       - items:
           - enum:
+              - asus,vivobook-s15
+              - lenovo,yoga-slim7x
               - qcom,x1e80100-crd
               - qcom,x1e80100-qcp
           - const: qcom,x1e80100
index e04c213a0dee45c6feb7a81432c264fe75011e7b..1ef09fbfdfaf507026461945f29ab93bdc6d893b 100644 (file)
@@ -248,6 +248,13 @@ properties:
           - const: friendlyarm,nanopc-t6
           - const: rockchip,rk3588
 
+      - description: FriendlyElec CM3588-based boards
+        items:
+          - enum:
+              - friendlyarm,cm3588-nas
+          - const: friendlyarm,cm3588
+          - const: rockchip,rk3588
+
       - description: GameForce Chi
         items:
           - const: gameforce,chi
@@ -627,6 +634,11 @@ properties:
           - const: mqmaker,miqi
           - const: rockchip,rk3288
 
+      - description: Neardi LBA3368
+        items:
+          - const: neardi,lba3368
+          - const: rockchip,rk3368
+
       - description: Netxeon R89 board
         items:
           - const: netxeon,r89
@@ -799,11 +811,21 @@ properties:
           - const: radxa,rock3a
           - const: rockchip,rk3568
 
+      - description: Radxa ROCK 3B
+        items:
+          - const: radxa,rock-3b
+          - const: rockchip,rk3568
+
       - description: Radxa ROCK 3C
         items:
           - const: radxa,rock-3c
           - const: rockchip,rk3566
 
+      - description: Radxa ROCK 5 ITX
+        items:
+          - const: radxa,rock-5-itx
+          - const: rockchip,rk3588
+
       - description: Radxa ROCK 5A
         items:
           - const: radxa,rock-5a
@@ -814,6 +836,18 @@ properties:
           - const: radxa,rock-5b
           - const: rockchip,rk3588
 
+      - description: Radxa ROCK S0
+        items:
+          - const: radxa,rock-s0
+          - const: rockchip,rk3308
+
+      - description: Radxa ZERO 3W/3E
+        items:
+          - enum:
+              - radxa,zero-3e
+              - radxa,zero-3w
+          - const: rockchip,rk3566
+
       - description: Rikomagic MK808 v1
         items:
           - const: rikomagic,mk808
@@ -959,6 +993,14 @@ properties:
           - const: wolfvision,rk3568-pf5
           - const: rockchip,rk3568
 
+      - description: Xunlong Orange Pi 3B
+        items:
+          - enum:
+              - xunlong,orangepi-3b-v1.1
+              - xunlong,orangepi-3b-v2.1
+          - const: xunlong,orangepi-3b
+          - const: rockchip,rk3566
+
       - description: Xunlong Orange Pi 5 Plus
         items:
           - const: xunlong,orangepi-5-plus
diff --git a/Bindings/arm/rtsm-dcscb.txt b/Bindings/arm/rtsm-dcscb.txt
deleted file mode 100644 (file)
index 3b8fbf3..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-ARM Dual Cluster System Configuration Block
--------------------------------------------
-
-The Dual Cluster System Configuration Block (DCSCB) provides basic
-functionality for controlling clocks, resets and configuration pins in
-the Dual Cluster System implemented by the Real-Time System Model (RTSM).
-
-Required properties:
-
-- compatible : should be "arm,rtsm,dcscb"
-
-- reg : physical base address and the size of the registers window
-
-Example:
-
-       dcscb@60000000 {
-               compatible = "arm,rtsm,dcscb";
-               reg = <0x60000000 0x1000>;
-       };
diff --git a/Bindings/arm/spear-misc.txt b/Bindings/arm/spear-misc.txt
deleted file mode 100644 (file)
index e404e25..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-SPEAr Misc configuration
-===========================
-SPEAr SOCs have some miscellaneous registers which are used to configure
-few properties of different peripheral controllers.
-
-misc node required properties:
-
-- compatible Should be "st,spear1340-misc", "syscon".
-- reg: Address range of misc space up to 8K
index bc2f43330ae42c4fa73168a6c0ef48872d315cba..58099949e8f3aa57d1572c005d3732c4cc037e18 100644 (file)
@@ -59,6 +59,12 @@ properties:
               - prt,prtt1s   # Protonic PRTT1S
           - const: st,stm32mp151
 
+      - description: DH STM32MP135 DHCOR SoM based Boards
+        items:
+          - const: dh,stm32mp135f-dhcor-dhsbc
+          - const: dh,stm32mp135f-dhcor-som
+          - const: st,stm32mp135
+
       - description: DH STM32MP151 DHCOR SoM based Boards
         items:
           - const: dh,stm32mp151a-dhcor-testbench
index c2a158b75e4979eaf6fc148970cc08767f6de264..09dc6f4249866a7cf5ae13cb86326497586ab47a 100644 (file)
@@ -708,12 +708,12 @@ properties:
           - const: olimex,a64-teres-i
           - const: allwinner,sun50i-a64
 
-      - description: Pine64
+      - description: Pine64 PINE A64
         items:
           - const: pine64,pine64
           - const: allwinner,sun50i-a64
 
-      - description: Pine64+
+      - description: Pine64 PINE A64+
         items:
           - const: pine64,pine64-plus
           - const: allwinner,sun50i-a64
@@ -724,17 +724,17 @@ properties:
           - const: sochip,s3
           - const: allwinner,sun8i-v3
 
-      - description: Pine64 PineH64 model A
+      - description: Pine64 PINE H64 Model A
         items:
           - const: pine64,pine-h64
           - const: allwinner,sun50i-h6
 
-      - description: Pine64 PineH64 model B
+      - description: Pine64 PINE H64 Model B
         items:
           - const: pine64,pine-h64-model-b
           - const: allwinner,sun50i-h6
 
-      - description: Pine64 LTS
+      - description: Pine64 PINE A64 LTS
         items:
           - const: pine64,pine64-lts
           - const: allwinner,sun50i-r18
@@ -763,17 +763,17 @@ properties:
           - const: pine64,pinephone
           - const: allwinner,sun50i-a64
 
-      - description: Pine64 PineTab, Development Sample
+      - description: Pine64 PineTab Developer Sample
         items:
           - const: pine64,pinetab
           - const: allwinner,sun50i-a64
 
-      - description: Pine64 PineTab, Early Adopter's batch (and maybe later ones)
+      - description: Pine64 PineTab Early Adopter
         items:
           - const: pine64,pinetab-early-adopter
           - const: allwinner,sun50i-a64
 
-      - description: Pine64 SoPine Baseboard
+      - description: Pine64 SOPINE
         items:
           - const: pine64,sopine-baseboard
           - const: pine64,sopine
index 52b51fd7044ef444124e5d7ae7c395620d8e728e..4d9c5fbb4c265ee4e44c4fc70c545b901f7ae50d 100644 (file)
@@ -25,6 +25,12 @@ properties:
               - ti,am62a7-sk
           - const: ti,am62a7
 
+      - description: K3 AM62A7 SoC PHYTEC phyBOARD-Lyra
+        items:
+          - const: phytec,am62a7-phyboard-lyra-rdk
+          - const: phytec,am62a-phycore-som
+          - const: ti,am62a7
+
       - description: K3 AM62P5 SoC and Boards
         items:
           - enum:
diff --git a/Bindings/ata/ahci-fsl-qoriq.txt b/Bindings/ata/ahci-fsl-qoriq.txt
deleted file mode 100644 (file)
index 7c3ca0e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-Binding for Freescale QorIQ AHCI SATA Controller
-
-Required properties:
-  - reg: Physical base address and size of the controller's register area.
-  - compatible: Compatibility string. Must be 'fsl,<chip>-ahci', where
-    chip could be ls1021a, ls1043a, ls1046a, ls1088a, ls2080a etc.
-  - clocks: Input clock specifier. Refer to common clock bindings.
-  - interrupts: Interrupt specifier. Refer to interrupt binding.
-
-Optional properties:
-  - dma-coherent: Enable AHCI coherent DMA operation.
-  - reg-names: register area names when there are more than 1 register area.
-
-Examples:
-       sata@3200000 {
-               compatible = "fsl,ls1021a-ahci";
-               reg = <0x0 0x3200000 0x0 0x10000>;
-               interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&platform_clk 1>;
-               dma-coherent;
-       };
diff --git a/Bindings/ata/fsl,ahci.yaml b/Bindings/ata/fsl,ahci.yaml
new file mode 100644 (file)
index 0000000..ea4428b
--- /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/ata/fsl,ahci.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale QorIQ AHCI SATA Controller
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    oneOf:
+      - description: SATA controller for ls1012a
+        items:
+          - const: fsl,ls1012a-ahci
+          - const: fsl,ls1043a-ahci
+      - enum:
+          - fsl,ls1021a-ahci
+          - fsl,ls1028a-ahci
+          - fsl,ls1043a-ahci
+          - fsl,ls1046a-ahci
+          - fsl,ls1088a-ahci
+          - fsl,ls2080a-ahci
+          - fsl,lx2160a-ahci
+
+  reg:
+    minItems: 1
+    maxItems: 2
+
+  reg-names:
+    items:
+      - const: ahci
+      - const: sata-ecc
+    minItems: 1
+
+  clocks:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  dma-coherent: true
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    sata@3200000 {
+        compatible = "fsl,ls1021a-ahci";
+        reg = <0x3200000 0x10000>;
+        interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&platform_clk 1>;
+        dma-coherent;
+    };
index b5e5767d86988d3a9b44501e960fd484509a3e82..13eaa8d9a16e5a4bd43b3e184f9277494acf27a1 100644 (file)
@@ -35,6 +35,9 @@ properties:
   ports-implemented:
     const: 1
 
+  power-domains:
+    maxItems: 1
+
   sata-port@0:
     $ref: /schemas/ata/snps,dwc-ahci-common.yaml#/$defs/dwc-ahci-port
 
index b9a9f2cf32a1b698d6e26304f2d6bcea2315d8ca..68ea5f70b75f031cd8b23cf48d566c3a760dab77 100644 (file)
@@ -21,6 +21,7 @@ properties:
   compatible:
     enum:
       - qcom,qdu1000-llcc
+      - qcom,sa8775p-llcc
       - qcom,sc7180-llcc
       - qcom,sc7280-llcc
       - qcom,sc8180x-llcc
@@ -79,6 +80,33 @@ allOf:
             - const: llcc0_base
             - const: llcc_broadcast_base
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sa8775p-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: LLCC broadcast base register region
+        reg-names:
+          items:
+            - const: llcc0_base
+            - const: llcc1_base
+            - const: llcc2_base
+            - const: llcc3_base
+            - const: llcc4_base
+            - const: llcc5_base
+            - const: llcc_broadcast_base
+
   - if:
       properties:
         compatible:
@@ -141,8 +169,31 @@ allOf:
               - qcom,sm8150-llcc
               - qcom,sm8250-llcc
               - qcom,sm8350-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: LLCC broadcast base register region
+        reg-names:
+          items:
+            - const: llcc0_base
+            - const: llcc1_base
+            - const: llcc2_base
+            - const: llcc3_base
+            - const: llcc_broadcast_base
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
               - qcom,sm8450-llcc
               - qcom,sm8550-llcc
+              - qcom,sm8650-llcc
     then:
       properties:
         reg:
@@ -151,7 +202,8 @@ allOf:
             - description: LLCC1 base register region
             - description: LLCC2 base register region
             - description: LLCC3 base register region
-            - description: LLCC broadcast base register region
+            - description: LLCC broadcast OR register region
+            - description: LLCC broadcast AND register region
         reg-names:
           items:
             - const: llcc0_base
@@ -159,6 +211,7 @@ allOf:
             - const: llcc2_base
             - const: llcc3_base
             - const: llcc_broadcast_base
+            - const: llcc_broadcast_and_base
 
 additionalProperties: false
 
diff --git a/Bindings/cache/starfive,jh8100-starlink-cache.yaml b/Bindings/cache/starfive,jh8100-starlink-cache.yaml
new file mode 100644 (file)
index 0000000..6d61098
--- /dev/null
@@ -0,0 +1,66 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/cache/starfive,jh8100-starlink-cache.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: StarFive StarLink Cache Controller
+
+maintainers:
+  - Joshua Yeong <joshua.yeong@starfivetech.com>
+
+description:
+  StarFive's StarLink Cache Controller manages the L3 cache shared between
+  clusters of CPU cores. The cache driver enables RISC-V non-standard cache
+  management as an alternative to instructions in the RISC-V Zicbom extension.
+
+allOf:
+  - $ref: /schemas/cache-controller.yaml#
+
+# We need a select here so we don't match all nodes with 'cache'
+select:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - starfive,jh8100-starlink-cache
+
+  required:
+    - compatible
+
+properties:
+  compatible:
+    items:
+      - const: starfive,jh8100-starlink-cache
+      - const: cache
+
+  reg:
+    maxItems: 1
+
+unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - cache-block-size
+  - cache-level
+  - cache-sets
+  - cache-size
+  - cache-unified
+
+examples:
+  - |
+      soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        cache-controller@15000000 {
+          compatible = "starfive,jh8100-starlink-cache", "cache";
+          reg = <0x0 0x15000000 0x0 0x278>;
+          cache-block-size = <64>;
+          cache-level = <3>;
+          cache-sets = <8192>;
+          cache-size = <0x400000>;
+          cache-unified;
+        };
+      };
index 3f42666377332d8c589dd2c41bc54ab0ddf0912d..84353fd09428f4c9af6a1e39c04b5abdee602a55 100644 (file)
@@ -35,7 +35,7 @@ properties:
 
   reg:
     minItems: 2
-    maxItems: 3
+    maxItems: 4
 
   "#clock-cells":
     description:
@@ -43,6 +43,10 @@ properties:
       clocks.
     const: 1
 
+  '#reset-cells':
+    description: ID of the controller reset line
+    const: 1
+
 required:
   - compatible
   - reg
@@ -60,6 +64,8 @@ allOf:
             - description: scu base address
             - description: misc scu base address
 
+        '#reset-cells': false
+
   - if:
       properties:
         compatible:
@@ -70,6 +76,7 @@ allOf:
           items:
             - description: scu base address
             - description: misc scu base address
+            - description: reset base address
             - description: pb scu base address
 
 additionalProperties: false
@@ -83,3 +90,19 @@ examples:
             <0x1fb00000 0x1000>;
       #clock-cells = <1>;
     };
+
+  - |
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      scuclk: clock-controller@1fa20000 {
+        compatible = "airoha,en7581-scu";
+        reg = <0x0 0x1fa20000 0x0 0x400>,
+              <0x0 0x1fb00000 0x0 0x90>,
+              <0x0 0x1fb00830 0x0 0x8>,
+              <0x0 0x1fbe3400 0x0 0xfc>;
+              #clock-cells = <1>;
+              #reset-cells = <1>;
+      };
+    };
index 6d84cee1bd756ebd15d6c1737eab62530fc27648..2568ad7dd0ac1b632b51d02fb975a20ef4875263 100644 (file)
@@ -30,6 +30,8 @@ properties:
       - description: input fixed pll div7
       - description: input hifi pll
       - description: input oscillator (usually at 24MHz)
+      - description: input sys pll
+    minItems: 6 # sys_pll is optional
 
   clock-names:
     items:
@@ -39,6 +41,8 @@ properties:
       - const: fclk_div7
       - const: hifi_pll
       - const: xtal
+      - const: sys_pll
+    minItems: 6 # sys_pll is optional
 
 required:
   - compatible
@@ -65,9 +69,10 @@ examples:
                      <&clkc_pll CLKID_FCLK_DIV5>,
                      <&clkc_pll CLKID_FCLK_DIV7>,
                      <&clkc_pll CLKID_HIFI_PLL>,
-                     <&xtal>;
+                     <&xtal>,
+                     <&clkc_pll CLKID_SYS_PLL>;
             clock-names = "fclk_div2", "fclk_div3",
                           "fclk_div5", "fclk_div7",
-                          "hifi_pll", "xtal";
+                          "hifi_pll", "xtal", "sys_pll";
         };
     };
index a59b188a8bf554b029cf815dca98ac0efa49f540..c99274d2a9bd608f55e4b1d626afa61dfb8e1e9a 100644 (file)
@@ -26,11 +26,15 @@ properties:
     items:
       - description: input fixpll_in
       - description: input hifipll_in
+      - description: input syspll_in
+    minItems: 2 # syspll_in is optional
 
   clock-names:
     items:
       - const: fixpll_in
       - const: hifipll_in
+      - const: syspll_in
+    minItems: 2 # syspll_in is optional
 
 required:
   - compatible
@@ -53,7 +57,8 @@ examples:
             reg = <0 0x7c80 0 0x18c>;
             #clock-cells = <1>;
             clocks = <&clkc_periphs CLKID_FIXPLL_IN>,
-                     <&clkc_periphs CLKID_HIFIPLL_IN>;
-            clock-names = "fixpll_in", "hifipll_in";
+                     <&clkc_periphs CLKID_HIFIPLL_IN>,
+                     <&clkc_periphs CLKID_SYSPLL_IN>;
+            clock-names = "fixpll_in", "hifipll_in", "syspll_in";
         };
     };
diff --git a/Bindings/clock/amlogic,axg-audio-clkc.txt b/Bindings/clock/amlogic,axg-audio-clkc.txt
deleted file mode 100644 (file)
index 3a8948c..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-* Amlogic AXG Audio Clock Controllers
-
-The Amlogic AXG audio clock controller generates and supplies clock to the
-other elements of the audio subsystem, such as fifos, i2s, spdif and pdm
-devices.
-
-Required Properties:
-
-- compatible   : should be "amlogic,axg-audio-clkc" for the A113X and A113D,
-                 "amlogic,g12a-audio-clkc" for G12A,
-                 "amlogic,sm1-audio-clkc" for S905X3.
-- reg          : physical base address of the clock controller and length of
-                 memory mapped region.
-- clocks       : a list of phandle + clock-specifier pairs for the clocks listed
-                 in clock-names.
-- clock-names  : must contain the following:
-                 * "pclk" - Main peripheral bus clock
-                 may contain the following:
-                 * "mst_in[0-7]" - 8 input plls to generate clock signals
-                 * "slv_sclk[0-9]" - 10 slave bit clocks provided by external
-                                     components.
-                 * "slv_lrclk[0-9]" - 10 slave sample clocks provided by external
-                                      components.
-- resets       : phandle of the internal reset line
-- #clock-cells : should be 1.
-- #reset-cells  : should be 1 on the g12a (and following) soc family
-
-Each clock is assigned an identifier and client nodes can use this identifier
-to specify the clock which they consume. All available clocks are defined as
-preprocessor macros in the dt-bindings/clock/axg-audio-clkc.h header and can be
-used in device tree sources.
-
-Example:
-
-clkc_audio: clock-controller@0 {
-       compatible = "amlogic,axg-audio-clkc";
-       reg = <0x0 0x0 0x0 0xb4>;
-       #clock-cells = <1>;
-
-       clocks = <&clkc CLKID_AUDIO>,
-                <&clkc CLKID_MPLL0>,
-                <&clkc CLKID_MPLL1>,
-                <&clkc CLKID_MPLL2>,
-                <&clkc CLKID_MPLL3>,
-                <&clkc CLKID_HIFI_PLL>,
-                <&clkc CLKID_FCLK_DIV3>,
-                <&clkc CLKID_FCLK_DIV4>,
-                <&clkc CLKID_GP0_PLL>;
-       clock-names = "pclk",
-                     "mst_in0",
-                     "mst_in1",
-                     "mst_in2",
-                     "mst_in3",
-                     "mst_in4",
-                     "mst_in5",
-                     "mst_in6",
-                     "mst_in7";
-       resets = <&reset RESET_AUDIO>;
-};
diff --git a/Bindings/clock/amlogic,axg-audio-clkc.yaml b/Bindings/clock/amlogic,axg-audio-clkc.yaml
new file mode 100644 (file)
index 0000000..fd7982d
--- /dev/null
@@ -0,0 +1,201 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/amlogic,axg-audio-clkc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic AXG Audio Clock Controller
+
+maintainers:
+  - Neil Armstrong <neil.armstrong@linaro.org>
+  - Jerome Brunet <jbrunet@baylibre.com>
+
+description:
+  The Amlogic AXG audio clock controller generates and supplies clock to the
+  other elements of the audio subsystem, such as fifos, i2s, spdif and pdm
+  devices.
+
+properties:
+  compatible:
+    enum:
+      - amlogic,axg-audio-clkc
+      - amlogic,g12a-audio-clkc
+      - amlogic,sm1-audio-clkc
+
+  '#clock-cells':
+    const: 1
+
+  '#reset-cells':
+    const: 1
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    minItems: 1
+    items:
+      - description: main peripheral bus clock
+      - description: input plls to generate clock signals N0
+      - description: input plls to generate clock signals N1
+      - description: input plls to generate clock signals N2
+      - description: input plls to generate clock signals N3
+      - description: input plls to generate clock signals N4
+      - description: input plls to generate clock signals N5
+      - description: input plls to generate clock signals N6
+      - description: input plls to generate clock signals N7
+      - description: slave bit clock N0 provided by external components
+      - description: slave bit clock N1 provided by external components
+      - description: slave bit clock N2 provided by external components
+      - description: slave bit clock N3 provided by external components
+      - description: slave bit clock N4 provided by external components
+      - description: slave bit clock N5 provided by external components
+      - description: slave bit clock N6 provided by external components
+      - description: slave bit clock N7 provided by external components
+      - description: slave bit clock N8 provided by external components
+      - description: slave bit clock N9 provided by external components
+      - description: slave sample clock N0 provided by external components
+      - description: slave sample clock N1 provided by external components
+      - description: slave sample clock N2 provided by external components
+      - description: slave sample clock N3 provided by external components
+      - description: slave sample clock N4 provided by external components
+      - description: slave sample clock N5 provided by external components
+      - description: slave sample clock N6 provided by external components
+      - description: slave sample clock N7 provided by external components
+      - description: slave sample clock N8 provided by external components
+      - description: slave sample clock N9 provided by external components
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: pclk
+      - const: mst_in0
+      - const: mst_in1
+      - const: mst_in2
+      - const: mst_in3
+      - const: mst_in4
+      - const: mst_in5
+      - const: mst_in6
+      - const: mst_in7
+      - const: slv_sclk0
+      - const: slv_sclk1
+      - const: slv_sclk2
+      - const: slv_sclk3
+      - const: slv_sclk4
+      - const: slv_sclk5
+      - const: slv_sclk6
+      - const: slv_sclk7
+      - const: slv_sclk8
+      - const: slv_sclk9
+      - const: slv_lrclk0
+      - const: slv_lrclk1
+      - const: slv_lrclk2
+      - const: slv_lrclk3
+      - const: slv_lrclk4
+      - const: slv_lrclk5
+      - const: slv_lrclk6
+      - const: slv_lrclk7
+      - const: slv_lrclk8
+      - const: slv_lrclk9
+
+  resets:
+    description: internal reset line
+
+required:
+  - compatible
+  - '#clock-cells'
+  - reg
+  - clocks
+  - clock-names
+  - resets
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - amlogic,g12a-audio-clkc
+              - amlogic,sm1-audio-clkc
+    then:
+      required:
+        - '#reset-cells'
+    else:
+      properties:
+        '#reset-cells': false
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/axg-clkc.h>
+    #include <dt-bindings/reset/amlogic,meson-axg-reset.h>
+    apb {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        clkc_audio: clock-controller@0 {
+            compatible = "amlogic,axg-audio-clkc";
+            reg = <0x0 0x0 0x0 0xb4>;
+            #clock-cells = <1>;
+
+            clocks = <&clkc CLKID_AUDIO>,
+                     <&clkc CLKID_MPLL0>,
+                     <&clkc CLKID_MPLL1>,
+                     <&clkc CLKID_MPLL2>,
+                     <&clkc CLKID_MPLL3>,
+                     <&clkc CLKID_HIFI_PLL>,
+                     <&clkc CLKID_FCLK_DIV3>,
+                     <&clkc CLKID_FCLK_DIV4>,
+                     <&clkc CLKID_GP0_PLL>,
+                     <&slv_sclk0>,
+                     <&slv_sclk1>,
+                     <&slv_sclk2>,
+                     <&slv_sclk3>,
+                     <&slv_sclk4>,
+                     <&slv_sclk5>,
+                     <&slv_sclk6>,
+                     <&slv_sclk7>,
+                     <&slv_sclk8>,
+                     <&slv_sclk9>,
+                     <&slv_lrclk0>,
+                     <&slv_lrclk1>,
+                     <&slv_lrclk2>,
+                     <&slv_lrclk3>,
+                     <&slv_lrclk4>,
+                     <&slv_lrclk5>,
+                     <&slv_lrclk6>,
+                     <&slv_lrclk7>,
+                     <&slv_lrclk8>,
+                     <&slv_lrclk9>;
+            clock-names = "pclk",
+                          "mst_in0",
+                          "mst_in1",
+                          "mst_in2",
+                          "mst_in3",
+                          "mst_in4",
+                          "mst_in5",
+                          "mst_in6",
+                          "mst_in7",
+                          "slv_sclk0",
+                          "slv_sclk1",
+                          "slv_sclk2",
+                          "slv_sclk3",
+                          "slv_sclk4",
+                          "slv_sclk5",
+                          "slv_sclk6",
+                          "slv_sclk7",
+                          "slv_sclk8",
+                          "slv_sclk9",
+                          "slv_lrclk0",
+                          "slv_lrclk1",
+                          "slv_lrclk2",
+                          "slv_lrclk3",
+                          "slv_lrclk4",
+                          "slv_lrclk5",
+                          "slv_lrclk6",
+                          "slv_lrclk7",
+                          "slv_lrclk8",
+                          "slv_lrclk9";
+            resets = <&reset RESET_AUDIO>;
+        };
+    };
diff --git a/Bindings/clock/amlogic,c3-peripherals-clkc.yaml b/Bindings/clock/amlogic,c3-peripherals-clkc.yaml
new file mode 100644 (file)
index 0000000..98e30b8
--- /dev/null
@@ -0,0 +1,120 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2022-2023 Amlogic, Inc. All rights reserved
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/amlogic,c3-peripherals-clkc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic C3 series Peripheral Clock Controller
+
+maintainers:
+  - Neil Armstrong <neil.armstrong@linaro.org>
+  - Jerome Brunet <jbrunet@baylibre.com>
+  - Xianwei Zhao <xianwei.zhao@amlogic.com>
+  - Chuan Liu <chuan.liu@amlogic.com>
+
+properties:
+  compatible:
+    const: amlogic,c3-peripherals-clkc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    minItems: 16
+    items:
+      - description: input oscillator (usually at 24MHz)
+      - description: input oscillators multiplexer
+      - description: input fix 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 gp0 pll
+      - description: input gp1 pll
+      - description: input hifi pll
+      - description: input sys clk
+      - description: input axi clk
+      - description: input sys pll div 16
+      - description: input cpu clk div 16
+      - description: input pad clock for rtc clk (optional)
+
+  clock-names:
+    minItems: 16
+    items:
+      - const: xtal_24m
+      - const: oscin
+      - const: fix
+      - const: fdiv2
+      - const: fdiv2p5
+      - const: fdiv3
+      - const: fdiv4
+      - const: fdiv5
+      - const: fdiv7
+      - const: gp0
+      - const: gp1
+      - const: hifi
+      - const: sysclk
+      - const: axiclk
+      - const: sysplldiv16
+      - const: cpudiv16
+      - const: pad_osc
+
+  "#clock-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - "#clock-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    apb {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        clock-controller@0 {
+            compatible = "amlogic,c3-peripherals-clkc";
+            reg = <0x0 0x0 0x0 0x49c>;
+            #clock-cells = <1>;
+            clocks = <&xtal_24m>,
+                     <&scmi_clk 8>,
+                     <&scmi_clk 12>,
+                     <&clkc_pll 3>,
+                     <&clkc_pll 5>,
+                     <&clkc_pll 7>,
+                     <&clkc_pll 9>,
+                     <&clkc_pll 11>,
+                     <&clkc_pll 13>,
+                     <&clkc_pll 15>,
+                     <&scmi_clk 13>,
+                     <&clkc_pll 17>,
+                     <&scmi_clk 9>,
+                     <&scmi_clk 10>,
+                     <&scmi_clk 14>,
+                     <&scmi_clk 15>;
+            clock-names = "xtal_24m",
+                          "oscin",
+                          "fix",
+                          "fdiv2",
+                          "fdiv2p5",
+                          "fdiv3",
+                          "fdiv4",
+                          "fdiv5",
+                          "fdiv7",
+                          "gp0",
+                          "gp1",
+                          "hifi",
+                          "sysclk",
+                          "axiclk",
+                          "sysplldiv16",
+                          "cpudiv16";
+        };
+    };
diff --git a/Bindings/clock/amlogic,c3-pll-clkc.yaml b/Bindings/clock/amlogic,c3-pll-clkc.yaml
new file mode 100644 (file)
index 0000000..43de3c6
--- /dev/null
@@ -0,0 +1,59 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2022-2023 Amlogic, Inc. All rights reserved
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/amlogic,c3-pll-clkc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic C3 series PLL Clock Controller
+
+maintainers:
+  - Neil Armstrong <neil.armstrong@linaro.org>
+  - Jerome Brunet <jbrunet@baylibre.com>
+  - Chuan Liu <chuan.liu@amlogic.com>
+  - Xianwei Zhao <xianwei.zhao@amlogic.com>
+
+properties:
+  compatible:
+    const: amlogic,c3-pll-clkc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: input top pll
+      - description: input mclk pll
+
+  clock-names:
+    items:
+      - const: top
+      - const: mclk
+
+  "#clock-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - "#clock-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    apb {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        clock-controller@8000 {
+            compatible = "amlogic,c3-pll-clkc";
+            reg = <0x0 0x8000 0x0 0x1a4>;
+            clocks = <&scmi_clk 2>,
+                     <&scmi_clk 5>;
+            clock-names = "top", "mclk";
+            #clock-cells = <1>;
+        };
+    };
diff --git a/Bindings/clock/fsl,qoriq-clock-legacy.yaml b/Bindings/clock/fsl,qoriq-clock-legacy.yaml
new file mode 100644 (file)
index 0000000..97b96a1
--- /dev/null
@@ -0,0 +1,84 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/fsl,qoriq-clock-legacy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Legacy Clock Block on Freescale QorIQ Platforms
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description: |
+  These nodes are deprecated.  Kernels should continue to support
+  device trees with these nodes, but new device trees should not use them.
+
+  Most of the bindings are from the common clock binding[1].
+  [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
+
+properties:
+  compatible:
+    enum:
+      - fsl,qoriq-core-pll-1.0
+      - fsl,qoriq-core-pll-2.0
+      - fsl,qoriq-core-mux-1.0
+      - fsl,qoriq-core-mux-2.0
+      - fsl,qoriq-sysclk-1.0
+      - fsl,qoriq-sysclk-2.0
+      - fsl,qoriq-platform-pll-1.0
+      - fsl,qoriq-platform-pll-2.0
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    minItems: 1
+    maxItems: 4
+
+  clock-names:
+    minItems: 1
+    maxItems: 4
+
+  clock-output-names:
+    minItems: 1
+    maxItems: 8
+
+  '#clock-cells':
+    minimum: 0
+    maximum: 1
+
+required:
+  - compatible
+  - '#clock-cells'
+
+additionalProperties: false
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,qoriq-sysclk-1.0
+              - fsl,qoriq-sysclk-2.0
+    then:
+      properties:
+        '#clock-cells':
+          const: 0
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,qoriq-core-pll-1.0
+              - fsl,qoriq-core-pll-2.0
+    then:
+      properties:
+        '#clock-cells':
+          const: 1
+          description: |
+            * 0 - equal to the PLL frequency
+            * 1 - equal to the PLL frequency divided by 2
+            * 2 - equal to the PLL frequency divided by 4
+
diff --git a/Bindings/clock/fsl,qoriq-clock.yaml b/Bindings/clock/fsl,qoriq-clock.yaml
new file mode 100644 (file)
index 0000000..95a3e3b
--- /dev/null
@@ -0,0 +1,207 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/fsl,qoriq-clock.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Clock Block on Freescale QorIQ Platforms
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description: |
+  Freescale QorIQ chips take primary clocking input from the external
+  SYSCLK signal. The SYSCLK input (frequency) is multiplied using
+  multiple phase locked loops (PLL) to create a variety of frequencies
+  which can then be passed to a variety of internal logic, including
+  cores and peripheral IP blocks.
+  Please refer to the Reference Manual for details.
+
+  All references to "1.0" and "2.0" refer to the QorIQ chassis version to
+  which the chip complies.
+
+  Chassis Version    Example Chips
+  ---------------    -------------
+       1.0          p4080, p5020, p5040
+       2.0          t4240
+
+  Clock Provider
+
+  The clockgen node should act as a clock provider, though in older device
+  trees the children of the clockgen node are the clock providers.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - fsl,p2041-clockgen
+              - fsl,p3041-clockgen
+              - fsl,p4080-clockgen
+              - fsl,p5020-clockgen
+              - fsl,p5040-clockgen
+          - const: fsl,qoriq-clockgen-1.0
+      - items:
+          - enum:
+              - fsl,t1023-clockgen
+              - fsl,t1024-clockgen
+              - fsl,t1040-clockgen
+              - fsl,t1042-clockgen
+              - fsl,t2080-clockgen
+              - fsl,t2081-clockgen
+              - fsl,t4240-clockgen
+          - const: fsl,qoriq-clockgen-2.0
+      - items:
+          - enum:
+              - fsl,b4420-clockgen
+              - fsl,b4860-clockgen
+          - const: fsl,b4-clockgen
+      - items:
+          - enum:
+              - fsl,ls1012a-clockgen
+              - fsl,ls1021a-clockgen
+              - fsl,ls1028a-clockgen
+              - fsl,ls1043a-clockgen
+              - fsl,ls1046a-clockgen
+              - fsl,ls1088a-clockgen
+              - fsl,ls2080a-clockgen
+              - fsl,lx2160a-clockgen
+
+  reg:
+    maxItems: 1
+
+  ranges: true
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 1
+
+  '#clock-cells':
+    const: 2
+    description: |
+      The first cell of the clock specifier is the clock type, and the
+      second cell is the clock index for the specified type.
+
+        Type#  Name       Index Cell
+        0  sysclk          must be 0
+        1  cmux            index (n in CLKCnCSR)
+        2  hwaccel         index (n in CLKCGnHWACSR)
+        3  fman            0 for fm1, 1 for fm2
+        4  platform pll    n=pll/(n+1). For example, when n=1,
+                          that means output_freq=PLL_freq/2.
+        5  coreclk         must be 0
+
+  clock-frequency:
+    description: Input system clock frequency (SYSCLK)
+
+  clocks:
+    items:
+      - description:
+          sysclk may be provided as an input clock.  Either clock-frequency
+          or clocks must be provided.
+      - description:
+          A second input clock, called "coreclk", may be provided if
+          core PLLs are based on a different input clock from the
+          platform PLL.
+    minItems: 1
+
+  clock-names:
+    items:
+      - const: sysclk
+      - const: coreclk
+
+patternProperties:
+  '^mux[0-9]@[a-f0-9]+$':
+    deprecated: true
+    $ref: fsl,qoriq-clock-legacy.yaml
+
+  '^sysclk(-[a-z0-9]+)?$':
+    deprecated: true
+    $ref: fsl,qoriq-clock-legacy.yaml
+
+  '^pll[0-9]@[a-f0-9]+$':
+    deprecated: true
+    $ref: fsl,qoriq-clock-legacy.yaml
+
+  '^platform\-pll@[a-f0-9]+$':
+    deprecated: true
+    $ref: fsl,qoriq-clock-legacy.yaml
+
+required:
+  - compatible
+  - reg
+  - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    /* clock provider example */
+    global-utilities@e1000 {
+        compatible = "fsl,p5020-clockgen", "fsl,qoriq-clockgen-1.0";
+        reg = <0xe1000 0x1000>;
+        clock-frequency = <133333333>;
+        #clock-cells = <2>;
+    };
+
+  - |
+    /* Legacy example */
+    global-utilities@e1000 {
+        compatible = "fsl,p5020-clockgen", "fsl,qoriq-clockgen-1.0";
+        reg = <0xe1000 0x1000>;
+        ranges = <0x0 0xe1000 0x1000>;
+        clock-frequency = <133333333>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+        #clock-cells = <2>;
+
+        sysclk: sysclk {
+            compatible = "fsl,qoriq-sysclk-1.0";
+            clock-output-names = "sysclk";
+            #clock-cells = <0>;
+        };
+
+        pll0: pll0@800 {
+            compatible = "fsl,qoriq-core-pll-1.0";
+            reg = <0x800 0x4>;
+            #clock-cells = <1>;
+            clocks = <&sysclk>;
+            clock-output-names = "pll0", "pll0-div2";
+        };
+
+        pll1: pll1@820 {
+            compatible = "fsl,qoriq-core-pll-1.0";
+            reg = <0x820 0x4>;
+            #clock-cells = <1>;
+            clocks = <&sysclk>;
+            clock-output-names = "pll1", "pll1-div2";
+        };
+
+        mux0: mux0@0 {
+            compatible = "fsl,qoriq-core-mux-1.0";
+            reg = <0x0 0x4>;
+            #clock-cells = <0>;
+            clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>;
+            clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2";
+            clock-output-names = "cmux0";
+        };
+
+        mux1: mux1@20 {
+            compatible = "fsl,qoriq-core-mux-1.0";
+            reg = <0x20 0x4>;
+            #clock-cells = <0>;
+            clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>;
+            clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2";
+            clock-output-names = "cmux1";
+        };
+
+        platform-pll@c00 {
+            #clock-cells = <1>;
+            reg = <0xc00 0x4>;
+            compatible = "fsl,qoriq-platform-pll-1.0";
+            clocks = <&sysclk>;
+            clock-output-names = "platform-pll", "platform-pll-div2";
+        };
+    };
index bae4fcb3aacc67f6e58597a54c0dbfbd540c05f8..cd3c04c883df4ab02af29582369757df36269cb6 100644 (file)
@@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale i.MX6 Quad Clock Controller
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Abel Vesa <abelvesa@kernel.org>
+  - Peng Fan <peng.fan@nxp.com>
 
 properties:
   compatible:
index c85ff6ea3d245c0256c6e930c386dd6ef58f3a3a..6713bbb14f30136bd96659f11a267f923dfb5bad 100644 (file)
@@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale i.MX6 SoloLite Clock Controller
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Abel Vesa <abelvesa@kernel.org>
+  - Peng Fan <peng.fan@nxp.com>
 
 properties:
   compatible:
index 6b549ed1493c3caab9157f541ba0f95fd12612a8..6d64cf9463c99aa08691a93a6e52fc3588347c91 100644 (file)
@@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale i.MX6 SLL Clock Controller
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Abel Vesa <abelvesa@kernel.org>
+  - Peng Fan <peng.fan@nxp.com>
 
 properties:
   compatible:
index 55dcad18b7c6d25d52aede343b3c0d8c6b773673..77afa4b81cf7905fd8dc2c20cd9dddedd82f9c57 100644 (file)
@@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale i.MX6 SoloX Clock Controller
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Abel Vesa <abelvesa@kernel.org>
+  - Peng Fan <peng.fan@nxp.com>
 
 properties:
   compatible:
index be54d4df5afa285503c4596cf6e3a998aeb81bab..d57e18a210cc1d8a836b50058613dfb0308fbf11 100644 (file)
@@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale i.MX6 UltraLite Clock Controller
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Abel Vesa <abelvesa@kernel.org>
+  - Peng Fan <peng.fan@nxp.com>
 
 properties:
   compatible:
index e7d8427e49579c3dc7b62680a36c60cc59285ad0..880d602d09f4084c4d0db80d6d64c993a4b784cc 100644 (file)
@@ -8,7 +8,6 @@ title: Freescale i.MX7 Dual Clock Controller
 
 maintainers:
   - Frank Li <Frank.Li@nxp.com>
-  - Anson Huang <Anson.Huang@nxp.com>
 
 description: |
   The clock consumer should specify the desired clock by having the clock
index 80539f88bc27078a561bd0ef8d3ddb6a78dbb0ba..c643d4a814786a1fc7e559140fe58911990f71bb 100644 (file)
@@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: NXP i.MX8M Family Clock Control Module
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Abel Vesa <abelvesa@kernel.org>
+  - Peng Fan <peng.fan@nxp.com>
 
 description: |
   NXP i.MX8M Mini/Nano/Plus/Quad clock control module is an integrated clock
index c77111d10f9058c6c09ebb732f36807ad2b9793f..9c3913f9092cbcc4b18cd14101750fb9f2d683ce 100644 (file)
@@ -14,9 +14,11 @@ maintainers:
 
 properties:
   compatible:
-    enum:
-      - mediatek,mt7622-pciesys
-      - mediatek,mt7629-pciesys
+    oneOf:
+      - items:
+          - const: mediatek,mt7622-pciesys
+          - const: syscon
+      - const: mediatek,mt7629-pciesys
 
   reg:
     maxItems: 1
@@ -38,7 +40,7 @@ additionalProperties: false
 examples:
   - |
     clock-controller@1a100800 {
-        compatible = "mediatek,mt7622-pciesys";
+        compatible = "mediatek,mt7622-pciesys", "syscon";
         reg = <0x1a100800 0x1000>;
         #clock-cells = <1>;
         #reset-cells = <1>;
index 4cf8d3af98033f2b09cbcc3808084dd050f86184..db13d51a49038540fd01964dd11ad402a7437221 100644 (file)
@@ -39,6 +39,9 @@ properties:
   '#clock-cells':
     const: 1
 
+  '#reset-cells':
+    const: 1
+
 required:
   - compatible
   - reg
index 0af1c569eb32888adb36292a756e618d1e2e619d..d786f1e2d0077208135cb4d43d77d36d0e49e946 100644 (file)
@@ -40,38 +40,11 @@ required:
 additionalProperties: false
 
 examples:
-  # Clock controller node:
   - |
-    m10v-clk-ctrl@1d021000 {
+    clock-controller@1d021000 {
         compatible = "socionext,milbeaut-m10v-ccu";
         reg = <0x1d021000 0x4000>;
         #clock-cells = <1>;
         clocks = <&clki40mhz>;
     };
-
-  # Required an external clock for Clock controller node:
-  - |
-    clocks {
-        clki40mhz: clki40mhz {
-            compatible = "fixed-clock";
-            #clock-cells = <0>;
-            clock-frequency = <40000000>;
-        };
-        /* other clocks */
-    };
-
-  # The clock consumer shall specify the desired clock-output of the clock
-  # controller as below by specifying output-id in its "clk" phandle cell.
-  # 2: uart
-  # 4: 32-bit timer
-  # 7: UHS-I/II
-  - |
-    serial@1e700010 {
-        compatible = "socionext,milbeaut-usio-uart";
-        reg = <0x1e700010 0x10>;
-        interrupts = <0 141 0x4>, <0 149 0x4>;
-        interrupt-names = "rx", "tx";
-        clocks = <&clk 2>;
-    };
-
 ...
index 3cb996b2c9d5958246e9e1ceda3b9ced8af7560b..ffae037779a115907e33c7328c190e0cbb6a37df 100644 (file)
@@ -40,31 +40,19 @@ properties:
       - description: DSI 1 PLL byte clock
       - description: DSI 1 PLL DSI clock
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
   power-domains:
     items:
       - description: MMCX power domain
 
 required:
   - compatible
-  - reg
   - clocks
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index 8efac3fb159febf9407ae806f21d41867eb3afff..46403b98411f81d6d136d8c9e5602095b72e0e33 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Display Clock & Reset Controller on SM6350
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@somainline.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm display clock control module provides the clocks, resets and power
@@ -37,28 +37,16 @@ properties:
       - const: dp_phy_pll_link_clk
       - const: dp_phy_pll_vco_div_clk
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index 59cc88a52f6b8c520d0c2899904429b0f4a9b6a4..53a5ab319159145abb3422c8108cb0dff483d64d 100644 (file)
@@ -27,6 +27,7 @@ properties:
       - qcom,sm8350-dispcc
 
   clocks:
+    minItems: 7
     items:
       - description: Board XO source
       - description: Byte clock from DSI PHY0
@@ -35,8 +36,15 @@ properties:
       - description: Pixel clock from DSI PHY1
       - description: Link clock from DP PHY
       - description: VCO DIV clock from DP PHY
+      - description: Link clock from eDP PHY
+      - description: VCO DIV clock from eDP PHY
+      - description: Link clock from DP1 PHY
+      - description: VCO DIV clock from DP1 PHY
+      - description: Link clock from DP2 PHY
+      - description: VCO DIV clock from DP2 PHY
 
   clock-names:
+    minItems: 7
     items:
       - const: bi_tcxo
       - const: dsi0_phy_pll_out_byteclk
@@ -45,18 +53,12 @@ properties:
       - const: dsi1_phy_pll_out_dsiclk
       - const: dp_phy_pll_link_clk
       - const: dp_phy_pll_vco_div_clk
-
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
+      - const: edp_phy_pll_link_clk
+      - const: edp_phy_pll_vco_div_clk
+      - const: dptx1_phy_pll_link_clk
+      - const: dptx1_phy_pll_vco_div_clk
+      - const: dptx2_phy_pll_link_clk
+      - const: dptx2_phy_pll_vco_div_clk
 
   power-domains:
     description:
@@ -70,14 +72,26 @@ properties:
 
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              const: qcom,sc8180x-dispcc
+    then:
+      properties:
+        clocks:
+          maxItems: 7
+        clock-names:
+          maxItems: 7
+
+unevaluatedProperties: false
 
 examples:
   - |
index 19211176ee0bf3fe68d2d37339be8f65d2c3715c..27df7e3e5bf36a3499ed565eef8026d94f7a9d6c 100644 (file)
@@ -69,6 +69,8 @@ properties:
     const: 1
     deprecated: true
 
+  '#power-domain-cells': false
+
 required:
   - compatible
 
@@ -81,7 +83,6 @@ examples:
       reg = <0x00900000 0x4000>;
       #clock-cells = <1>;
       #reset-cells = <1>;
-      #power-domain-cells = <1>;
 
       thermal-sensor {
         compatible = "qcom,msm8960-tsens";
index d84608269080229dae946b0106a0844f1305c4ac..0a0a26d9beab1824c4440fd8e9bebe0303e6d6de 100644 (file)
@@ -51,6 +51,7 @@ properties:
 
 required:
   - compatible
+  - '#power-domain-cells'
 
 unevaluatedProperties: false
 
index fb3957d485f9aef62ed8eeeaa4518cf39d40fea9..012048921f92e43a78a2606fe63594a36932a947 100644 (file)
@@ -34,6 +34,8 @@ properties:
       - const: xo
       - const: sleep_clk
 
+  '#power-domain-cells': false
+
 required:
   - compatible
 
@@ -45,7 +47,6 @@ examples:
       compatible = "qcom,gcc-ipq4019";
       reg = <0x1800000 0x60000>;
       #clock-cells = <1>;
-      #power-domain-cells = <1>;
       #reset-cells = <1>;
       clocks = <&xo>, <&sleep_clk>;
       clock-names = "xo", "sleep_clk";
index af5d883cfdc86b93454ba80f3f4607888a52ebd8..4d2614d4f368647e411c4fba935c71d2a0f40dd4 100644 (file)
@@ -36,6 +36,8 @@ properties:
       - const: xo
       - const: sleep_clk
 
+  '#power-domain-cells': false
+
 required:
   - compatible
   - clocks
@@ -51,7 +53,6 @@ examples:
       clocks = <&xo>, <&sleep_clk>;
       clock-names = "xo", "sleep_clk";
       #clock-cells = <1>;
-      #power-domain-cells = <1>;
       #reset-cells = <1>;
     };
 ...
index 93f3084b97c125a136f3008ce3baab4a32bbc11b..a71557395c014d82323c62bf5f13e05e7ac15aa2 100644 (file)
@@ -46,6 +46,8 @@ properties:
     allOf:
       - $ref: /schemas/thermal/qcom-tsens.yaml#
 
+  '#power-domain-cells': false
+
 required:
   - compatible
   - clocks
@@ -65,7 +67,6 @@ examples:
       clock-names = "pxo", "cxo", "pll4";
       #clock-cells = <1>;
       #reset-cells = <1>;
-      #power-domain-cells = <1>;
 
       tsens: thermal-sensor {
         compatible = "qcom,ipq8064-tsens";
index 2d44ddc45aabb22e5a3166d1504e0a1e96037c1b..38b9e42839004158deed1f8eacba4ddf660edfb9 100644 (file)
@@ -39,6 +39,7 @@ properties:
 
 required:
   - compatible
+  - '#power-domain-cells'
 
 unevaluatedProperties: false
 
similarity index 87%
rename from Bindings/clock/qcom,gcc-other.yaml
rename to Bindings/clock/qcom,gcc-mdm9607.yaml
index 7d05f0f63cef2ed46729be6c7e8f51942f8b451a..d7da30b0e7ee6564eb6493c79a25598d0f93d18a 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/clock/qcom,gcc-other.yaml#
+$id: http://devicetree.org/schemas/clock/qcom,gcc-mdm9607.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Qualcomm Global Clock & Reset Controller
@@ -15,7 +15,6 @@ description: |
   domains.
 
   See also::
-    include/dt-bindings/clock/qcom,gcc-msm8953.h
     include/dt-bindings/clock/qcom,gcc-mdm9607.h
 
 allOf:
@@ -28,6 +27,7 @@ properties:
 
 required:
   - compatible
+  - '#power-domain-cells'
 
 unevaluatedProperties: false
 
diff --git a/Bindings/clock/qcom,gcc-mdm9615.yaml b/Bindings/clock/qcom,gcc-mdm9615.yaml
new file mode 100644 (file)
index 0000000..418dea3
--- /dev/null
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,gcc-mdm9615.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Global Clock & Reset Controller
+
+maintainers:
+  - Stephen Boyd <sboyd@kernel.org>
+  - Taniya Das <quic_tdas@quicinc.com>
+
+description: |
+  Qualcomm global clock control module provides the clocks, resets and power
+  domains.
+
+  See also::
+    include/dt-bindings/clock/qcom,gcc-mdm9615.h
+
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+properties:
+  compatible:
+    enum:
+      - qcom,gcc-mdm9615
+
+  clocks:
+    items:
+      - description: CXO clock
+      - description: PLL4 from LLC
+
+  '#power-domain-cells': false
+
+required:
+  - compatible
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    clock-controller@900000 {
+      compatible = "qcom,gcc-mdm9615";
+      reg = <0x900000 0x4000>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      clocks = <&cxo_board>,
+               <&lcc_pll4>;
+    };
+...
index c9e9855486213f1ecbc89308f855f98d1398bf8f..e03b6d0acdb6e042dc5852b463cdb045c303f52e 100644 (file)
@@ -34,6 +34,8 @@ properties:
       - const: pxo
       - const: cxo
 
+  '#power-domain-cells': false
+
 required:
   - compatible
 
@@ -47,7 +49,6 @@ examples:
       reg = <0x900000 0x4000>;
       #clock-cells = <1>;
       #reset-cells = <1>;
-      #power-domain-cells = <1>;
       clocks = <&pxo_board>, <&cxo_board>;
       clock-names = "pxo", "cxo";
     };
index b91462587df50ee1e8d53c35319ecaf29dacc3e3..ce1f5a60bd8c9dfe60a791881868337d3e1723df 100644 (file)
@@ -42,6 +42,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index ad84c0f7680be123a7e9e165a0e8198a70f9ccd5..258b6b93deca772172ead546cc390c1ac67d08f2 100644 (file)
@@ -48,6 +48,7 @@ properties:
 
 required:
   - compatible
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index fe9fd4cb185f11bd8a5fb2e23855fbb25d2c9c8c..fe1f5f3ed992453a347062a556b1ddb2a011db6f 100644 (file)
@@ -42,6 +42,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 1927aecc86bc4f90527208e50841ea0a44e97768..929fafc84c195500d8007b785153ef92580f21de 100644 (file)
@@ -41,6 +41,7 @@ properties:
 
 required:
   - compatible
+  - '#power-domain-cells'
 
 unevaluatedProperties: false
 
index 62d6f1fe1228a60c161dde34853313e3115a8f38..cd49704dcb95a99a91eab2018465fccc571d77ee 100644 (file)
@@ -49,6 +49,7 @@ required:
   - clocks
   - clock-names
   - vdd_gfx-supply
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 8f0f20c1442ad3134135c32017dcb58d7ff7a0fe..10afe984e2fbc1fd190b6cb901b0f1f5df43157f 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Global Clock & Reset Controller on MSM8994
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@somainline.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm global clock control module provides the clocks, resets and power
@@ -35,6 +35,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 97523cc1ecfbf1eb16d62a4534c92ac793ce79da..013fd074a8d56f384561a885569253ea134a9c9d 100644 (file)
@@ -50,6 +50,7 @@ properties:
 
 required:
   - compatible
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 58f7fb22c5c4d9ca3003cd1dd3559b4fe090ab8f..abae658c0ed959bf05c752967da76446d8562de4 100644 (file)
@@ -38,6 +38,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index c9bec4656f6ebf8ae7536ad6e21a5deb1869ac3d..38c4c8c61b3af6478960c79128421930fa51c9c1 100644 (file)
@@ -33,6 +33,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 7bc6c57e4d11d4929c12e687cd24ba73b522873e..94755465c1fb42a472e0cc80221b4fe7318b70e1 100644 (file)
@@ -40,6 +40,7 @@ properties:
 
 required:
   - compatible
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 7aae21a766908f69e50555ab1fd17ade4df6d8a5..1847bbeaa9d1852379bb9ff8168121e70ef50ea7 100644 (file)
@@ -40,6 +40,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index c4ca08d9ad5afe5ba3dcdd8d7893992b4096d6a6..4e4f68b9f6d2802774030d652a26ce14e053aa4d 100644 (file)
@@ -51,6 +51,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index a1085ef4fd05ad30d66a28855e82daf8a843485c..b4784ecaf58d2f1c360c2e94cef681b26c308b2c 100644 (file)
@@ -40,6 +40,7 @@ required:
   - clocks
   - clock-names
   - power-domains
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 5681e535feded0e5b561bd05b28a0b4cd5cd846a..5cfde8a4de4e9a1275d53a0bc7aa0f01f47f304e 100644 (file)
@@ -65,6 +65,7 @@ properties:
 required:
   - compatible
   - clocks
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 52e7412aace51332e85682307d8432494d368c4b..724ce0491118a0c5aadfe0922efcb227d29ddb6b 100644 (file)
@@ -40,6 +40,7 @@ properties:
 
 required:
   - compatible
+  - '#power-domain-cells'
 
 unevaluatedProperties: false
 
index 0595da0e8a424d4d3e2c531e7c82f5195fb235ca..ef0a20456e8a5a8a9a9dcb6af29766d99a283656 100644 (file)
@@ -35,6 +35,7 @@ properties:
 
 required:
   - compatible
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 428e954d7638495e2cf771ac3c780f8cb5ec080f..30819f3d85c621ac8326b706d76cd888fb907d2d 100644 (file)
@@ -34,6 +34,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 523e18d7f1506ce758d884516568819a70a067bc..9154492286685f9b9ec7a6cb1ab1577888809adb 100644 (file)
@@ -39,6 +39,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index a5ad0a3da3979c4f41d2fcc3a9f4e92bc17ae3e2..ecb69c707f09b858a3e0c5936d34581077fe478c 100644 (file)
@@ -33,6 +33,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 8e37623788bddfc9faa8d5fb78a3839ea19f9754..1fe68e07a2b208b7caffe181328ddc26e09cd20e 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Global Clock & Reset Controller on SM6125
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@somainline.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm global clock control module provides the clocks, resets and power
@@ -33,6 +33,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index d1b26ab48eaff915ee25b7eee2ab2f8d5ec1218c..78e232fa95dc603b58848b45ffd2fc79b32577c0 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Global Clock & Reset Controller on SM6350
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@somainline.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm global clock control module provides the clocks, resets and power
@@ -35,6 +35,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 58ccb7df847cc329d52f5e86d2612db9ac9ae7e7..1dcf97c0c064ed56cb249846a0d6f7b032cb3d2f 100644 (file)
@@ -34,6 +34,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 5d77c092be5b062ed2b0f0b4739bd371ec8de961..979ff0a8bf6868068c11dd15db764c6708489d86 100644 (file)
@@ -36,6 +36,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index b4fdde71ef18db1d0284d118bfcc027ab16d1ce8..594e87f5ba092af66ca029fdb399db48fe14875d 100644 (file)
@@ -55,6 +55,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 75259f468d54043f712ad03bcaf6153bfcb09fa1..d848361beeb32b498b061703a37da940a438e98c 100644 (file)
@@ -49,6 +49,7 @@ required:
   - compatible
   - clocks
   - clock-names
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 788825105f24d51ed87ea301b88f9922ff01e7fa..513d6fd892494db889d3924b21775229304447df 100644 (file)
@@ -35,7 +35,6 @@ required:
   - reg
   - '#clock-cells'
   - '#reset-cells'
-  - '#power-domain-cells'
 
 additionalProperties: true
 
index 0518ea963cddef346cd170e09fd5009aa1cb62f8..79bb90dbe4c1a1b48832e5424d83735fb290d759 100644 (file)
@@ -33,28 +33,16 @@ properties:
       - const: gcc_gpu_gpll0_clk
       - const: gcc_gpu_gpll0_div_clk
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index f57aceddac6bed80406da4c87f225d0b52da0d27..0858fd63528224bab163a2abee1dd91ab0155172 100644 (file)
@@ -56,25 +56,10 @@ properties:
   vdd-gfx-supply:
     description: Regulator supply for the VDD_GFX pads
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
 # Require that power-domains and vdd-gfx-supply are not both present
@@ -83,7 +68,10 @@ not:
     - power-domains
     - vdd-gfx-supply
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index ef84a0c95f7ee1a6cdf444213550d4e7dda711f7..489d0fc5607c0a6bfb952c69adfd2123b8bdf93c 100644 (file)
@@ -33,6 +33,8 @@ properties:
       - description: UNIPHY RX clock source
       - description: UNIPHY TX clk source
 
+  '#power-domain-cells': false
+
 required:
   - compatible
   - clocks
@@ -58,6 +60,5 @@ examples:
                <&uniphy_tx_clk>;
       #clock-cells = <1>;
       #reset-cells = <1>;
-      #power-domain-cells = <1>;
     };
 ...
index 718fe0625424e055e9bfc848ecbbc51b875ab18b..adc30d84fa8f0b7e5835b293fb178db89e84c55a 100644 (file)
@@ -30,6 +30,8 @@ properties:
       - description: PCIE 2lane x1 PHY pipe clock source (For second lane)
       - description: USB PCIE wrapper pipe clock source
 
+  '#power-domain-cells': false
+
 required:
   - compatible
   - clocks
@@ -47,7 +49,6 @@ examples:
                <&pcie_2lane_phy_pipe_clk_x1>,
                <&usb_pcie_wrapper_pipe_clk>;
       #clock-cells = <1>;
-      #power-domain-cells = <1>;
       #reset-cells = <1>;
     };
 ...
index 944a0ea79cd6b5243d11190d2c1629372f03b789..27ae9938febc033e8f156d6ab0a1d58c2279e58e 100644 (file)
@@ -33,6 +33,11 @@ properties:
       - description: PCIE30 PHY3 pipe clock source
       - description: USB3 PHY pipe clock source
 
+  '#power-domain-cells': false
+
+  '#interconnect-cells':
+    const: 1
+
 required:
   - compatible
   - clocks
@@ -57,6 +62,5 @@ examples:
                <&usb3phy_0_cc_pipe_clk>;
       #clock-cells = <1>;
       #reset-cells = <1>;
-      #power-domain-cells = <1>;
     };
 ...
index 7b271ae210a3519556a39e1c18bddbbfa8e422b5..b9b218ef9b68d21ebc7c55a731c9911bb57c9e46 100644 (file)
@@ -29,28 +29,16 @@ properties:
       - const: xo
       - const: gpll0
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
diff --git a/Bindings/clock/qcom,qca8k-nsscc.yaml b/Bindings/clock/qcom,qca8k-nsscc.yaml
new file mode 100644 (file)
index 0000000..6147338
--- /dev/null
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,qca8k-nsscc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm NSS Clock & Reset Controller on QCA8386/QCA8084
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+  - Luo Jie <quic_luoj@quicinc.com>
+
+description: |
+  Qualcomm NSS clock control module provides the clocks and resets
+  on QCA8386(switch mode)/QCA8084(PHY mode)
+
+  See also::
+    include/dt-bindings/clock/qcom,qca8k-nsscc.h
+    include/dt-bindings/reset/qcom,qca8k-nsscc.h
+
+properties:
+  compatible:
+    oneOf:
+      - const: qcom,qca8084-nsscc
+      - items:
+          - enum:
+              - qcom,qca8082-nsscc
+              - qcom,qca8085-nsscc
+              - qcom,qca8384-nsscc
+              - qcom,qca8385-nsscc
+              - qcom,qca8386-nsscc
+          - const: qcom,qca8084-nsscc
+
+  clocks:
+    items:
+      - description: Chip reference clock source
+      - description: UNIPHY0 RX 312P5M/125M clock source
+      - description: UNIPHY0 TX 312P5M/125M clock source
+      - description: UNIPHY1 RX 312P5M/125M clock source
+      - description: UNIPHY1 TX 312P5M/125M clock source
+      - description: UNIPHY1 RX 312P5M clock source
+      - description: UNIPHY1 TX 312P5M clock source
+
+  reg:
+    items:
+      - description: MDIO bus address for Clock & Reset Controller register
+
+  reset-gpios:
+    description: GPIO connected to the chip
+    maxItems: 1
+
+required:
+  - compatible
+  - clocks
+  - reg
+  - reset-gpios
+
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    mdio {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      clock-controller@18 {
+        compatible = "qcom,qca8084-nsscc";
+        reg = <0x18>;
+        reset-gpios = <&tlmm 51 GPIO_ACTIVE_LOW>;
+        clocks = <&pcs0_pll>,
+                 <&qca8k_uniphy0_rx>,
+                 <&qca8k_uniphy0_tx>,
+                 <&qca8k_uniphy1_rx>,
+                 <&qca8k_uniphy1_tx>,
+                 <&qca8k_uniphy1_rx312p5m>,
+                 <&qca8k_uniphy1_tx312p5m>;
+        #clock-cells = <1>;
+        #reset-cells = <1>;
+        #power-domain-cells = <1>;
+      };
+    };
+...
index 4a00f2d416842ea592443bdea92e505032258d5b..243be4f76db3b69b522408ad56bde877ace9e728 100644 (file)
@@ -37,28 +37,16 @@ properties:
       - const: dsi0_phy_pll_out_byteclk
       - const: dsi0_phy_pll_out_dsiclk
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
diff --git a/Bindings/clock/qcom,qcm2290-gpucc.yaml b/Bindings/clock/qcom,qcm2290-gpucc.yaml
new file mode 100644 (file)
index 0000000..7348808
--- /dev/null
@@ -0,0 +1,77 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,qcm2290-gpucc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Graphics Clock & Reset Controller on QCM2290
+
+maintainers:
+  - Konrad Dybcio <konradybcio@kernel.org>
+
+description: |
+  Qualcomm graphics clock control module provides the clocks, resets and power
+  domains on Qualcomm SoCs.
+
+  See also::
+    include/dt-bindings/clock/qcom,qcm2290-gpucc.h
+
+properties:
+  compatible:
+    const: qcom,qcm2290-gpucc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: AHB interface clock,
+      - description: SoC CXO clock
+      - description: GPLL0 main branch source
+      - description: GPLL0 div branch source
+
+  power-domains:
+    description:
+      A phandle and PM domain specifier for the CX power domain.
+    maxItems: 1
+
+  required-opps:
+    description:
+      A phandle to an OPP node describing required CX performance point.
+    maxItems: 1
+
+required:
+  - compatible
+  - clocks
+  - power-domains
+
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-qcm2290.h>
+    #include <dt-bindings/clock/qcom,rpmcc.h>
+    #include <dt-bindings/power/qcom-rpmpd.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        clock-controller@5990000 {
+            compatible = "qcom,qcm2290-gpucc";
+            reg = <0x0 0x05990000 0x0 0x9000>;
+            clocks = <&gcc GCC_GPU_CFG_AHB_CLK>,
+                     <&rpmcc RPM_SMD_XO_CLK_SRC>,
+                     <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+                     <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+            power-domains = <&rpmpd QCM2290_VDDCX>;
+            required-opps = <&rpmpd_opp_low_svs>;
+            #clock-cells = <1>;
+            #reset-cells = <1>;
+            #power-domain-cells = <1>;
+        };
+    };
+...
index d712b1a87e25f4aefe84ea5cd11c1ab23815408f..86befef0265061b849f6633ccf82b0f438b324b2 100644 (file)
@@ -31,6 +31,7 @@ properties:
 required:
   - compatible
   - clocks
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 0f641c235b138b0b628f55e7fa214403274365c7..addbd323fa6d7650f57866650bda655f3077bd8d 100644 (file)
@@ -46,6 +46,7 @@ properties:
 required:
   - compatible
   - clocks
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 1c9ce300a43524cbbc78225da817a91f9d71a695..0d8ea44d8141a61bf2e7fe6da06f4b56aed794f7 100644 (file)
@@ -37,28 +37,16 @@ properties:
       - const: dp_phy_pll_link_clk
       - const: dp_phy_pll_vco_div_clk
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index c42b0ef61385ff4b08a5d390cb99fb90de025c68..23177661be4030b8f540e0476c4d7ff144aa104e 100644 (file)
@@ -41,28 +41,16 @@ properties:
       - const: edp_phy_pll_link_clk
       - const: edp_phy_pll_vco_div_clk
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index 719844d7ea11a34fa99e864d8ad758777e92145e..220f4004f7fdcda4e3e14cf3f98b7e2b685a9f58 100644 (file)
@@ -46,28 +46,16 @@ properties:
       - const: dp_link_clk_divsel_ten
       - const: dp_vco_divided_clk_src_mux
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index 98921fa236b18e54aa6f0a8655dac896e0939e40..567182aba30060ed018d512a4b0ae0aca0ee4ed2 100644 (file)
@@ -41,6 +41,7 @@ properties:
 required:
   - compatible
   - clocks
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 5953c8d9243677b440e977b7b3c59df7738f2e17..0ac92d7871e12b70115a3830ce9545f0fc6b287a 100644 (file)
@@ -32,6 +32,7 @@ properties:
 required:
   - compatible
   - clocks
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index f802a2e7f8189aa9bd21ea72788358c984e20bfd..00be36683eb5d7a64380ea8f63209196651882f1 100644 (file)
@@ -28,27 +28,15 @@ properties:
       - description: Pixel clock from DSI PHY0
       - description: GPLL0 DISP DIV clock from GCC
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
 required:
   - compatible
-  - reg
   - clocks
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index cf19f44af77440920371975d36ae8a3f427be928..4ff17a91344badaf572b15f657f0c740ea1859b7 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Graphics Clock & Reset Controller on SM6115
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm graphics clock control module provides clocks, resets and power
index 374a1844a159a0e53752ef351bd2d5aaaf18bf05..10a9c96a97b6a1390736f701488311670017d911 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Graphics Clock & Reset Controller on SM6125
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm graphics clock control module provides clocks and power domains on
index fd6658cb793dbb32526f7208f29a7cde9fa027b2..c03b30f64f359abd03e61a543522c81ce542e274 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Camera Clock & Reset Controller on SM6350
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm camera clock control module provides the clocks, resets and  power
index 183b1c75dbdf3b1401f00f050158787c68669712..3cd422a645fd876b9f834a6f8389160f5aab4bf2 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Display Clock & Reset Controller on SM6375
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm display clock control module provides the clocks, resets and power
index 295d4bb1a9664eeb3c127ad48fe5dd133cb91020..de4e9066eeb835fd8215c40fed58c4b2baa28504 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Global Clock & Reset Controller on SM6375
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@somainline.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm global clock control module provides the clocks, resets and power
@@ -31,6 +31,7 @@ properties:
 required:
   - compatible
   - clocks
+  - '#power-domain-cells'
 
 unevaluatedProperties: false
 
index cf4cad76f6c9517ac244d72297c90cd747a8b24e..d9dd479c17bd63956a43055e007c3a612ef5b569 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Graphics Clock & Reset Controller on SM6375
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm graphics clock control module provides clocks, resets and power
diff --git a/Bindings/clock/qcom,sm7150-camcc.yaml b/Bindings/clock/qcom,sm7150-camcc.yaml
new file mode 100644 (file)
index 0000000..7be4b10
--- /dev/null
@@ -0,0 +1,60 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,sm7150-camcc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Camera Clock & Reset Controller on SM7150
+
+maintainers:
+  - Danila Tikhonov <danila@jiaxyga.com>
+  - David Wronek <david@mainlining.org>
+  - Jens Reidel <adrian@travitia.xyz>
+
+description: |
+  Qualcomm camera clock control module provides the clocks, resets and power
+  domains on SM7150.
+
+  See also:: include/dt-bindings/clock/qcom,sm7150-camcc.h
+
+properties:
+  compatible:
+    const: qcom,sm7150-camcc
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: Board XO Active-Only source
+      - description: Sleep clock source
+
+  power-domains:
+    maxItems: 1
+    description:
+      CX power domain.
+
+required:
+  - compatible
+  - clocks
+  - power-domains
+
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+    clock-controller@ad00000 {
+      compatible = "qcom,sm7150-camcc";
+      reg = <0xad00000 0x10000>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>,
+               <&rpmhcc RPMH_CXO_CLK_A>,
+               <&sleep_clk>;
+      power-domains = <&rpmhpd RPMHPD_CX>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+...
diff --git a/Bindings/clock/qcom,sm7150-dispcc.yaml b/Bindings/clock/qcom,sm7150-dispcc.yaml
new file mode 100644 (file)
index 0000000..b8d6e1d
--- /dev/null
@@ -0,0 +1,75 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,sm7150-dispcc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Display Clock & Reset Controller for SM7150
+
+maintainers:
+  - Danila Tikhonov <danila@jiaxyga.com>
+  - David Wronek <david@mainlining.org>
+  - Jens Reidel <adrian@travitia.xyz>
+
+description: |
+  Qualcomm display clock control module provides the clocks, resets and power
+  domains on SM7150.
+
+  See also:: include/dt-bindings/clock/qcom,sm7150-dispcc.h
+
+properties:
+  compatible:
+    const: qcom,sm7150-dispcc
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: Board Always On XO source
+      - description: GPLL0 source from GCC
+      - description: Sleep clock source
+      - description: Byte clock from MDSS DSI PHY0
+      - description: Pixel clock from MDSS DSI PHY0
+      - description: Byte clock from MDSS DSI PHY1
+      - description: Pixel clock from MDSS DSI PHY1
+      - description: Link clock from DP PHY
+      - description: VCO DIV clock from DP PHY
+
+  power-domains:
+    maxItems: 1
+    description:
+      CX power domain.
+
+required:
+  - compatible
+  - clocks
+  - power-domains
+
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,sm7150-gcc.h>
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+    clock-controller@af00000 {
+      compatible = "qcom,sm7150-dispcc";
+      reg = <0x0af00000 0x200000>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>,
+               <&rpmhcc RPMH_CXO_CLK_A>,
+               <&gcc GCC_DISP_GPLL0_CLK_SRC>,
+               <&sleep_clk>,
+               <&mdss_dsi0_phy 0>,
+               <&mdss_dsi0_phy 1>,
+               <&mdss_dsi1_phy 0>,
+               <&mdss_dsi1_phy 1>,
+               <&dp_phy 0>,
+               <&dp_phy 1>;
+      power-domains = <&rpmhpd RPMHPD_CX>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+...
index 0eb76d9d51c4d5b9c6ff06a00744d20854adbc63..4d7bbbf4ce8affb29f3bc3c825162c644f701f35 100644 (file)
@@ -30,6 +30,7 @@ properties:
 required:
   - compatible
   - clocks
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
diff --git a/Bindings/clock/qcom,sm7150-videocc.yaml b/Bindings/clock/qcom,sm7150-videocc.yaml
new file mode 100644 (file)
index 0000000..037ffc7
--- /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/clock/qcom,sm7150-videocc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Video Clock & Reset Controller on SM7150
+
+maintainers:
+  - Danila Tikhonov <danila@jiaxyga.com>
+  - David Wronek <david@mainlining.org>
+  - Jens Reidel <adrian@travitia.xyz>
+
+description: |
+  Qualcomm video clock control module provides the clocks, resets and power
+  domains on SM7150.
+
+  See also:: include/dt-bindings/clock/qcom,videocc-sm7150.h
+
+properties:
+  compatible:
+    const: qcom,sm7150-videocc
+
+  clocks:
+    items:
+      - description: Board XO source
+      - description: Board Always On XO source
+
+  power-domains:
+    maxItems: 1
+    description:
+      CX power domain.
+
+required:
+  - compatible
+  - clocks
+  - power-domains
+
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+    videocc: clock-controller@ab00000 {
+      compatible = "qcom,sm7150-videocc";
+      reg = <0x0ab00000 0x10000>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>,
+               <&rpmhcc RPMH_CXO_CLK_A>;
+      power-domains = <&rpmhpd RPMHPD_CX>;
+      #clock-cells = <1>;
+      #reset-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+...
index 46d1d91e3a01ef2d106f3b4986b5f9a4fb12d2c7..5c2ecec0624e35bde493ee7b39dbe8afbf295e2f 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm SM8350 Video Clock & Reset Controller
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm video clock control module provides the clocks, resets and power
index fa0e5b6b02b817c4673c8b3000d60d198a8b144b..f58edfc10f4c764548e466602d43d5f7a081b60e 100644 (file)
@@ -8,15 +8,17 @@ title: Qualcomm Camera Clock & Reset Controller on SM8450
 
 maintainers:
   - Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
+  - Jagadeesh Kona <quic_jkona@quicinc.com>
 
 description: |
   Qualcomm camera clock control module provides the clocks, resets and power
   domains on SM8450.
 
-  See also::
+  See also:
+    include/dt-bindings/clock/qcom,sc8280xp-camcc.h
     include/dt-bindings/clock/qcom,sm8450-camcc.h
     include/dt-bindings/clock/qcom,sm8550-camcc.h
-    include/dt-bindings/clock/qcom,sc8280xp-camcc.h
+    include/dt-bindings/clock/qcom,sm8650-camcc.h
     include/dt-bindings/clock/qcom,x1e80100-camcc.h
 
 allOf:
@@ -28,6 +30,7 @@ properties:
       - qcom,sc8280xp-camcc
       - qcom,sm8450-camcc
       - qcom,sm8550-camcc
+      - qcom,sm8650-camcc
       - qcom,x1e80100-camcc
 
   clocks:
index 2f22310b08a9d5f217975585b90372e5deddb4a1..4794c53793a89f2b69b93d24c50727d20af1f269 100644 (file)
@@ -40,18 +40,6 @@ properties:
       - description: Link clock from DP PHY3
       - description: VCO DIV clock from DP PHY3
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
   power-domains:
     description:
       A phandle and PM domain specifier for the MMCX power domain.
@@ -64,13 +52,13 @@ properties:
 
 required:
   - compatible
-  - reg
   - clocks
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index 36974309cf6964b821a06d4be73dfb599617c17d..d10bb002906e9f55f1f1dedc570f5e835181a504 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Graphics Clock & Reset Controller on SM8450
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm graphics clock control module provides the clocks, resets and power
@@ -34,27 +34,15 @@ properties:
       - description: GPLL0 main branch source
       - description: GPLL0 div branch source
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
 required:
   - compatible
-  - reg
   - clocks
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index bad8f019a8d311ec6bafc6515541ec399bc18f25..b2792b4bb554d651a7b4579f4ee540f352ce8a73 100644 (file)
@@ -8,21 +8,22 @@ title: Qualcomm Video Clock & Reset Controller on SM8450
 
 maintainers:
   - Taniya Das <quic_tdas@quicinc.com>
+  - Jagadeesh Kona <quic_jkona@quicinc.com>
 
 description: |
   Qualcomm video clock control module provides the clocks, resets and power
   domains on SM8450.
 
-  See also:: include/dt-bindings/clock/qcom,videocc-sm8450.h
+  See also:
+    include/dt-bindings/clock/qcom,sm8450-videocc.h
+    include/dt-bindings/clock/qcom,sm8650-videocc.h
 
 properties:
   compatible:
     enum:
       - qcom,sm8450-videocc
       - qcom,sm8550-videocc
-
-  reg:
-    maxItems: 1
+      - qcom,sm8650-videocc
 
   clocks:
     items:
@@ -39,26 +40,17 @@ properties:
     description:
       A phandle to an OPP node describing required MMCX performance point.
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
 required:
   - compatible
-  - reg
   - clocks
   - power-domains
   - required-opps
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index bad0260764d464b9bf360e50442016a610fa7915..c17035a180dbf3dde715a281bc54165122739618 100644 (file)
@@ -45,18 +45,6 @@ properties:
       - description: Link clock from DP PHY3
       - description: VCO DIV clock from DP PHY3
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
   power-domains:
     description:
       A phandle and PM domain specifier for the MMCX power domain.
@@ -69,13 +57,13 @@ properties:
 
 required:
   - compatible
-  - reg
   - clocks
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
-additionalProperties: false
+allOf:
+  - $ref: qcom,gcc.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index 0c706de31cf11c35fef4edb597bb8d0622ff948d..d83b64dcce4faa91b0fabb2e7ed3e595e59ac2ed 100644 (file)
@@ -34,6 +34,7 @@ properties:
 required:
   - compatible
   - clocks
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index b54761cc8674b332d92cf993ec417c86866dadb4..976f29cce809c4a42393b202090813e2e39cf010 100644 (file)
@@ -35,6 +35,7 @@ properties:
 required:
   - compatible
   - clocks
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
index 6999e36ace1b6879445f02ab094214ddb778f408..340c7e5cf98024dedad6d7db4fea10e9f8077419 100644 (file)
@@ -37,18 +37,6 @@ properties:
     minItems: 1
     maxItems: 3
 
-  '#clock-cells':
-    const: 1
-
-  '#reset-cells':
-    const: 1
-
-  '#power-domain-cells':
-    const: 1
-
-  reg:
-    maxItems: 1
-
   power-domains:
     description:
       A phandle and PM domain specifier for the MMCX power domain.
@@ -61,21 +49,19 @@ properties:
 
 required:
   - compatible
-  - reg
   - clocks
   - clock-names
-  - '#clock-cells'
-  - '#reset-cells'
   - '#power-domain-cells'
 
 allOf:
+  - $ref: qcom,gcc.yaml#
+
   - if:
       properties:
         compatible:
           enum:
             - qcom,sc7180-videocc
             - qcom,sdm845-videocc
-            - qcom,sm8150-videocc
     then:
       properties:
         clocks:
@@ -101,6 +87,22 @@ allOf:
             - const: bi_tcxo
             - const: bi_tcxo_ao
 
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,sm8150-videocc
+    then:
+      properties:
+        clocks:
+          items:
+            - description: AHB
+            - description: Board XO source
+        clock-names:
+          items:
+            - const: iface
+            - const: bi_tcxo
+
   - if:
       properties:
         compatible:
@@ -119,7 +121,7 @@ allOf:
             - const: bi_tcxo
             - const: bi_tcxo_ao
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 14a796dbf8bc6254f81c416b4e39f23ef7f4dfe8..5951a60ab0815e4f8d7b67f4c17b5e504d65092b 100644 (file)
@@ -41,6 +41,7 @@ required:
   - compatible
   - clocks
   - power-domains
+  - '#power-domain-cells'
 
 allOf:
   - $ref: qcom,gcc.yaml#
diff --git a/Bindings/clock/qoriq-clock.txt b/Bindings/clock/qoriq-clock.txt
deleted file mode 100644 (file)
index 10119d9..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-* Clock Block on Freescale QorIQ Platforms
-
-Freescale QorIQ chips take primary clocking input from the external
-SYSCLK signal. The SYSCLK input (frequency) is multiplied using
-multiple phase locked loops (PLL) to create a variety of frequencies
-which can then be passed to a variety of internal logic, including
-cores and peripheral IP blocks.
-Please refer to the Reference Manual for details.
-
-All references to "1.0" and "2.0" refer to the QorIQ chassis version to
-which the chip complies.
-
-Chassis Version                Example Chips
----------------                -------------
-1.0                    p4080, p5020, p5040
-2.0                    t4240, b4860
-
-1. Clock Block Binding
-
-Required properties:
-- compatible: Should contain a chip-specific clock block compatible
-       string and (if applicable) may contain a chassis-version clock
-       compatible string.
-
-       Chip-specific strings are of the form "fsl,<chip>-clockgen", such as:
-       * "fsl,p2041-clockgen"
-       * "fsl,p3041-clockgen"
-       * "fsl,p4080-clockgen"
-       * "fsl,p5020-clockgen"
-       * "fsl,p5040-clockgen"
-       * "fsl,t1023-clockgen"
-       * "fsl,t1024-clockgen"
-       * "fsl,t1040-clockgen"
-       * "fsl,t1042-clockgen"
-       * "fsl,t2080-clockgen"
-       * "fsl,t2081-clockgen"
-       * "fsl,t4240-clockgen"
-       * "fsl,b4420-clockgen"
-       * "fsl,b4860-clockgen"
-       * "fsl,ls1012a-clockgen"
-       * "fsl,ls1021a-clockgen"
-       * "fsl,ls1028a-clockgen"
-       * "fsl,ls1043a-clockgen"
-       * "fsl,ls1046a-clockgen"
-       * "fsl,ls1088a-clockgen"
-       * "fsl,ls2080a-clockgen"
-       * "fsl,lx2160a-clockgen"
-       Chassis-version clock strings include:
-       * "fsl,qoriq-clockgen-1.0": for chassis 1.0 clocks
-       * "fsl,qoriq-clockgen-2.0": for chassis 2.0 clocks
-- reg: Describes the address of the device's resources within the
-       address space defined by its parent bus, and resource zero
-       represents the clock register set
-
-Optional properties:
-- ranges: Allows valid translation between child's address space and
-       parent's. Must be present if the device has sub-nodes.
-- #address-cells: Specifies the number of cells used to represent
-       physical base addresses.  Must be present if the device has
-       sub-nodes and set to 1 if present
-- #size-cells: Specifies the number of cells used to represent
-       the size of an address. Must be present if the device has
-       sub-nodes and set to 1 if present
-- clock-frequency: Input system clock frequency (SYSCLK)
-- clocks: If clock-frequency is not specified, sysclk may be provided
-       as an input clock.  Either clock-frequency or clocks must be
-       provided.
-       A second input clock, called "coreclk", may be provided if
-       core PLLs are based on a different input clock from the
-       platform PLL.
-- clock-names: Required if a coreclk is present.  Valid names are
-       "sysclk" and "coreclk".
-
-2. Clock Provider
-
-The clockgen node should act as a clock provider, though in older device
-trees the children of the clockgen node are the clock providers.
-
-When the clockgen node is a clock provider, #clock-cells = <2>.
-The first cell of the clock specifier is the clock type, and the
-second cell is the clock index for the specified type.
-
-       Type#   Name            Index Cell
-       0       sysclk          must be 0
-       1       cmux            index (n in CLKCnCSR)
-       2       hwaccel         index (n in CLKCGnHWACSR)
-       3       fman            0 for fm1, 1 for fm2
-       4       platform pll    n=pll/(n+1). For example, when n=1,
-                               that means output_freq=PLL_freq/2.
-       5       coreclk         must be 0
-
-3. Example
-
-       clockgen: global-utilities@e1000 {
-               compatible = "fsl,p5020-clockgen", "fsl,qoriq-clockgen-1.0";
-               clock-frequency = <133333333>;
-               reg = <0xe1000 0x1000>;
-               #clock-cells = <2>;
-       };
-
-       fman@400000 {
-               ...
-               clocks = <&clockgen 3 0>;
-               ...
-       };
-}
-4. Legacy Child Nodes
-
-NOTE: These nodes are deprecated.  Kernels should continue to support
-device trees with these nodes, but new device trees should not use them.
-
-Most of the bindings are from the common clock binding[1].
- [1] Documentation/devicetree/bindings/clock/clock-bindings.txt
-
-Required properties:
-- compatible : Should include one of the following:
-       * "fsl,qoriq-core-pll-1.0" for core PLL clocks (v1.0)
-       * "fsl,qoriq-core-pll-2.0" for core PLL clocks (v2.0)
-       * "fsl,qoriq-core-mux-1.0" for core mux clocks (v1.0)
-       * "fsl,qoriq-core-mux-2.0" for core mux clocks (v2.0)
-       * "fsl,qoriq-sysclk-1.0": for input system clock (v1.0).
-               It takes parent's clock-frequency as its clock.
-       * "fsl,qoriq-sysclk-2.0": for input system clock (v2.0).
-               It takes parent's clock-frequency as its clock.
-       * "fsl,qoriq-platform-pll-1.0" for the platform PLL clock (v1.0)
-       * "fsl,qoriq-platform-pll-2.0" for the platform PLL clock (v2.0)
-- #clock-cells: From common clock binding. The number of cells in a
-       clock-specifier. Should be <0> for "fsl,qoriq-sysclk-[1,2].0"
-       clocks, or <1> for "fsl,qoriq-core-pll-[1,2].0" clocks.
-       For "fsl,qoriq-core-pll-[1,2].0" clocks, the single
-       clock-specifier cell may take the following values:
-       * 0 - equal to the PLL frequency
-       * 1 - equal to the PLL frequency divided by 2
-       * 2 - equal to the PLL frequency divided by 4
-
-Recommended properties:
-- clocks: Should be the phandle of input parent clock
-- clock-names: From common clock binding, indicates the clock name
-- clock-output-names: From common clock binding, indicates the names of
-       output clocks
-- reg: Should be the offset and length of clock block base address.
-       The length should be 4.
-
-Legacy Example:
-/ {
-       clockgen: global-utilities@e1000 {
-               compatible = "fsl,p5020-clockgen", "fsl,qoriq-clockgen-1.0";
-               ranges = <0x0 0xe1000 0x1000>;
-               clock-frequency = <133333333>;
-               reg = <0xe1000 0x1000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               sysclk: sysclk {
-                       #clock-cells = <0>;
-                       compatible = "fsl,qoriq-sysclk-1.0";
-                       clock-output-names = "sysclk";
-               };
-
-               pll0: pll0@800 {
-                       #clock-cells = <1>;
-                       reg = <0x800 0x4>;
-                       compatible = "fsl,qoriq-core-pll-1.0";
-                       clocks = <&sysclk>;
-                       clock-output-names = "pll0", "pll0-div2";
-               };
-
-               pll1: pll1@820 {
-                       #clock-cells = <1>;
-                       reg = <0x820 0x4>;
-                       compatible = "fsl,qoriq-core-pll-1.0";
-                       clocks = <&sysclk>;
-                       clock-output-names = "pll1", "pll1-div2";
-               };
-
-               mux0: mux0@0 {
-                       #clock-cells = <0>;
-                       reg = <0x0 0x4>;
-                       compatible = "fsl,qoriq-core-mux-1.0";
-                       clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>;
-                       clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2";
-                       clock-output-names = "cmux0";
-               };
-
-               mux1: mux1@20 {
-                       #clock-cells = <0>;
-                       reg = <0x20 0x4>;
-                       compatible = "fsl,qoriq-core-mux-1.0";
-                       clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>;
-                       clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2";
-                       clock-output-names = "cmux1";
-               };
-
-               platform-pll: platform-pll@c00 {
-                       #clock-cells = <1>;
-                       reg = <0xc00 0x4>;
-                       compatible = "fsl,qoriq-platform-pll-1.0";
-                       clocks = <&sysclk>;
-                       clock-output-names = "platform-pll", "platform-pll-div2";
-               };
-       };
-};
-
-Example for legacy clock consumer:
-
-/ {
-       cpu0: PowerPC,e5500@0 {
-               ...
-               clocks = <&mux0>;
-               ...
-       };
-};
index 4e3b0c45124ae648ec75bbf092e9d645e727d417..0440f23da0591d3e47b3d207e5664fcee8cac13a 100644 (file)
@@ -62,7 +62,7 @@ properties:
 
   '#reset-cells':
     description:
-      The single reset specifier cell must be the module number, as defined in
+      The single reset specifier cell must be the reset number, as defined in
       <dt-bindings/clock/r9a0*-cpg.h>.
     const: 1
 
diff --git a/Bindings/clock/sophgo,sg2042-clkgen.yaml b/Bindings/clock/sophgo,sg2042-clkgen.yaml
new file mode 100644 (file)
index 0000000..e7a9255
--- /dev/null
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/sophgo,sg2042-clkgen.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sophgo SG2042 Clock Generator for divider/mux/gate
+
+maintainers:
+  - Chen Wang <unicorn_wang@outlook.com>
+
+properties:
+  compatible:
+    const: sophgo,sg2042-clkgen
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Main PLL
+      - description: Fixed PLL
+      - description: DDR PLL 0
+      - description: DDR PLL 1
+
+  clock-names:
+    items:
+      - const: mpll
+      - const: fpll
+      - const: dpll0
+      - const: dpll1
+
+  '#clock-cells':
+    const: 1
+    description:
+      See <dt-bindings/clock/sophgo,sg2042-clkgen.h> for valid indices.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@30012000 {
+      compatible = "sophgo,sg2042-clkgen";
+      reg = <0x30012000 0x1000>;
+      clocks = <&pllclk 0>,
+               <&pllclk 1>,
+               <&pllclk 2>,
+               <&pllclk 3>;
+      clock-names = "mpll",
+                    "fpll",
+                    "dpll0",
+                    "dpll1";
+      #clock-cells = <1>;
+    };
diff --git a/Bindings/clock/sophgo,sg2042-pll.yaml b/Bindings/clock/sophgo,sg2042-pll.yaml
new file mode 100644 (file)
index 0000000..1a417a6
--- /dev/null
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/sophgo,sg2042-pll.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sophgo SG2042 PLL Clock Generator
+
+maintainers:
+  - Chen Wang <unicorn_wang@outlook.com>
+
+properties:
+  compatible:
+    const: sophgo,sg2042-pll
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Oscillator(Clock Generation IC) for Main/Fixed PLL (25 MHz)
+      - description: Oscillator(Clock Generation IC) for DDR PLL 0 (25 MHz)
+      - description: Oscillator(Clock Generation IC) for DDR PLL 1 (25 MHz)
+
+  clock-names:
+    items:
+      - const: cgi_main
+      - const: cgi_dpll0
+      - const: cgi_dpll1
+
+  '#clock-cells':
+    const: 1
+    description:
+      See <dt-bindings/clock/sophgo,sg2042-pll.h> for valid indices.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@10000000 {
+      compatible = "sophgo,sg2042-pll";
+      reg = <0x10000000 0x10000>;
+      clocks = <&cgi_main>, <&cgi_dpll0>, <&cgi_dpll1>;
+      clock-names = "cgi_main", "cgi_dpll0", "cgi_dpll1";
+      #clock-cells = <1>;
+    };
diff --git a/Bindings/clock/sophgo,sg2042-rpgate.yaml b/Bindings/clock/sophgo,sg2042-rpgate.yaml
new file mode 100644 (file)
index 0000000..1491fb8
--- /dev/null
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/sophgo,sg2042-rpgate.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sophgo SG2042 Gate Clock Generator for RP(riscv processors) subsystem
+
+maintainers:
+  - Chen Wang <unicorn_wang@outlook.com>
+
+properties:
+  compatible:
+    const: sophgo,sg2042-rpgate
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Gate clock for RP subsystem
+
+  clock-names:
+    items:
+      - const: rpgate
+
+  '#clock-cells':
+    const: 1
+    description:
+      See <dt-bindings/clock/sophgo,sg2042-rpgate.h> for valid indices.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    clock-controller@20000000 {
+      compatible = "sophgo,sg2042-rpgate";
+      reg = <0x20000000 0x10000>;
+      clocks = <&clkgen 85>;
+      clock-names = "rpgate";
+      #clock-cells = <1>;
+    };
diff --git a/Bindings/clock/sprd,sc9860-clk.txt b/Bindings/clock/sprd,sc9860-clk.txt
deleted file mode 100644 (file)
index aaaf02c..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-Spreadtrum SC9860 Clock Binding
-------------------------
-
-Required properties:
-- compatible: should contain the following compatible strings:
-       - "sprd,sc9860-pmu-gate"
-       - "sprd,sc9860-pll"
-       - "sprd,sc9860-ap-clk"
-       - "sprd,sc9860-aon-prediv"
-       - "sprd,sc9860-apahb-gate"
-       - "sprd,sc9860-aon-gate"
-       - "sprd,sc9860-aonsecure-clk"
-       - "sprd,sc9860-agcp-gate"
-       - "sprd,sc9860-gpu-clk"
-       - "sprd,sc9860-vsp-clk"
-       - "sprd,sc9860-vsp-gate"
-       - "sprd,sc9860-cam-clk"
-       - "sprd,sc9860-cam-gate"
-       - "sprd,sc9860-disp-clk"
-       - "sprd,sc9860-disp-gate"
-       - "sprd,sc9860-apapb-gate"
-
-- #clock-cells: must be 1
-
-- clocks : Should be the input parent clock(s) phandle for the clock, this
-          property here just simply shows which clock group the clocks'
-          parents are in, since each clk node would represent many clocks
-          which are defined in the driver.  The detailed dependency
-          relationship (i.e. how many parents and which are the parents)
-          are implemented in driver code.
-
-Optional properties:
-
-- reg: Contain the registers base address and length. It must be configured
-       only if no 'sprd,syscon' under the node.
-
-- sprd,syscon: phandle to the syscon which is in the same address area with
-              the clock, and so we can get regmap for the clocks from the
-              syscon device.
-
-Example:
-
-       pmu_gate: pmu-gate {
-               compatible = "sprd,sc9860-pmu-gate";
-               sprd,syscon = <&pmu_regs>;
-               clocks = <&ext_26m>;
-               #clock-cells = <1>;
-       };
-
-       pll: pll {
-               compatible = "sprd,sc9860-pll";
-               sprd,syscon = <&ana_regs>;
-               clocks = <&pmu_gate 0>;
-               #clock-cells = <1>;
-       };
-
-       ap_clk: clock-controller@20000000 {
-               compatible = "sprd,sc9860-ap-clk";
-               reg = <0 0x20000000 0 0x400>;
-               clocks = <&ext_26m>, <&pll 0>,
-                        <&pmu_gate 0>;
-               #clock-cells = <1>;
-       };
diff --git a/Bindings/clock/sprd,sc9860-clk.yaml b/Bindings/clock/sprd,sc9860-clk.yaml
new file mode 100644 (file)
index 0000000..502cd72
--- /dev/null
@@ -0,0 +1,159 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/sprd,sc9860-clk.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Spreadtrum SC9860 clock
+
+maintainers:
+  - Orson Zhai <orsonzhai@gmail.com>
+  - Baolin Wang <baolin.wang7@gmail.com>
+  - Chunyan Zhang <zhang.lyra@gmail.com>
+
+properties:
+  compatible:
+    enum:
+      - sprd,sc9860-agcp-gate
+      - sprd,sc9860-aonsecure-clk
+      - sprd,sc9860-aon-gate
+      - sprd,sc9860-aon-prediv
+      - sprd,sc9860-apahb-gate
+      - sprd,sc9860-apapb-gate
+      - sprd,sc9860-ap-clk
+      - sprd,sc9860-cam-clk
+      - sprd,sc9860-cam-gate
+      - sprd,sc9860-disp-clk
+      - sprd,sc9860-disp-gate
+      - sprd,sc9860-gpu-clk
+      - sprd,sc9860-pll
+      - sprd,sc9860-pmu-gate
+      - sprd,sc9860-vsp-clk
+      - sprd,sc9860-vsp-gate
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    minItems: 1
+    maxItems: 3
+
+  '#clock-cells':
+    const: 1
+
+  sprd,syscon:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      phandle to the syscon which is in the same address area with the
+      clock, and so we can get regmap for the clocks from the syscon device
+
+required:
+  - compatible
+  - clocks
+  - '#clock-cells'
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - sprd,sc9860-agcp-gate
+              - sprd,sc9860-aon-gate
+              - sprd,sc9860-apahb-gate
+              - sprd,sc9860-apapb-gate
+              - sprd,sc9860-cam-gate
+              - sprd,sc9860-disp-gate
+              - sprd,sc9860-gpu-clk
+              - sprd,sc9860-pll
+              - sprd,sc9860-pmu-gate
+              - sprd,sc9860-vsp-gate
+    then:
+      properties:
+        clocks:
+          maxItems: 1
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - sprd,sc9860-aonsecure-clk
+              - sprd,sc9860-cam-clk
+              - sprd,sc9860-disp-clk
+              - sprd,sc9860-vsp-clk
+    then:
+      properties:
+        clocks:
+          minItems: 2
+          maxItems: 2
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - sprd,sc9860-aon-prediv
+              - sprd,sc9860-ap-clk
+    then:
+      properties:
+        clocks:
+          minItems: 3
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - sprd,sc9860-aonsecure-clk
+              - sprd,sc9860-aon-prediv
+              - sprd,sc9860-ap-clk
+              - sprd,sc9860-cam-clk
+              - sprd,sc9860-disp-clk
+              - sprd,sc9860-gpu-clk
+              - sprd,sc9860-vsp-clk
+    then:
+      required:
+        - reg
+      properties:
+        sprd,syscon: false
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - sprd,sc9860-agcp-gate
+              - sprd,sc9860-aon-gate
+              - sprd,sc9860-apahb-gate
+              - sprd,sc9860-apapb-gate
+              - sprd,sc9860-cam-gate
+              - sprd,sc9860-disp-gate
+              - sprd,sc9860-pll
+              - sprd,sc9860-pmu-gate
+              - sprd,sc9860-vsp-gate
+    then:
+      required:
+        - sprd,syscon
+      properties:
+        reg: false
+
+additionalProperties: false
+
+examples:
+  - |
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      pmu-gate {
+        compatible = "sprd,sc9860-pmu-gate";
+        clocks = <&ext_26m>;
+        #clock-cells = <1>;
+        sprd,syscon = <&pmu_regs>;
+      };
+
+      clock-controller@20000000 {
+        compatible = "sprd,sc9860-ap-clk";
+        reg = <0 0x20000000 0 0x400>;
+        clocks = <&ext_26m>, <&pll 0>, <&pmu_gate 0>;
+        #clock-cells = <1>;
+      };
+    };
+...
diff --git a/Bindings/clock/stericsson,abx500.txt b/Bindings/clock/stericsson,abx500.txt
deleted file mode 100644 (file)
index dbaa886..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-Clock bindings for ST-Ericsson ABx500 clocks
-
-Required properties :
-- compatible : shall contain the following:
-  "stericsson,ab8500-clk"
-- #clock-cells should be <1>
-
-The ABx500 clocks need to be placed as a subnode of an AB8500
-device node, see mfd/ab8500.txt
-
-All available clocks are defined as preprocessor macros in
-dt-bindings/clock/ste-ab8500.h header and can be used in device
-tree sources.
-
-Example:
-
-clock-controller {
-       compatible = "stericsson,ab8500-clk";
-       #clock-cells = <1>;
-};
diff --git a/Bindings/clock/thead,th1520-clk-ap.yaml b/Bindings/clock/thead,th1520-clk-ap.yaml
new file mode 100644 (file)
index 0000000..0129bd0
--- /dev/null
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/thead,th1520-clk-ap.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: T-HEAD TH1520 AP sub-system clock controller
+
+description: |
+  The T-HEAD TH1520 AP sub-system clock controller configures the
+  CPU, DPU, GMAC and TEE PLLs.
+
+  SoC reference manual
+  https://openbeagle.org/beaglev-ahead/beaglev-ahead/-/blob/main/docs/TH1520%20System%20User%20Manual.pdf
+
+maintainers:
+  - Jisheng Zhang <jszhang@kernel.org>
+  - Wei Fu <wefu@redhat.com>
+  - Drew Fustini <dfustini@tenstorrent.com>
+
+properties:
+  compatible:
+    const: thead,th1520-clk-ap
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: main oscillator (24MHz)
+
+  "#clock-cells":
+    const: 1
+    description:
+      See <dt-bindings/clock/thead,th1520-clk-ap.h> for valid indices.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - "#clock-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/thead,th1520-clk-ap.h>
+    clock-controller@ef010000 {
+        compatible = "thead,th1520-clk-ap";
+        reg = <0xef010000 0x1000>;
+        clocks = <&osc>;
+        #clock-cells = <1>;
+    };
index 0a9d6a4c4b66dda7efc9cde5a5e2ed43cd4c435c..66e8e66ca17535214f6743539a9352890541832f 100644 (file)
@@ -36,7 +36,7 @@ properties:
 
       The second cell should contain the clock ID.
 
-      Please see  http://processors.wiki.ti.com/index.php/TISCI for
+      Please see https://software-dl.ti.com/tisci/esd/latest/index.html for
       protocol documentation for the values to be used for different devices.
 
 additionalProperties: false
diff --git a/Bindings/clock/ti-keystone-pllctrl.txt b/Bindings/clock/ti-keystone-pllctrl.txt
deleted file mode 100644 (file)
index c35cb6c..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-* Device tree bindings for Texas Instruments keystone pll controller
-
-The main pll controller used to drive theC66x CorePacs, the switch fabric,
-and a majority of the peripheral clocks (all but the ARM CorePacs, DDR3 and
-the NETCP modules) requires a PLL Controller to manage the various clock
-divisions, gating, and synchronization.
-
-Required properties:
-
-- compatible:          "ti,keystone-pllctrl", "syscon"
-
-- reg:                 contains offset/length value for pll controller
-                       registers space.
-
-Example:
-
-pllctrl: pll-controller@02310000 {
-       compatible = "ti,keystone-pllctrl", "syscon";
-       reg = <0x02310000 0x200>;
-};
index 85f1ff83afe72ab1c53fbfadcb3c616844bcac54..c882ab5fcf1f2a7a7970b0c14ac7768e64909ce2 100644 (file)
@@ -11,7 +11,9 @@ maintainers:
 
 properties:
   compatible:
-    const: ti,am3352-eqep
+    enum:
+      - ti,am3352-eqep
+      - ti,am62-eqep
 
   reg:
     maxItems: 1
@@ -21,19 +23,35 @@ properties:
     maxItems: 1
 
   clocks:
-    description: The clock that determines the SYSCLKOUT rate for the eQEP
-      peripheral.
+    description: The functional and interface clock that determines the clock
+      rate for the eQEP peripheral.
     maxItems: 1
 
   clock-names:
     const: sysclkout
 
+  power-domains:
+    maxItems: 1
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - ti,am62-eqep
+    then:
+      properties:
+        clock-names: false
+
+      required:
+        - power-domains
+
 required:
   - compatible
   - reg
   - interrupts
   - clocks
-  - clock-names
 
 additionalProperties: false
 
@@ -43,7 +61,6 @@ examples:
         compatible = "ti,am3352-eqep";
         reg = <0x180 0x80>;
         clocks = <&l4ls_gclk>;
-        clock-names = "sysclkout";
         interrupts = <79>;
     };
 
index 4287678aa79f458314172f6fb2543ef30bdc0057..da47b601c165ec0653a62812f55b0463f35e427b 100644 (file)
@@ -18,6 +18,7 @@ properties:
       - allwinner,sun50i-a64-crypto
       - allwinner,sun50i-h5-crypto
       - allwinner,sun50i-h6-crypto
+      - allwinner,sun50i-h616-crypto
 
   reg:
     maxItems: 1
@@ -49,6 +50,7 @@ if:
     compatible:
       enum:
         - allwinner,sun20i-d1-crypto
+        - allwinner,sun50i-h616-crypto
 then:
   properties:
     clocks:
index 0c85894648d865b7be03bb1adf7fc38ac9cafabb..84d68b8cfccc86fd87a6a0fd2b70af12e51eb8a4 100644 (file)
@@ -71,6 +71,10 @@ properties:
       - const: iahb
       - const: venci
 
+  power-domains:
+    maxItems: 1
+    description: phandle to the associated power domain
+
   resets:
     minItems: 3
 
@@ -129,6 +133,7 @@ examples:
         reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
         clocks = <&clk_isfr>, <&clk_iahb>, <&clk_venci>;
         clock-names = "isfr", "iahb", "venci";
+        power-domains = <&pd_vpu>;
         #address-cells = <1>;
         #size-cells = <0>;
 
index 4b7e54a8f037fb0fc81750d674594a4345091adb..33481381cccc1ce94b6487db587a831d385eea64 100644 (file)
@@ -45,6 +45,19 @@ properties:
       - const: isfr
     additionalItems: true
 
+  ddc-i2c-bus:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    deprecated: true
+    description:
+      The HDMI DDC bus can be connected to either a system I2C master or the
+      functionally-reduced I2C master contained in the DWC HDMI. When connected
+      to a system I2C master this property contains a phandle to that I2C
+      master controller.
+
+      This property is deprecated, the system I2C master controller should
+      be referenced through the ddc-i2c-bus property of the HDMI connector
+      node.
+
   interrupts:
     maxItems: 1
 
index ae894d996d21fc179f887ae6497ea51a8ad86076..2ad0cd6dd49e067bc6b519862998e4f812412021 100644 (file)
@@ -25,8 +25,8 @@ properties:
 
   reg:
     enum:
-      - 0x68
       - 0x0f
+      - 0x68
     description: |
         i2c address of the bridge, 0x68 or 0x0f, depending on bootstrap pins
 
index 7979cf07f119978e903c6ea21674f92d85dfd502..180c4b510fb12749f059f752e7fa3215c00b99e3 100644 (file)
@@ -31,14 +31,6 @@ properties:
   clock-names:
     maxItems: 2
 
-  ddc-i2c-bus:
-    $ref: /schemas/types.yaml#/definitions/phandle
-    description:
-      The HDMI DDC bus can be connected to either a system I2C master or the
-      functionally-reduced I2C master contained in the DWC HDMI. When connected
-      to a system I2C master this property contains a phandle to that I2C
-      master controller.
-
   gpr:
     $ref: /schemas/types.yaml#/definitions/phandle
     description:
index b4c28e96dd55534b9439af0bec4076f6f71e8614..cf24434854ff08038838050db25734b2e8a191ac 100644 (file)
@@ -36,6 +36,7 @@ properties:
               - mediatek,mt8188-disp-aal
               - mediatek,mt8192-disp-aal
               - mediatek,mt8195-disp-aal
+              - mediatek,mt8365-disp-aal
           - const: mediatek,mt8183-disp-aal
 
   reg:
index 8c2a737237f21fa4bf96d5ce1b8aa6a8aa343c00..9f8366763831c0f373f96d688f109dca60f80ba3 100644 (file)
@@ -24,6 +24,9 @@ properties:
       - enum:
           - mediatek,mt8183-disp-ccorr
           - mediatek,mt8192-disp-ccorr
+      - items:
+          - const: mediatek,mt8365-disp-ccorr
+          - const: mediatek,mt8183-disp-ccorr
       - items:
           - enum:
               - mediatek,mt8186-disp-ccorr
index b886ca0d89ea15d2f5a76fd5e7742096365486a7..7df786bbad204336584fbb1d70cde0346633cceb 100644 (file)
@@ -40,6 +40,7 @@ properties:
               - mediatek,mt8188-disp-color
               - mediatek,mt8192-disp-color
               - mediatek,mt8195-disp-color
+              - mediatek,mt8365-disp-color
           - const: mediatek,mt8173-disp-color
   reg:
     maxItems: 1
index 1588b3f7cec704e8ee4ee1c73db176c9087d2207..6fceb1f95d2ab2b84576caa0a91a92609cad8033 100644 (file)
@@ -30,6 +30,7 @@ properties:
               - mediatek,mt8188-disp-dither
               - mediatek,mt8192-disp-dither
               - mediatek,mt8195-disp-dither
+              - mediatek,mt8365-disp-dither
           - const: mediatek,mt8183-disp-dither
 
   reg:
index 803c00f2620694f8a578617c628a547cad37cac5..5ca7679d542764529e8967724029b4318e8ca213 100644 (file)
@@ -31,6 +31,10 @@ properties:
           - enum:
               - mediatek,mt6795-dpi
           - const: mediatek,mt8183-dpi
+      - items:
+          - enum:
+              - mediatek,mt8365-dpi
+          - const: mediatek,mt8192-dpi
 
   reg:
     maxItems: 1
index 8611319bed2eaf6235508177f5c867f25834e0f3..a7aa8fcb0dd12bffa6bd1beeda6b6015af89c6ef 100644 (file)
@@ -37,6 +37,7 @@ properties:
       - items:
           - enum:
               - mediatek,mt8195-dsi
+              - mediatek,mt8365-dsi
           - const: mediatek,mt8183-dsi
 
   reg:
index b8b8e83ebc3f0a00b403e79a60107c87422b425b..6823d3ce5049a7690e1b57d7b82eeb32d563812c 100644 (file)
@@ -35,6 +35,7 @@ properties:
               - mediatek,mt8188-disp-gamma
               - mediatek,mt8192-disp-gamma
               - mediatek,mt8195-disp-gamma
+              - mediatek,mt8365-disp-gamma
           - const: mediatek,mt8183-disp-gamma
       - items:
           - enum:
index c471a181d125bda9986c20e1e1c5e8efd2c202ad..d55611c7ce5ebca5c8c2b87651c770a08899ac58 100644 (file)
@@ -44,6 +44,7 @@ properties:
       - items:
           - enum:
               - mediatek,mt8186-disp-ovl
+              - mediatek,mt8365-disp-ovl
           - const: mediatek,mt8192-disp-ovl
 
   reg:
index 39dbb5c8bcf80d8b80dd0543807e5ec658980664..4cadb245d0280024134fb6b25c0df79607628f41 100644 (file)
@@ -45,6 +45,7 @@ properties:
           - enum:
               - mediatek,mt8186-disp-rdma
               - mediatek,mt8192-disp-rdma
+              - mediatek,mt8365-disp-rdma
           - const: mediatek,mt8183-disp-rdma
 
   reg:
index 1fa28e9765593a1d9927140e0546ab8e6415bd16..b0fd96b76ed1376e429a6168df7e7aaa7aeff2d3 100644 (file)
@@ -32,6 +32,7 @@ properties:
               - qcom,sm6125-dsi-ctrl
               - qcom,sm6350-dsi-ctrl
               - qcom,sm6375-dsi-ctrl
+              - qcom,sm7150-dsi-ctrl
               - qcom,sm8150-dsi-ctrl
               - qcom,sm8250-dsi-ctrl
               - qcom,sm8350-dsi-ctrl
@@ -162,6 +163,22 @@ properties:
                 items:
                   enum: [ 0, 1, 2, 3 ]
 
+              qcom,te-source:
+                $ref: /schemas/types.yaml#/definitions/string
+                description:
+                  Specifies the source of vsync signal from the panel used for
+                  tearing elimination.
+                default: mdp_vsync_p
+                enum:
+                  - mdp_vsync_p
+                  - mdp_vsync_s
+                  - mdp_vsync_e
+                  - timer0
+                  - timer1
+                  - timer2
+                  - timer3
+                  - timer4
+
     required:
       - port@0
       - port@1
@@ -332,6 +349,7 @@ allOf:
             enum:
               - qcom,sc7180-dsi-ctrl
               - qcom,sc7280-dsi-ctrl
+              - qcom,sm7150-dsi-ctrl
               - qcom,sm8150-dsi-ctrl
               - qcom,sm8250-dsi-ctrl
               - qcom,sm8350-dsi-ctrl
@@ -452,6 +470,7 @@ examples:
                           dsi0_out: endpoint {
                                    remote-endpoint = <&sn65dsi86_in>;
                                    data-lanes = <0 1 2 3>;
+                                   qcom,te-source = "mdp_vsync_e";
                           };
                   };
            };
index 288d8babb76a5217e9a1487b1b4d060d4eb26132..a55c2445d18952670d6e2ea92224ec1862f145c6 100644 (file)
@@ -16,6 +16,7 @@ properties:
   compatible:
     enum:
       - qcom,dsi-phy-28nm-8226
+      - qcom,dsi-phy-28nm-8937
       - qcom,dsi-phy-28nm-8960
       - qcom,dsi-phy-28nm-hpm
       - qcom,dsi-phy-28nm-hpm-fam-b
index b3837368a2606ab40c11d8665627de7645181ec5..b1bd372996d57138a0e80f8d93df09943775fdfa 100644 (file)
@@ -23,6 +23,9 @@ properties:
       - items:
           - pattern: '^qcom,adreno-gmu-[67][0-9][0-9]\.[0-9]$'
           - const: qcom,adreno-gmu
+      - items:
+          - pattern: '^qcom,adreno-gmu-x[1-9][0-9][0-9]\.[0-9]$'
+          - const: qcom,adreno-gmu
       - const: qcom,adreno-gmu-wrapper
 
   reg:
@@ -225,6 +228,7 @@ allOf:
               - qcom,adreno-gmu-730.1
               - qcom,adreno-gmu-740.1
               - qcom,adreno-gmu-750.1
+              - qcom,adreno-gmu-x185.1
     then:
       properties:
         reg:
index 40b5c6bd11f8caf045adbc7c6410e60eb18ba74f..6ddc72fd85b04537ea270754a897b4e7eb269641 100644 (file)
@@ -10,6 +10,18 @@ title: Adreno or Snapdragon GPUs
 maintainers:
   - Rob Clark <robdclark@gmail.com>
 
+# dtschema does not select nodes based on pattern+const, so add custom select
+# as a work-around:
+select:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - qcom,adreno
+          - amd,imageon
+  required:
+    - compatible
+
 properties:
   compatible:
     oneOf:
@@ -17,7 +29,7 @@ properties:
           The driver is parsing the compat string for Adreno to
           figure out the chip-id.
         items:
-          - pattern: '^qcom,adreno-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$'
+          - pattern: '^qcom,adreno-[0-9a-f]{8}$'
           - const: qcom,adreno
       - description: |
           The driver is parsing the compat string for Adreno to
@@ -32,9 +44,13 @@ properties:
           - pattern: '^amd,imageon-200\.[0-1]$'
           - const: amd,imageon
 
-  clocks: true
+  clocks:
+    minItems: 2
+    maxItems: 7
 
-  clock-names: true
+  clock-names:
+    minItems: 2
+    maxItems: 7
 
   reg:
     minItems: 1
@@ -42,7 +58,10 @@ properties:
 
   reg-names:
     minItems: 1
-    maxItems: 3
+    items:
+      - const: kgsl_3d0_reg_memory
+      - const: cx_mem
+      - const: cx_dbgc
 
   interrupts:
     maxItems: 1
index 91c774f106ceb117fc763392fd653263be86551d..e153f8d26e7aaec64656570bbec700794651c10f 100644 (file)
@@ -25,6 +25,7 @@ properties:
               - qcom,msm8226-mdp5
               - qcom,msm8916-mdp5
               - qcom,msm8917-mdp5
+              - qcom,msm8937-mdp5
               - qcom,msm8953-mdp5
               - qcom,msm8974-mdp5
               - qcom,msm8976-mdp5
index e4576546bf0dbb3b725ace69744cf60ed226b48a..7c6462caa4428bc284619275e61ddacc26d0c06e 100644 (file)
@@ -126,6 +126,7 @@ patternProperties:
           - qcom,dsi-phy-14nm-8953
           - qcom,dsi-phy-20nm
           - qcom,dsi-phy-28nm-8226
+          - qcom,dsi-phy-28nm-8937
           - qcom,dsi-phy-28nm-hpm
           - qcom,dsi-phy-28nm-hpm-fam-b
           - qcom,dsi-phy-28nm-lp
index 8e8a288d318c34d8247abe0705f81c175fb15d99..e22b4c433fd07c2d92faefbdcaa5719c021e9041 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm SM6375 Display MDSS
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description:
   SM6375 MSM Mobile Display Subsystem (MDSS), which encapsulates sub-blocks
diff --git a/Bindings/display/msm/qcom,sm7150-dpu.yaml b/Bindings/display/msm/qcom,sm7150-dpu.yaml
new file mode 100644 (file)
index 0000000..c79b2d4
--- /dev/null
@@ -0,0 +1,143 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/msm/qcom,sm7150-dpu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SM7150 Display Processing Unit (DPU)
+
+maintainers:
+  - Danila Tikhonov <danila@jiaxyga.com>
+
+$ref: /schemas/display/msm/dpu-common.yaml#
+
+properties:
+  compatible:
+    const: qcom,sm7150-dpu
+
+  reg:
+    items:
+      - description: Address offset and size for mdp register set
+      - description: Address offset and size for vbif register set
+
+  reg-names:
+    items:
+      - const: mdp
+      - const: vbif
+
+  clocks:
+    items:
+      - description: Display hf axi clock
+      - description: Display ahb clock
+      - description: Display rotator clock
+      - description: Display lut clock
+      - description: Display core clock
+      - description: Display vsync clock
+
+  clock-names:
+    items:
+      - const: bus
+      - const: iface
+      - const: rot
+      - const: lut
+      - const: core
+      - const: vsync
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - clocks
+  - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+
+    display-controller@ae01000 {
+        compatible = "qcom,sm7150-dpu";
+        reg = <0x0ae01000 0x8f000>,
+              <0x0aeb0000 0x2008>;
+        reg-names = "mdp", "vbif";
+
+        clocks = <&gcc_disp_hf_axi_clk>,
+                 <&dispcc_mdss_ahb_clk>,
+                 <&dispcc_mdss_rot_clk>,
+                 <&dispcc_mdss_mdp_lut_clk>,
+                 <&dispcc_mdss_mdp_clk>,
+                 <&dispcc_mdss_vsync_clk>;
+        clock-names = "bus",
+                      "iface",
+                      "rot",
+                      "lut",
+                      "core",
+                      "vsync";
+
+        assigned-clocks = <&dispcc_mdss_vsync_clk>;
+        assigned-clock-rates = <19200000>;
+
+        operating-points-v2 = <&mdp_opp_table>;
+        power-domains = <&rpmhpd RPMHPD_CX>;
+
+        interrupt-parent = <&mdss>;
+        interrupts = <0>;
+
+        ports {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            port@0 {
+                reg = <0>;
+                dpu_intf1_out: endpoint {
+                    remote-endpoint = <&mdss_dsi0_in>;
+                };
+            };
+
+            port@1 {
+                reg = <1>;
+                dpu_intf2_out: endpoint {
+                    remote-endpoint = <&mdss_dsi1_in>;
+                };
+            };
+
+            port@2 {
+                reg = <2>;
+                dpu_intf0_out: endpoint {
+                    remote-endpoint = <&dp_in>;
+                };
+            };
+        };
+
+        mdp_opp_table: opp-table {
+            compatible = "operating-points-v2";
+
+            opp-19200000 {
+                opp-hz = /bits/ 64 <19200000>;
+                required-opps = <&rpmhpd_opp_min_svs>;
+            };
+
+            opp-200000000 {
+                opp-hz = /bits/ 64 <200000000>;
+                required-opps = <&rpmhpd_opp_low_svs>;
+            };
+
+            opp-300000000 {
+                opp-hz = /bits/ 64 <300000000>;
+                required-opps = <&rpmhpd_opp_svs>;
+            };
+
+            opp-344000000 {
+                opp-hz = /bits/ 64 <344000000>;
+                required-opps = <&rpmhpd_opp_svs_l1>;
+            };
+
+            opp-430000000 {
+                opp-hz = /bits/ 64 <430000000>;
+                required-opps = <&rpmhpd_opp_nom>;
+            };
+        };
+    };
+...
diff --git a/Bindings/display/msm/qcom,sm7150-mdss.yaml b/Bindings/display/msm/qcom,sm7150-mdss.yaml
new file mode 100644 (file)
index 0000000..13c5d5f
--- /dev/null
@@ -0,0 +1,458 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/msm/qcom,sm7150-mdss.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SM7150 Display MDSS
+
+maintainers:
+  - Danila Tikhonov <danila@jiaxyga.com>
+
+description:
+  SM7150 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,sm7150-mdss
+
+  clocks:
+    items:
+      - description: Display ahb clock from gcc
+      - description: Display hf axi clock
+      - description: Display sf axi clock
+      - description: Display core clock
+
+  clock-names:
+    items:
+      - const: iface
+      - const: bus
+      - const: nrt_bus
+      - const: core
+
+  iommus:
+    maxItems: 1
+
+  interconnects:
+    items:
+      - description: Interconnect path from mdp0 port to the data bus
+      - description: Interconnect path from mdp1 port to the data bus
+      - description: Interconnect path from CPU to the reg bus
+
+  interconnect-names:
+    items:
+      - const: mdp0-mem
+      - const: mdp1-mem
+      - const: cpu-cfg
+
+patternProperties:
+  "^display-controller@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+    properties:
+      compatible:
+        const: qcom,sm7150-dpu
+
+  "^displayport-controller@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+    properties:
+      compatible:
+        const: qcom,sm7150-dp
+
+  "^dsi@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+    properties:
+      compatible:
+        items:
+          - const: qcom,sm7150-dsi-ctrl
+          - const: qcom,mdss-dsi-ctrl
+
+  "^phy@[0-9a-f]+$":
+    type: object
+    additionalProperties: true
+    properties:
+      compatible:
+        const: qcom,dsi-phy-10nm
+
+required:
+  - compatible
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/interconnect/qcom,icc.h>
+    #include <dt-bindings/interconnect/qcom,sm7150-rpmh.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+
+    display-subsystem@ae00000 {
+        compatible = "qcom,sm7150-mdss";
+        reg = <0x0ae00000 0x1000>;
+        reg-names = "mdss";
+
+        power-domains = <&dispcc_mdss_gdsc>;
+
+        clocks = <&dispcc_mdss_ahb_clk>,
+                 <&gcc_disp_hf_axi_clk>,
+                 <&gcc_disp_sf_axi_clk>,
+                 <&dispcc_mdss_mdp_clk>;
+        clock-names = "iface",
+                      "bus",
+                      "nrt_bus",
+                      "core";
+
+        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-controller;
+        #interrupt-cells = <1>;
+
+        interconnects = <&mmss_noc MASTER_MDP_PORT0 QCOM_ICC_TAG_ALWAYS
+                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>,
+                        <&mmss_noc MASTER_MDP_PORT1 QCOM_ICC_TAG_ALWAYS
+                         &mc_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>,
+                        <&gem_noc MASTER_AMPSS_M0 QCOM_ICC_TAG_ACTIVE_ONLY
+                         &config_noc SLAVE_DISPLAY_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
+        interconnect-names = "mdp0-mem",
+                             "mdp1-mem",
+                             "cpu-cfg";
+
+        iommus = <&apps_smmu 0x800 0x440>;
+
+        #address-cells = <1>;
+        #size-cells = <1>;
+        ranges;
+
+        display-controller@ae01000 {
+            compatible = "qcom,sm7150-dpu";
+            reg = <0x0ae01000 0x8f000>,
+                  <0x0aeb0000 0x2008>;
+            reg-names = "mdp", "vbif";
+
+            clocks = <&gcc_disp_hf_axi_clk>,
+                     <&dispcc_mdss_ahb_clk>,
+                     <&dispcc_mdss_rot_clk>,
+                     <&dispcc_mdss_mdp_lut_clk>,
+                     <&dispcc_mdss_mdp_clk>,
+                     <&dispcc_mdss_vsync_clk>;
+            clock-names = "bus",
+                          "iface",
+                          "rot",
+                          "lut",
+                          "core",
+                          "vsync";
+
+            assigned-clocks = <&dispcc_mdss_vsync_clk>;
+            assigned-clock-rates = <19200000>;
+
+            operating-points-v2 = <&mdp_opp_table>;
+            power-domains = <&rpmhpd RPMHPD_CX>;
+
+            interrupt-parent = <&mdss>;
+            interrupts = <0>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    dpu_intf1_out: endpoint {
+                        remote-endpoint = <&mdss_dsi0_in>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    dpu_intf2_out: endpoint {
+                        remote-endpoint = <&mdss_dsi1_in>;
+                    };
+                };
+
+                port@2 {
+                    reg = <2>;
+                    dpu_intf0_out: endpoint {
+                        remote-endpoint = <&dp_in>;
+                    };
+                };
+            };
+
+            mdp_opp_table: opp-table {
+                compatible = "operating-points-v2";
+
+                opp-19200000 {
+                    opp-hz = /bits/ 64 <19200000>;
+                    required-opps = <&rpmhpd_opp_min_svs>;
+                };
+
+                opp-200000000 {
+                    opp-hz = /bits/ 64 <200000000>;
+                    required-opps = <&rpmhpd_opp_low_svs>;
+                };
+
+                opp-300000000 {
+                    opp-hz = /bits/ 64 <300000000>;
+                    required-opps = <&rpmhpd_opp_svs>;
+                };
+
+                opp-344000000 {
+                    opp-hz = /bits/ 64 <344000000>;
+                    required-opps = <&rpmhpd_opp_svs_l1>;
+                };
+
+                opp-430000000 {
+                    opp-hz = /bits/ 64 <430000000>;
+                    required-opps = <&rpmhpd_opp_nom>;
+                };
+            };
+        };
+
+        dsi@ae94000 {
+            compatible = "qcom,sm7150-dsi-ctrl",
+                         "qcom,mdss-dsi-ctrl";
+            reg = <0x0ae94000 0x400>;
+            reg-names = "dsi_ctrl";
+
+            interrupt-parent = <&mdss>;
+            interrupts = <4>;
+
+            clocks = <&dispcc_mdss_byte0_clk>,
+                     <&dispcc_mdss_byte0_intf_clk>,
+                     <&dispcc_mdss_pclk0_clk>,
+                     <&dispcc_mdss_esc0_clk>,
+                     <&dispcc_mdss_ahb_clk>,
+                     <&gcc_disp_hf_axi_clk>;
+            clock-names = "byte",
+                          "byte_intf",
+                          "pixel",
+                          "core",
+                          "iface",
+                          "bus";
+
+            assigned-clocks = <&dispcc_mdss_byte0_clk_src>,
+                              <&dispcc_mdss_pclk0_clk_src>;
+            assigned-clock-parents = <&mdss_dsi0_phy 0>,
+                                     <&mdss_dsi0_phy 1>;
+
+            operating-points-v2 = <&dsi_opp_table>;
+            power-domains = <&rpmhpd RPMHPD_CX>;
+
+            phys = <&mdss_dsi0_phy>;
+            phy-names = "dsi";
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    mdss_dsi0_in: endpoint {
+                        remote-endpoint = <&dpu_intf1_out>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    mdss_dsi0_out: endpoint {
+                    };
+                };
+            };
+
+            dsi_opp_table: opp-table {
+                compatible = "operating-points-v2";
+
+                opp-180000000 {
+                    opp-hz = /bits/ 64 <180000000>;
+                    required-opps = <&rpmhpd_opp_low_svs>;
+                };
+
+                opp-275000000 {
+                    opp-hz = /bits/ 64 <275000000>;
+                    required-opps = <&rpmhpd_opp_svs>;
+                };
+
+                opp-358000000 {
+                    opp-hz = /bits/ 64 <358000000>;
+                    required-opps = <&rpmhpd_opp_svs_l1>;
+                };
+            };
+        };
+
+        mdss_dsi0_phy: phy@ae94400 {
+            compatible = "qcom,dsi-phy-10nm";
+            reg = <0x0ae94400 0x200>,
+                  <0x0ae94600 0x280>,
+                  <0x0ae94a00 0x1e0>;
+            reg-names = "dsi_phy",
+                        "dsi_phy_lane",
+                        "dsi_pll";
+
+            #clock-cells = <1>;
+            #phy-cells = <0>;
+
+            clocks = <&dispcc_mdss_ahb_clk>,
+                     <&rpmhcc RPMH_CXO_CLK>;
+            clock-names = "iface", "ref";
+            vdds-supply = <&vdda_mipi_dsi0_pll>;
+        };
+
+        dsi@ae96000 {
+            compatible = "qcom,sm7150-dsi-ctrl",
+                         "qcom,mdss-dsi-ctrl";
+            reg = <0x0ae96000 0x400>;
+            reg-names = "dsi_ctrl";
+
+            interrupt-parent = <&mdss>;
+            interrupts = <5>;
+
+            clocks = <&dispcc_mdss_byte1_clk>,
+                     <&dispcc_mdss_byte1_intf_clk>,
+                     <&dispcc_mdss_pclk1_clk>,
+                     <&dispcc_mdss_esc1_clk>,
+                     <&dispcc_mdss_ahb_clk>,
+                     <&gcc_disp_hf_axi_clk>;
+            clock-names = "byte",
+                          "byte_intf",
+                          "pixel",
+                          "core",
+                          "iface",
+                          "bus";
+
+            assigned-clocks = <&dispcc_mdss_byte1_clk_src>,
+                              <&dispcc_mdss_pclk1_clk_src>;
+            assigned-clock-parents = <&mdss_dsi1_phy 0>,
+                                     <&mdss_dsi1_phy 1>;
+
+            operating-points-v2 = <&dsi_opp_table>;
+            power-domains = <&rpmhpd RPMHPD_CX>;
+
+            phys = <&mdss_dsi1_phy>;
+            phy-names = "dsi";
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    mdss_dsi1_in: endpoint {
+                        remote-endpoint = <&dpu_intf2_out>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    mdss_dsi1_out: endpoint {
+                    };
+                };
+            };
+        };
+
+        mdss_dsi1_phy: phy@ae96400 {
+            compatible = "qcom,dsi-phy-10nm";
+            reg = <0x0ae96400 0x200>,
+                  <0x0ae96600 0x280>,
+                  <0x0ae96a00 0x1e0>;
+            reg-names = "dsi_phy",
+                        "dsi_phy_lane",
+                        "dsi_pll";
+
+            #clock-cells = <1>;
+            #phy-cells = <0>;
+
+            clocks = <&dispcc_mdss_ahb_clk>,
+                     <&rpmhcc RPMH_CXO_CLK>;
+            clock-names = "iface", "ref";
+            vdds-supply = <&vdda_mipi_dsi1_pll>;
+        };
+
+        displayport-controller@ae90000 {
+            compatible = "qcom,sm7150-dp";
+            reg = <0xae90000 0x200>,
+                  <0xae90200 0x200>,
+                  <0xae90400 0xc00>,
+                  <0xae91000 0x400>,
+                  <0xae91400 0x400>;
+
+            interrupt-parent = <&mdss>;
+            interrupts = <12>;
+
+            clocks = <&dispcc_mdss_ahb_clk>,
+                     <&dispcc_mdss_dp_aux_clk>,
+                     <&dispcc_mdss_dp_link_clk>,
+                     <&dispcc_mdss_dp_link_intf_clk>,
+                     <&dispcc_mdss_dp_pixel_clk>;
+            clock-names = "core_iface",
+                          "core_aux",
+                          "ctrl_link",
+                          "ctrl_link_iface",
+                          "stream_pixel";
+
+            assigned-clocks = <&dispcc_mdss_dp_link_clk_src>,
+                              <&dispcc_mdss_dp_pixel_clk_src>;
+            assigned-clock-parents = <&dp_phy 0>,
+                                     <&dp_phy 1>;
+
+            operating-points-v2 = <&dp_opp_table>;
+            power-domains = <&rpmhpd RPMHPD_CX>;
+
+            phys = <&dp_phy>;
+            phy-names = "dp";
+
+            #sound-dai-cells = <0>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    dp_in: endpoint {
+                        remote-endpoint = <&dpu_intf0_out>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    dp_out: endpoint {
+                    };
+                };
+            };
+
+            dp_opp_table: opp-table {
+                compatible = "operating-points-v2";
+
+                opp-160000000 {
+                    opp-hz = /bits/ 64 <160000000>;
+                    required-opps = <&rpmhpd_opp_low_svs>;
+                };
+
+                opp-270000000 {
+                    opp-hz = /bits/ 64 <270000000>;
+                    required-opps = <&rpmhpd_opp_svs>;
+                };
+
+                opp-540000000 {
+                    opp-hz = /bits/ 64 <540000000>;
+                    required-opps = <&rpmhpd_opp_svs_l1>;
+                };
+
+                opp-810000000 {
+                    opp-hz = /bits/ 64 <810000000>;
+                    required-opps = <&rpmhpd_opp_nom>;
+                };
+            };
+        };
+    };
+...
diff --git a/Bindings/display/panel/anbernic,rg35xx-plus-panel.yaml b/Bindings/display/panel/anbernic,rg35xx-plus-panel.yaml
new file mode 100644 (file)
index 0000000..1d67492
--- /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/display/panel/anbernic,rg35xx-plus-panel.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Anbernic RG35XX series (WL-355608-A8) 3.5" 640x480 24-bit IPS LCD panel
+
+maintainers:
+  - Ryan Walklin <ryan@testtoast.com>
+
+allOf:
+  - $ref: panel-common.yaml#
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: anbernic,rg35xx-plus-panel
+      - items:
+          - enum:
+              - anbernic,rg35xx-2024-panel
+              - anbernic,rg35xx-h-panel
+              - anbernic,rg35xx-sp-panel
+          - const: anbernic,rg35xx-plus-panel
+
+  reg:
+    maxItems: 1
+
+  spi-3wire: true
+
+required:
+  - compatible
+  - reg
+  - port
+  - power-supply
+  - reset-gpios
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        panel@0 {
+            compatible = "anbernic,rg35xx-plus-panel";
+            reg = <0>;
+
+            spi-3wire;
+            spi-max-frequency = <3125000>;
+
+            reset-gpios = <&pio 8 14 GPIO_ACTIVE_LOW>; // PI14
+
+            backlight = <&backlight>;
+            power-supply = <&reg_lcd>;
+
+            port {
+                endpoint {
+                    remote-endpoint = <&tcon_lcd0_out_lcd>;
+                };
+            };
+        };
+    };
index 2399cabf044c2fdde7b17fea546b69d095559d69..dd614e077bbff3d2d52dddc5657c0bc40d8e49a4 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: ASUS Z00T TM5P5 NT35596 5.5" 1080×1920 LCD Panel
 
 maintainers:
-  - Konrad Dybcio <konradybcio@gmail.com>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |+
   This panel seems to only be found in the Asus Z00T
index 9e603cad1348003d3565455e2549f9fd505361d1..7a9f49e40e75b217f6fa43685e2448747f7fdeb3 100644 (file)
@@ -32,8 +32,6 @@ properties:
       - innolux,hj110iz-01a
         # STARRY 2081101QFH032011-53G 10.1" WUXGA TFT LCD panel
       - starry,2081101qfh032011-53g
-        # STARRY himax83102-j02 10.51" WUXGA TFT LCD panel
-      - starry,himax83102-j02
         # STARRY ili9882t 10.51" WUXGA TFT LCD panel
       - starry,ili9882t
 
diff --git a/Bindings/display/panel/himax,hx83102.yaml b/Bindings/display/panel/himax,hx83102.yaml
new file mode 100644 (file)
index 0000000..c649fb0
--- /dev/null
@@ -0,0 +1,77 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/himax,hx83102.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Himax HX83102 MIPI-DSI LCD panel controller
+
+maintainers:
+  - Cong Yang <yangcong5@huaqin.corp-partner.google.com>
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  compatible:
+    items:
+      - enum:
+          # Boe nv110wum-l60 11.0" WUXGA TFT LCD panel
+          - boe,nv110wum-l60
+          # IVO t109nw41 11.0" WUXGA TFT LCD panel
+          - ivo,t109nw41
+          # STARRY himax83102-j02 10.51" WUXGA TFT LCD panel
+          - starry,himax83102-j02
+      - const: himax,hx83102
+
+  reg:
+    description: the virtual channel number of a DSI peripheral
+
+  enable-gpios:
+    description: a GPIO spec for the enable pin
+
+  pp1800-supply:
+    description: core voltage supply
+
+  avdd-supply:
+    description: phandle of the regulator that provides positive voltage
+
+  avee-supply:
+    description: phandle of the regulator that provides negative voltage
+
+  backlight: true
+  port: true
+  rotation: true
+
+required:
+  - compatible
+  - reg
+  - enable-gpios
+  - pp1800-supply
+  - avdd-supply
+  - avee-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    dsi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        panel@0 {
+            compatible = "starry,himax83102-j02", "himax,hx83102";
+            reg = <0>;
+            enable-gpios = <&pio 45 0>;
+            avdd-supply = <&ppvarn_lcd>;
+            avee-supply = <&ppvarp_lcd>;
+            pp1800-supply = <&pp1800_lcd>;
+            backlight = <&backlight_lcd0>;
+            port {
+                panel_in: endpoint {
+                    remote-endpoint = <&dsi_out>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/Bindings/display/panel/ilitek,ili9806e.yaml b/Bindings/display/panel/ilitek,ili9806e.yaml
new file mode 100644 (file)
index 0000000..cfd7cc9
--- /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/display/panel/ilitek,ili9806e.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Ilitek ILI9806E based MIPI-DSI panels
+
+maintainers:
+  - Michael Walle <mwalle@kernel.org>
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - ortustech,com35h3p70ulc
+      - const: ilitek,ili9806e
+
+  reg:
+    maxItems: 1
+
+  vdd-supply: true
+  vccio-supply: true
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+  - vccio-supply
+  - reset-gpios
+  - backlight
+  - port
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    dsi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        panel@0 {
+            compatible = "ortustech,com35h3p70ulc", "ilitek,ili9806e";
+            reg = <0>;
+            vdd-supply = <&reg_vdd_panel>;
+            vccio-supply = <&reg_vccio_panel>;
+            reset-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
+            backlight = <&backlight>;
+
+            port {
+                panel_in: endpoint {
+                    remote-endpoint = <&dsi_out>;
+                };
+            };
+        };
+    };
+
+...
index 20afdb4568a26fe1aff28e70e53da9892ee1cb8c..3d5bede98cf1d951eb85cbb1ab8eb6e085e633df 100644 (file)
@@ -17,6 +17,7 @@ properties:
     items:
       - enum:
           - chongzhou,cz101b4001
+          - kingdisplay,kd101ne3-40ti
           - radxa,display-10hd-ad001
           - radxa,display-8hd-ad002
       - const: jadard,jd9365da-h3
index 1e08648f5bc7712f6bf9634f06aa9769dfd808d1..bbaaa783d184eb97e45d740085e2f24a84275c39 100644 (file)
@@ -21,7 +21,9 @@ properties:
     items:
       - const: lg,sw43408
 
-  reg: true
+  reg:
+    maxItems: 1
+
   port: true
   vddi-supply: true
   vpnl-supply: true
diff --git a/Bindings/display/panel/panel-edp-legacy.yaml b/Bindings/display/panel/panel-edp-legacy.yaml
new file mode 100644 (file)
index 0000000..b308047
--- /dev/null
@@ -0,0 +1,117 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/panel-edp-legacy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Legacy eDP panels from before the "edp-panel" compatible
+
+maintainers:
+  - Douglas Anderson <dianders@chromium.org>
+
+description: |
+  This binding file is a collection of eDP panels from before the generic
+  "edp-panel" compatible was introduced. It is kept around to support old
+  dts files. The only reason one might add a new panel here instead of using
+  the generic "edp-panel" is if it needed to be used on an eDP controller
+  that doesn't support the generic "edp-panel" compatible, but it should be
+  a strong preference to add the generic "edp-panel" compatible instead.
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  compatible:
+    enum:
+    # compatible must be listed in alphabetical order, ordered by compatible.
+    # The description in the comment is mandatory for each compatible.
+
+        # AU Optronics Corporation 10.1" WSVGA TFT LCD panel
+      - auo,b101ean01
+        # AUO B116XAK01 eDP TFT LCD panel
+      - auo,b116xa01
+        # AU Optronics Corporation 13.3" FHD (1920x1080) color TFT-LCD panel
+      - auo,b133htn01
+        # AU Optronics Corporation 13.3" WXGA (1366x768) TFT LCD panel
+      - auo,b133xtn01
+        # BOE OPTOELECTRONICS TECHNOLOGY 10.1" WXGA TFT LCD panel
+      - boe,nv101wxmn51
+        # BOE NV133FHM-N61 13.3" FHD (1920x1080) TFT LCD Panel
+      - boe,nv110wtm-n61
+        # BOE NV110WTM-N61 11.0" 2160x1440 TFT LCD Panel
+      - boe,nv133fhm-n61
+        # BOE NV133FHM-N62 13.3" FHD (1920x1080) TFT LCD Panel
+      - boe,nv133fhm-n62
+        # BOE NV140FHM-N49 14.0" FHD a-Si FT panel
+      - boe,nv140fhmn49
+        # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel
+      - innolux,n116bca-ea1
+        # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel
+      - innolux,n116bge
+        # InnoLux 13.3" FHD (1920x1080) eDP TFT LCD panel
+      - innolux,n125hce-gn1
+        # Innolux P120ZDG-BF1 12.02 inch eDP 2K display panel
+      - innolux,p120zdg-bf1
+        # King & Display KD116N21-30NV-A010 eDP TFT LCD panel
+      - kingdisplay,kd116n21-30nv-a010
+        # LG LP079QX1-SP0V 7.9" (1536x2048 pixels) TFT LCD panel
+      - lg,lp079qx1-sp0v
+        # LG 9.7" (2048x1536 pixels) TFT LCD panel
+      - lg,lp097qx1-spa1
+        # LG 12.0" (1920x1280 pixels) TFT LCD panel
+      - lg,lp120up1
+        # LG 12.9" (2560x1700 pixels) TFT LCD panel
+      - lg,lp129qe
+        # NewEast Optoelectronics CO., LTD WJFH116008A eDP TFT LCD panel
+      - neweast,wjfh116008a
+        # Samsung 12.2" (2560x1600 pixels) TFT LCD panel
+      - samsung,lsn122dl01-c01
+        # Samsung Electronics 14" WXGA (1366x768) TFT LCD panel
+      - samsung,ltn140at29-301
+        # Sharp LD-D5116Z01B 12.3" WUXGA+ eDP panel
+      - sharp,ld-d5116z01b
+        # Sharp 12.3" (2400x1600 pixels) TFT LCD panel
+      - sharp,lq123p1jx31
+
+  backlight: true
+  ddc-i2c-bus: true
+  enable-gpios: true
+  panel-timing: true
+  port: true
+  power-supply: true
+  no-hpd: true
+  hpd-gpios: true
+
+additionalProperties: false
+
+required:
+  - compatible
+  - power-supply
+
+examples:
+  - |
+    panel: panel {
+      compatible = "innolux,n116bge";
+      power-supply = <&panel_regulator>;
+      backlight = <&backlight>;
+
+      panel-timing {
+        clock-frequency = <74250000>;
+        hactive = <1366>;
+        hfront-porch = <136>;
+        hback-porch = <60>;
+        hsync-len = <30>;
+        hsync-active = <0>;
+        vactive = <768>;
+        vfront-porch = <8>;
+        vback-porch = <12>;
+        vsync-len = <12>;
+        vsync-active = <0>;
+      };
+
+      port {
+        panel_in_edp: endpoint {
+          remote-endpoint = <&edp_out_panel>;
+        };
+      };
+    };
index d0ac31ab60cf3728aebeabd781d917280ebd29f7..6f0290c4e2917e55401fc490ad6f560849d834fe 100644 (file)
@@ -50,6 +50,12 @@ description: |
       |        Command or data         |
       |<D7><D6><D5><D4><D3><D2><D1><D0>|
 
+  The standard defines one pixel format for type C: RGB111. The industry
+  however has decided to provide the type A/B interface pixel formats also on
+  the Type C interface and most common among these are RGB565 and RGB666.
+  The MIPI DCS command set_address_mode (36h) has one bit that controls RGB/BGR
+  order. This gives each supported RGB format a BGR variant.
+
   The panel resolution is specified using the panel-timing node properties
   hactive (width) and vactive (height). The other mandatory panel-timing
   properties should be set to zero except clock-frequency which can be
@@ -93,6 +99,28 @@ properties:
 
   spi-3wire: true
 
+  format:
+    description: >
+      Pixel format in bit order as going on the wire:
+        * `x2r1g1b1r1g1b1` - RGB111, 2 pixels per byte
+        * `x2b1g1r1b1g1r1` - BGR111, 2 pixels per byte
+        * `x1r1g1b1x1r1g1b1` - RGB111, 2 pixels per byte
+        * `x1b1g1r1x1b1g1r1` - BGR111, 2 pixels per byte
+        * `r5g6b5` - RGB565, 2 bytes
+        * `b5g6r5` - BGR565, 2 bytes
+        * `r6x2g6x2b6x2` - RGB666, 3 bytes
+        * `b6x2g6x2r6x2` - BGR666, 3 bytes
+    enum:
+      - x2r1g1b1r1g1b1
+      - x2b1g1r1b1g1r1
+      - x1r1g1b1x1r1g1b1
+      - x1b1g1r1x1b1g1r1
+      - r5g6b5
+      - b5g6r5
+      - r6x2g6x2b6x2
+      - b6x2g6x2r6x2
+    default: r5g6b5
+
 required:
   - compatible
   - reg
@@ -119,6 +147,8 @@ examples:
             reset-gpios = <&gpio 25 GPIO_ACTIVE_HIGH>;
             write-only;
 
+            format = "r5g6b5";
+
             backlight = <&backlight>;
 
             width-mm = <35>;
index db5acd2807ed7f48ba4f52fb4c808ce3432f12b6..9b92a05791ccf99061ab7a1e01937bb832a96fe6 100644 (file)
@@ -46,6 +46,8 @@ properties:
       - lg,ld070wx3-sl01
         # LG Corporation 5" HD TFT LCD panel
       - lg,lh500wx1-sd03
+        # Lincoln LCD197 5" 1080x1920 LCD panel
+      - lincolntech,lcd197
         # One Stop Displays OSD101T2587-53TS 10.1" 1920x1200 panel
       - osddisplays,osd101t2587-53ts
         # Panasonic 10" WUXGA TFT LCD panel
index 716ece5f397842f3b2b16dd402698ce509239f51..e78160d1aa24c4f8910b0001d3e7bbb2dc815eef 100644 (file)
@@ -41,6 +41,12 @@ properties:
       - auo,g190ean01
         # Kaohsiung Opto-Electronics Inc. 10.1" WUXGA (1920 x 1200) LVDS TFT LCD panel
       - koe,tx26d202vm0bwa
+        # Lincoln Technology Solutions, LCD185-101CT 10.1" TFT 1920x1200
+      - lincolntech,lcd185-101ct
+        # Microtips Technology MF-101HIEBCAF0 10.1" WUXGA (1920x1200) TFT LCD panel
+      - microtips,mf-101hiebcaf0
+        # Microtips Technology MF-103HIEB0GA0 10.25" 1920x720 TFT LCD panel
+      - microtips,mf-103hieb0ga0
         # NLT Technologies, Ltd. 15.6" FHD (1920x1080) LVDS TFT LCD panel
       - nlt,nl192108ac18-02d
 
index 5067f5c0a27231cc88d4346d11e571b69e2c9076..8a87e0100dcb21c5a6c94e03351889c91909ace8 100644 (file)
@@ -41,28 +41,18 @@ properties:
       - ampire,am800600p5tmqw-tb8h
         # AU Optronics Corporation 10.1" WSVGA TFT LCD panel
       - auo,b101aw03
-        # AU Optronics Corporation 10.1" WSVGA TFT LCD panel
-      - auo,b101ean01
         # AU Optronics Corporation 10.1" WXGA TFT LCD panel
       - auo,b101xtn01
-        # AUO B116XAK01 eDP TFT LCD panel
-      - auo,b116xa01
         # AU Optronics Corporation 11.6" HD (1366x768) color TFT-LCD panel
       - auo,b116xw03
-        # AU Optronics Corporation 13.3" FHD (1920x1080) color TFT-LCD panel
-      - auo,b133han05
-        # AU Optronics Corporation 13.3" FHD (1920x1080) color TFT-LCD panel
-      - auo,b133htn01
-        # AU Optronics Corporation 13.3" WXGA (1366x768) TFT LCD panel
-      - auo,b133xtn01
-        # AU Optronics Corporation 14.0" FHD (1920x1080) color TFT-LCD panel
-      - auo,b140han06
         # AU Optronics Corporation 7.0" FHD (800 x 480) TFT LCD panel
       - auo,g070vvn01
         # AU Optronics Corporation 10.1" (1280x800) color TFT LCD panel
       - auo,g101evn010
         # AU Optronics Corporation 10.4" (800x600) color TFT LCD panel
       - auo,g104sn02
+        # AU Optronics Corporation 10.4" (800x600) color TFT LCD panel
+      - auo,g104stn01
         # AU Optronics Corporation 12.1" (1280x800) TFT LCD panel
       - auo,g121ean01
         # AU Optronics Corporation 15.6" (1366x768) TFT LCD panel
@@ -81,16 +71,6 @@ properties:
       - boe,ev121wxm-n10-1850
         # BOE HV070WSA-100 7.01" WSVGA TFT LCD panel
       - boe,hv070wsa-100
-        # BOE OPTOELECTRONICS TECHNOLOGY 10.1" WXGA TFT LCD panel
-      - boe,nv101wxmn51
-        # BOE NV133FHM-N61 13.3" FHD (1920x1080) TFT LCD Panel
-      - boe,nv110wtm-n61
-        # BOE NV110WTM-N61 11.0" 2160x1440 TFT LCD Panel
-      - boe,nv133fhm-n61
-        # BOE NV133FHM-N62 13.3" FHD (1920x1080) TFT LCD Panel
-      - boe,nv133fhm-n62
-        # BOE NV140FHM-N49 14.0" FHD a-Si FT panel
-      - boe,nv140fhmn49
         # Crystal Clear Technology CMT430B19N00 4.3" 480x272 TFT-LCD panel
       - cct,cmt430b19n00
         # CDTech(H.K.) Electronics Limited 4.3" 480x272 color TFT-LCD panel
@@ -172,8 +152,6 @@ properties:
       - hannstar,hsd100pxn1
         # Hitachi Ltd. Corporation 9" WVGA (800x480) TFT LCD panel
       - hit,tx23d38vm0caa
-        # InfoVision Optoelectronics M133NWF4 R0 13.3" FHD (1920x1080) TFT LCD panel
-      - ivo,m133nwf4-r0
         # Innolux AT043TN24 4.3" WQVGA TFT LCD panel
       - innolux,at043tn24
         # Innolux AT070TN92 7.0" WQVGA TFT LCD panel
@@ -192,22 +170,12 @@ properties:
       - innolux,g121x1-l03
         # Innolux Corporation 12.1" G121XCE-L01 XGA (1024x768) TFT LCD panel
       - innolux,g121xce-l01
-        # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel
-      - innolux,n116bca-ea1
-        # Innolux Corporation 11.6" WXGA (1366x768) TFT LCD panel
-      - innolux,n116bge
-        # InnoLux 13.3" FHD (1920x1080) eDP TFT LCD panel
-      - innolux,n125hce-gn1
         # InnoLux 15.6" FHD (1920x1080) TFT LCD panel
       - innolux,g156hce-l01
         # InnoLux 15.6" WXGA TFT LCD panel
       - innolux,n156bge-l21
-        # Innolux P120ZDG-BF1 12.02 inch eDP 2K display panel
-      - innolux,p120zdg-bf1
         # Innolux Corporation 7.0" WSVGA (1024x600) TFT LCD panel
       - innolux,zj070na-01p
-        # King & Display KD116N21-30NV-A010 eDP TFT LCD panel
-      - kingdisplay,kd116n21-30nv-a010
         # Kaohsiung Opto-Electronics Inc. 5.7" QVGA (320 x 240) TFT LCD panel
       - koe,tx14d24vm1bpa
         # Kaohsiung Opto-Electronics. TX31D200VM0BAA 12.3" HSXGA LVDS panel
@@ -220,14 +188,6 @@ properties:
       - lemaker,bl035-rgb-002
         # LG 7" (800x480 pixels) TFT LCD panel
       - lg,lb070wv8
-        # LG LP079QX1-SP0V 7.9" (1536x2048 pixels) TFT LCD panel
-      - lg,lp079qx1-sp0v
-        # LG 9.7" (2048x1536 pixels) TFT LCD panel
-      - lg,lp097qx1-spa1
-        # LG 12.0" (1920x1280 pixels) TFT LCD panel
-      - lg,lp120up1
-        # LG 12.9" (2560x1700 pixels) TFT LCD panel
-      - lg,lp129qe
         # Logic Technologies LT161010-2NHC 7" WVGA TFT Cap Touch Module
       - logictechno,lt161010-2nhc
         # Logic Technologies LT161010-2NHR 7" WVGA TFT Resistive Touch Module
@@ -254,8 +214,6 @@ properties:
       - nec,nl4827hc19-05b
         # Netron-DY E231732 7.0" WSVGA TFT LCD panel
       - netron-dy,e231732
-        # NewEast Optoelectronics CO., LTD WJFH116008A eDP TFT LCD panel
-      - neweast,wjfh116008a
         # Newhaven Display International 480 x 272 TFT LCD panel
       - newhaven,nhd-4.3-480272ef-atxl
         # New Vision Display 7.0" 800 RGB x 480 TFT LCD panel
@@ -280,6 +238,8 @@ properties:
       - powertip,ph128800t006-zhc01
         # POWERTIP PH800480T013-IDF2 7.0" WVGA TFT LCD panel
       - powertip,ph800480t013-idf02
+        # PrimeView PM070WL4 7.0" 800x480 TFT LCD panel
+      - primeview,pm070wl4
         # QiaoDian XianShi Corporation 4"3 TFT LCD panel
       - qiaodian,qd43003c0-40
         # Shenzhen QiShenglong Industrialist Co., Ltd. Gopher 2b 4.3" 480(RGB)x272 TFT LCD panel
@@ -290,16 +250,10 @@ properties:
       - rocktech,rk070er9427
         # Rocktech Display Ltd. RK043FN48H 4.3" 480x272 LCD-TFT panel
       - rocktech,rk043fn48h
-        # Samsung 13.3" FHD (1920x1080 pixels) eDP AMOLED panel
-      - samsung,atna33xc20
-        # Samsung 12.2" (2560x1600 pixels) TFT LCD panel
-      - samsung,lsn122dl01-c01
         # Samsung Electronics 10.1" WXGA (1280x800) TFT LCD panel
       - samsung,ltl101al01
         # Samsung Electronics 10.1" WSVGA TFT LCD panel
       - samsung,ltn101nt05
-        # Samsung Electronics 14" WXGA (1366x768) TFT LCD panel
-      - samsung,ltn140at29-301
         # Satoz SAT050AT40H12R2 5.0" WVGA TFT LCD panel
       - satoz,sat050at40h12r2
         # Sharp LQ035Q7DB03 3.5" QVGA TFT LCD panel
@@ -308,18 +262,12 @@ properties:
       - sharp,lq070y3dg3b
         # Sharp Display Corp. LQ101K1LY04 10.07" WXGA TFT LCD panel
       - sharp,lq101k1ly04
-        # Sharp 12.3" (2400x1600 pixels) TFT LCD panel
-      - sharp,lq123p1jx31
-        # Sharp 14" (1920x1080 pixels) TFT LCD panel
-      - sharp,lq140m1jw46
         # Sharp LS020B1DD01D 2.0" HQVGA TFT LCD panel
       - sharp,ls020b1dd01d
         # Shelly SCA07010-BFN-LNN 7.0" WVGA TFT LCD panel
       - shelly,sca07010-bfn-lnn
         # Starry KR070PE2T 7" WVGA TFT LCD panel
       - starry,kr070pe2t
-        # Starry 12.2" (1920x1200 pixels) TFT LCD panel
-      - starry,kr122ea0sra
         # Startek KD070WVFPA043-C069A 7" TFT LCD panel
       - startek,kd070wvfpa
         # Team Source Display Technology TST043015CMHX 4.3" WQVGA TFT LCD panel
index b17765b2b351be289c82d439b2651248913b4a05..ec445ff5631c99e39667e55a025c10c601741e96 100644 (file)
@@ -28,6 +28,9 @@ properties:
       to work with the indicated panel. The raydium,rm69380 compatible shall
       always be provided as a fallback.
 
+  reg:
+    maxItems: 1
+
   avdd-supply:
     description: Analog voltage rail
 
@@ -38,8 +41,6 @@ properties:
     maxItems: 1
     description: phandle of gpio for reset line - This should be active low
 
-  reg: true
-
 required:
   - compatible
   - reg
diff --git a/Bindings/display/panel/samsung,atna33xc20.yaml b/Bindings/display/panel/samsung,atna33xc20.yaml
new file mode 100644 (file)
index 0000000..032f783
--- /dev/null
@@ -0,0 +1,104 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/samsung,atna33xc20.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung 13.3" FHD (1920x1080 pixels) eDP AMOLED panel
+
+maintainers:
+  - Douglas Anderson <dianders@chromium.org>
+
+allOf:
+  - $ref: panel-common.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      # Samsung 13.3" FHD (1920x1080 pixels) eDP AMOLED panel
+      - const: samsung,atna33xc20
+      - items:
+          - enum:
+              # Samsung 14.5" WQXGA+ (2880x1800 pixels) eDP AMOLED panel
+              - samsung,atna45af01
+              # Samsung 14.5" 3K (2944x1840 pixels) eDP AMOLED panel
+              - samsung,atna45dc02
+          - const: samsung,atna33xc20
+
+  enable-gpios: true
+  port: true
+  power-supply: true
+  no-hpd: true
+  hpd-gpios: true
+
+additionalProperties: false
+
+required:
+  - compatible
+  - enable-gpios
+  - power-supply
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      bridge@2d {
+        compatible = "ti,sn65dsi86";
+        reg = <0x2d>;
+
+        interrupt-parent = <&tlmm>;
+        interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
+
+        enable-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
+
+        vpll-supply = <&src_pp1800_s4a>;
+        vccio-supply = <&src_pp1800_s4a>;
+        vcca-supply = <&src_pp1200_l2a>;
+        vcc-supply = <&src_pp1200_l2a>;
+
+        clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
+        clock-names = "refclk";
+
+        no-hpd;
+
+        ports {
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          port@0 {
+            reg = <0>;
+            endpoint {
+              remote-endpoint = <&dsi0_out>;
+            };
+          };
+
+          port@1 {
+            reg = <1>;
+            sn65dsi86_out: endpoint {
+              remote-endpoint = <&panel_in_edp>;
+            };
+          };
+        };
+
+        aux-bus {
+          panel {
+            compatible = "samsung,atna33xc20";
+            enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
+            power-supply = <&pp3300_dx_edp>;
+            hpd-gpios = <&sn65dsi86_bridge 2 GPIO_ACTIVE_HIGH>;
+
+            port {
+              panel_in_edp: endpoint {
+                remote-endpoint = <&sn65dsi86_out>;
+              };
+            };
+          };
+        };
+      };
+    };
diff --git a/Bindings/display/panel/sharp,ld-d5116z01b.yaml b/Bindings/display/panel/sharp,ld-d5116z01b.yaml
deleted file mode 100644 (file)
index fbb647e..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/display/panel/sharp,ld-d5116z01b.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Sharp LD-D5116Z01B 12.3" WUXGA+ eDP panel
-
-maintainers:
-  - Jeffrey Hugo <jeffrey.l.hugo@gmail.com>
-
-allOf:
-  - $ref: panel-common.yaml#
-
-properties:
-  compatible:
-    const: sharp,ld-d5116z01b
-
-  power-supply: true
-  backlight: true
-  port: true
-  no-hpd: true
-
-additionalProperties: false
-
-required:
-  - compatible
-  - power-supply
-
-...
index 191b692125e145748003a800ee663e0c09d9e3cc..032a989184ff057cb28116ef2e2fcf001cfa2f40 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Sony TD4353 JDI 5 / 5.7" 2160x1080 MIPI-DSI Panel
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@somainline.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   The Sony TD4353 JDI is a 5 (XZ2c) / 5.7 (XZ2) inch 2160x1080
index 2aac62219ff64cd706d534c2457c1e5c54b1e5cf..9d096856a79a6c0b57f87364f104681d7032c687 100644 (file)
@@ -70,14 +70,6 @@ properties:
           - vpll
           - ref
 
-  ddc-i2c-bus:
-    $ref: /schemas/types.yaml#/definitions/phandle
-    description:
-      The HDMI DDC bus can be connected to either a system I2C master or the
-      functionally-reduced I2C master contained in the DWC HDMI. When connected
-      to a system I2C master this property contains a phandle to that I2C
-      master controller.
-
   phys:
     maxItems: 1
     description: The HDMI PHY
index ccf79e738fa1276206d6b3e9878100aff08cd746..ccd71c5324af1f1b7b241fe8db1babf414642571 100644 (file)
@@ -15,6 +15,7 @@ properties:
     items:
       - enum:
           - rockchip,px30-mipi-dsi
+          - rockchip,rk3128-mipi-dsi
           - rockchip,rk3288-mipi-dsi
           - rockchip,rk3399-mipi-dsi
           - rockchip,rk3568-mipi-dsi
@@ -77,6 +78,7 @@ allOf:
           contains:
             enum:
               - rockchip,px30-mipi-dsi
+              - rockchip,rk3128-mipi-dsi
               - rockchip,rk3568-mipi-dsi
               - rockchip,rv1126-mipi-dsi
 
diff --git a/Bindings/display/st,stm32mp25-lvds.yaml b/Bindings/display/st,stm32mp25-lvds.yaml
new file mode 100644 (file)
index 0000000..6736f93
--- /dev/null
@@ -0,0 +1,119 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/st,stm32mp25-lvds.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics STM32 LVDS Display Interface Transmitter
+
+maintainers:
+  - Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com>
+  - Yannick Fertre <yannick.fertre@foss.st.com>
+
+description: |
+  The STMicroelectronics STM32 LVDS Display Interface Transmitter handles the
+  LVDS protocol: it maps the pixels received from the upstream Pixel-DMA (LTDC)
+  onto the LVDS PHY.
+
+  It is composed of three sub blocks:
+    - LVDS host: handles the LVDS protocol (FPD / OpenLDI) and maps its input
+      pixels onto the data lanes of the PHY
+    - LVDS PHY: parallelize the data and drives the LVDS data lanes
+    - LVDS wrapper: handles top-level settings
+
+  The LVDS controller driver supports the following high-level features:
+    - FDP-Link-I and OpenLDI (v0.95) protocols
+    - Single-Link or Dual-Link operation
+    - Single-Display or Double-Display (with the same content duplicated on both)
+    - Flexible Bit-Mapping, including JEIDA and VESA
+    - RGB888 or RGB666 output
+    - Synchronous design, with one input pixel per clock cycle
+
+properties:
+  compatible:
+    const: st,stm32mp25-lvds
+
+  "#clock-cells":
+    const: 0
+    description:
+      Provides the internal LVDS PHY clock to the framework.
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: APB peripheral clock
+      - description: Reference clock for the internal PLL
+
+  clock-names:
+    items:
+      - const: pclk
+      - const: ref
+
+  resets:
+    maxItems: 1
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/properties/port
+        description:
+          LVDS input port node, connected to the LTDC RGB output port.
+
+      port@1:
+        $ref: /schemas/graph.yaml#/properties/port
+        description:
+          LVDS output port node, connected to a panel or bridge input port.
+
+    required:
+      - port@0
+      - port@1
+
+required:
+  - compatible
+  - "#clock-cells"
+  - reg
+  - clocks
+  - clock-names
+  - resets
+  - ports
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/st,stm32mp25-rcc.h>
+    #include <dt-bindings/reset/st,stm32mp25-rcc.h>
+
+    lvds: lvds@48060000 {
+        compatible = "st,stm32mp25-lvds";
+        reg = <0x48060000 0x2000>;
+        #clock-cells = <0>;
+        clocks = <&rcc CK_BUS_LVDS>, <&rcc CK_KER_LVDSPHY>;
+        clock-names = "pclk", "ref";
+        resets = <&rcc LVDS_R>;
+
+        ports {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            port@0 {
+                reg = <0>;
+                lvds_in: endpoint {
+                   remote-endpoint = <&ltdc_ep1_out>;
+                };
+            };
+
+            port@1 {
+                reg = <1>;
+                lvds_out0: endpoint {
+                   remote-endpoint = <&lvds_panel_in>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/Bindings/dma/fsl,imx-dma.yaml b/Bindings/dma/fsl,imx-dma.yaml
new file mode 100644 (file)
index 0000000..902a11f
--- /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/dma/fsl,imx-dma.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Direct Memory Access (DMA) Controller for i.MX
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+allOf:
+  - $ref: dma-controller.yaml#
+
+properties:
+  compatible:
+    enum:
+      - fsl,imx1-dma
+      - fsl,imx21-dma
+      - fsl,imx27-dma
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: DMA complete interrupt
+      - description: DMA Error interrupt
+    minItems: 1
+
+  "#dma-cells":
+    const: 1
+
+  dma-channels:
+    const: 16
+
+  dma-requests:
+    description: Number of DMA requests supported.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - "#dma-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    dma-controller@10001000 {
+      compatible = "fsl,imx27-dma";
+      reg = <0x10001000 0x1000>;
+      interrupts = <32 33>;
+      #dma-cells = <1>;
+      dma-channels = <16>;
+    };
diff --git a/Bindings/dma/fsl-imx-dma.txt b/Bindings/dma/fsl-imx-dma.txt
deleted file mode 100644 (file)
index 1c9929d..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-* Freescale Direct Memory Access (DMA) Controller for i.MX
-
-This document will only describe differences to the generic DMA Controller and
-DMA request bindings as described in dma/dma.txt .
-
-* DMA controller
-
-Required properties:
-- compatible : Should be "fsl,<chip>-dma". chip can be imx1, imx21 or imx27
-- reg : Should contain DMA registers location and length
-- interrupts : First item should be DMA interrupt, second one is optional and
-    should contain DMA Error interrupt
-- #dma-cells : Has to be 1. imx-dma does not support anything else.
-
-Optional properties:
-- dma-channels : Number of DMA channels supported. Should be 16.
-- #dma-channels : deprecated
-- dma-requests : Number of DMA requests supported.
-- #dma-requests : deprecated
-
-Example:
-
-       dma: dma@10001000 {
-               compatible = "fsl,imx27-dma";
-               reg = <0x10001000 0x1000>;
-               interrupts = <32 33>;
-               #dma-cells = <1>;
-               dma-channels = <16>;
-       };
-
-
-* DMA client
-
-Clients have to specify the DMA requests with phandles in a list.
-
-Required properties:
-- dmas: List of one or more DMA request specifiers. One DMA request specifier
-    consists of a phandle to the DMA controller followed by the integer
-    specifying the request line.
-- dma-names: List of string identifiers for the DMA requests. For the correct
-    names, have a look at the specific client driver.
-
-Example:
-
-       sdhci1: sdhci@10013000 {
-               ...
-               dmas = <&dma 7>;
-               dma-names = "rx-tx";
-               ...
-       };
diff --git a/Bindings/dma/fsl-qdma.txt b/Bindings/dma/fsl-qdma.txt
deleted file mode 100644 (file)
index da371c4..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-NXP Layerscape SoC qDMA Controller
-==================================
-
-This device follows the generic DMA bindings defined in dma/dma.txt.
-
-Required properties:
-
-- compatible:          Must be one of
-                        "fsl,ls1021a-qdma": for LS1021A Board
-                        "fsl,ls1028a-qdma": for LS1028A Board
-                        "fsl,ls1043a-qdma": for ls1043A Board
-                        "fsl,ls1046a-qdma": for ls1046A Board
-- reg:                 Should contain the register's base address and length.
-- interrupts:          Should contain a reference to the interrupt used by this
-                       device.
-- interrupt-names:     Should contain interrupt names:
-                        "qdma-queue0": the block0 interrupt
-                        "qdma-queue1": the block1 interrupt
-                        "qdma-queue2": the block2 interrupt
-                        "qdma-queue3": the block3 interrupt
-                        "qdma-error":  the error interrupt
-- fsl,dma-queues:      Should contain number of queues supported.
-- dma-channels:        Number of DMA channels supported
-- block-number:        the virtual block number
-- block-offset:        the offset of different virtual block
-- status-sizes:        status queue size of per virtual block
-- queue-sizes:         command queue size of per virtual block, the size number
-                       based on queues
-
-Optional properties:
-
-- dma-channels:                Number of DMA channels supported by the controller.
-- big-endian:          If present registers and hardware scatter/gather descriptors
-                       of the qDMA are implemented in big endian mode, otherwise in little
-                       mode.
-
-Examples:
-
-       qdma: dma-controller@8390000 {
-                       compatible = "fsl,ls1021a-qdma";
-                       reg = <0x0 0x8388000 0x0 0x1000>, /* Controller regs */
-                             <0x0 0x8389000 0x0 0x1000>, /* Status regs */
-                             <0x0 0x838a000 0x0 0x2000>; /* Block regs */
-                       interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "qdma-error",
-                               "qdma-queue0", "qdma-queue1";
-                       dma-channels = <8>;
-                       block-number = <2>;
-                       block-offset = <0x1000>;
-                       fsl,dma-queues = <2>;
-                       status-sizes = <64>;
-                       queue-sizes = <64 64>;
-                       big-endian;
-               };
-
-DMA clients must use the format described in dma/dma.txt file.
diff --git a/Bindings/dma/fsl-qdma.yaml b/Bindings/dma/fsl-qdma.yaml
new file mode 100644 (file)
index 0000000..1b9ebdb
--- /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/dma/fsl-qdma.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP Layerscape SoC qDMA Controller
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    enum:
+      - fsl,ls1021a-qdma
+      - fsl,ls1028a-qdma
+      - fsl,ls1043a-qdma
+      - fsl,ls1046a-qdma
+
+  reg:
+    items:
+      - description: Controller regs
+      - description: Status regs
+      - description: Block regs
+
+  interrupts:
+    minItems: 2
+    maxItems: 5
+
+  interrupt-names:
+    minItems: 2
+    items:
+      - const: qdma-error
+      - const: qdma-queue0
+      - const: qdma-queue1
+      - const: qdma-queue2
+      - const: qdma-queue3
+
+  dma-channels:
+    minimum: 1
+    maximum: 64
+
+  fsl,dma-queues:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Should contain number of queues supported.
+    minimum: 1
+    maximum: 4
+
+  block-number:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: the virtual block number
+
+  block-offset:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: the offset of different virtual block
+
+  status-sizes:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: status queue size of per virtual block
+
+  queue-sizes:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      command queue size of per virtual block, the size number
+      based on queues
+
+  big-endian:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      If present registers and hardware scatter/gather descriptors
+      of the qDMA are implemented in big endian mode, otherwise in little
+      mode.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-names
+  - fsl,dma-queues
+  - block-number
+  - block-offset
+  - status-sizes
+  - queue-sizes
+
+allOf:
+  - $ref: dma-controller.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,ls1028a-qdma
+              - fsl,ls1043a-qdma
+              - fsl,ls1046a-qdma
+    then:
+      properties:
+        interrupts:
+          minItems: 5
+        interrupt-names:
+          minItems: 5
+    else:
+      properties:
+        interrupts:
+          maxItems: 3
+        interrupt-names:
+          maxItems: 3
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    dma-controller@8390000 {
+        compatible = "fsl,ls1021a-qdma";
+        reg = <0x8388000 0x1000>, /* Controller regs */
+              <0x8389000 0x1000>, /* Status regs */
+              <0x838a000 0x2000>; /* Block regs */
+        interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "qdma-error", "qdma-queue0", "qdma-queue1";
+        #dma-cells = <1>;
+        dma-channels = <8>;
+        block-number = <2>;
+        block-offset = <0x1000>;
+        status-sizes = <64>;
+        queue-sizes = <64 64>;
+        big-endian;
+        fsl,dma-queues = <2>;
+    };
+
index deb64cb9ca3eacf092b1f92a14407092689212d3..4df4e61895d2129caf7f2ad9b426d78b60f9c32b 100644 (file)
@@ -27,6 +27,7 @@ properties:
               - qcom,qcm2290-gpi-dma
               - qcom,qdu1000-gpi-dma
               - qcom,sc7280-gpi-dma
+              - qcom,sdx75-gpi-dma
               - qcom,sm6115-gpi-dma
               - qcom,sm6375-gpi-dma
               - qcom,sm8350-gpi-dma
diff --git a/Bindings/dma/sprd,sc9860-dma.yaml b/Bindings/dma/sprd,sc9860-dma.yaml
new file mode 100644 (file)
index 0000000..9464721
--- /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/dma/sprd,sc9860-dma.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Spreadtrum SC9860 DMA controller
+
+description: |
+  There are three DMA controllers: AP DMA, AON DMA and AGCP DMA. For AGCP
+  DMA controller, it can or do not request the IRQ, which will save
+  system power without resuming system by DMA interrupts if AGCP DMA
+  does not request the IRQ.
+
+maintainers:
+  - Orson Zhai <orsonzhai@gmail.com>
+  - Baolin Wang <baolin.wang7@gmail.com>
+  - Chunyan Zhang <zhang.lyra@gmail.com>
+
+properties:
+  compatible:
+    const: sprd,sc9860-dma
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    minItems: 1
+    items:
+      - description: DMA enable clock
+      - description: optional ashb_eb clock, only for the AGCP DMA controller
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: enable
+      - const: ashb_eb
+
+  '#dma-cells':
+    const: 1
+
+  dma-channels:
+    const: 32
+
+  '#dma-channels':
+    const: 32
+    deprecated: true
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#dma-cells'
+  - dma-channels
+
+allOf:
+  - $ref: dma-controller.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/sprd,sc9860-clk.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    /* AP DMA controller */
+    dma-controller@20100000 {
+      compatible = "sprd,sc9860-dma";
+      reg = <0x20100000 0x4000>;
+      interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+      clocks = <&apahb_gate CLK_DMA_EB>;
+      clock-names = "enable";
+      #dma-cells = <1>;
+      dma-channels = <32>;
+    };
+
+    /* AGCP DMA controller */
+    dma-controller@41580000 {
+      compatible = "sprd,sc9860-dma";
+      reg = <0x41580000 0x4000>;
+      clocks = <&agcp_gate CLK_AGCP_DMAAP_EB>,
+               <&agcp_gate CLK_AGCP_AP_ASHB_EB>;
+      clock-names = "enable", "ashb_eb";
+      #dma-cells = <1>;
+      dma-channels = <32>;
+    };
+...
diff --git a/Bindings/dma/sprd-dma.txt b/Bindings/dma/sprd-dma.txt
deleted file mode 100644 (file)
index c7e9b5f..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-* Spreadtrum DMA controller
-
-This binding follows the generic DMA bindings defined in dma.txt.
-
-Required properties:
-- compatible: Should be "sprd,sc9860-dma".
-- reg: Should contain DMA registers location and length.
-- interrupts: Should contain one interrupt shared by all channel.
-- #dma-cells: must be <1>. Used to represent the number of integer
-       cells in the dmas property of client device.
-- dma-channels : Number of DMA channels supported. Should be 32.
-- clock-names: Should contain the clock of the DMA controller.
-- clocks: Should contain a clock specifier for each entry in clock-names.
-
-Deprecated properties:
-- #dma-channels : Number of DMA channels supported. Should be 32.
-
-Example:
-
-Controller:
-apdma: dma-controller@20100000 {
-       compatible = "sprd,sc9860-dma";
-       reg = <0x20100000 0x4000>;
-       interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
-       #dma-cells = <1>;
-       dma-channels = <32>;
-       clock-names = "enable";
-       clocks = <&clk_ap_ahb_gates 5>;
-};
-
-
-Client:
-DMA clients connected to the Spreadtrum DMA controller must use the format
-described in the dma.txt file, using a two-cell specifier for each channel.
-The two cells in order are:
-1. A phandle pointing to the DMA controller.
-2. The slave id.
-
-spi0: spi@70a00000{
-       ...
-       dma-names = "rx_chn", "tx_chn";
-       dmas = <&apdma 11>, <&apdma 12>;
-       ...
-};
similarity index 97%
rename from Bindings/dma/st,stm32-dma.yaml
rename to Bindings/dma/stm32/st,stm32-dma.yaml
index ff935a0068ec5888001ca0e7249f6bbb6c07d778..11a289f1d5059dbd9cdfd1a020435955f4cb3af7 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/dma/st,stm32-dma.yaml#
+$id: http://devicetree.org/schemas/dma/stm32/st,stm32-dma.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: STMicroelectronics STM32 DMA Controller
@@ -53,7 +53,7 @@ maintainers:
   - Amelie Delaunay <amelie.delaunay@foss.st.com>
 
 allOf:
-  - $ref: dma-controller.yaml#
+  - $ref: /schemas/dma/dma-controller.yaml#
 
 properties:
   "#dma-cells":
diff --git a/Bindings/dma/stm32/st,stm32-dma3.yaml b/Bindings/dma/stm32/st,stm32-dma3.yaml
new file mode 100644 (file)
index 0000000..7fdc44b
--- /dev/null
@@ -0,0 +1,135 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/dma/stm32/st,stm32-dma3.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics STM32 DMA3 Controller
+
+description: |
+  The STM32 DMA3 is a direct memory access controller with different features
+  depending on its hardware configuration.
+  It is either called LPDMA (Low Power), GPDMA (General Purpose) or HPDMA (High
+  Performance).
+  Its hardware configuration registers allow to dynamically expose its features.
+
+  GPDMA and HPDMA support 16 independent DMA channels, while only 4 for LPDMA.
+  GPDMA and HPDMA support 256 DMA requests from peripherals, 8 for LPDMA.
+
+  Bindings are generic for these 3 STM32 DMA3 configurations.
+
+  DMA clients connected to the STM32 DMA3 controller must use the format
+  described in "#dma-cells" property description below, using a three-cell
+  specifier for each channel.
+
+maintainers:
+  - Amelie Delaunay <amelie.delaunay@foss.st.com>
+
+allOf:
+  - $ref: /schemas/dma/dma-controller.yaml#
+
+properties:
+  compatible:
+    const: st,stm32mp25-dma3
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    minItems: 4
+    maxItems: 16
+    description:
+      Should contain all of the per-channel DMA interrupts in ascending order
+      with respect to the DMA channel index.
+
+  clocks:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  "#dma-cells":
+    const: 3
+    description: |
+      Specifies the number of cells needed to provide DMA controller specific
+      information.
+      The first cell is the request line number.
+      The second cell is a 32-bit mask specifying the DMA channel requirements:
+        -bit 0-1: The priority level
+          0x0: low priority, low weight
+          0x1: low priority, mid weight
+          0x2: low priority, high weight
+          0x3: high priority
+        -bit 4-7: The FIFO requirement for queuing source/destination transfers
+          0x0: no FIFO requirement/any channel can fit
+          0x2: FIFO of 8 bytes (2^2+1)
+          0x4: FIFO of 32 bytes (2^4+1)
+          0x6: FIFO of 128 bytes (2^6+1)
+          0x7: FIFO of 256 bytes (2^7+1)
+      The third cell is a 32-bit mask specifying the DMA transfer requirements:
+        -bit 0: The source incrementing burst
+          0x0: fixed burst
+          0x1: contiguously incremented burst
+        -bit 1: The source allocated port
+          0x0: port 0 is allocated to the source transfer
+          0x1: port 1 is allocated to the source transfer
+        -bit 4: The destination incrementing burst
+          0x0: fixed burst
+          0x1: contiguously incremented burst
+        -bit 5: The destination allocated port
+          0x0: port 0 is allocated to the destination transfer
+          0x1: port 1 is allocated to the destination transfer
+        -bit 8: The type of hardware request
+          0x0: burst
+          0x1: block
+        -bit 9: The control mode
+          0x0: DMA controller control mode
+          0x1: peripheral control mode
+        -bit 12-13: The transfer complete event mode
+          0x0: at block level, transfer complete event is generated at the end
+               of a block
+          0x2: at LLI level, the transfer complete event is generated at the end
+               of the LLI transfer
+               including the update of the LLI if any
+          0x3: at channel level, the transfer complete event is generated at the
+               end of the last LLI
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - "#dma-cells"
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/st,stm32mp25-rcc.h>
+    dma-controller@40400000 {
+      compatible = "st,stm32mp25-dma3";
+      reg = <0x40400000 0x1000>;
+      interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 41 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>,
+                   <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
+                   <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+      clocks = <&rcc CK_BUS_HPDMA1>;
+      #dma-cells = <3>;
+    };
+...
similarity index 90%
rename from Bindings/dma/st,stm32-dmamux.yaml
rename to Bindings/dma/stm32/st,stm32-dmamux.yaml
index ddf82bf1e71aebdd09591dce906206417e8289b2..f26c914a3a9a5cf074071ce72722c6693f30efc5 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/dma/st,stm32-dmamux.yaml#
+$id: http://devicetree.org/schemas/dma/stm32/st,stm32-dmamux.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: STMicroelectronics STM32 DMA MUX (DMA request router)
@@ -10,7 +10,7 @@ maintainers:
   - Amelie Delaunay <amelie.delaunay@foss.st.com>
 
 allOf:
-  - $ref: dma-router.yaml#
+  - $ref: /schemas/dma/dma-router.yaml#
 
 properties:
   "#dma-cells":
similarity index 96%
rename from Bindings/dma/st,stm32-mdma.yaml
rename to Bindings/dma/stm32/st,stm32-mdma.yaml
index 3874544dfa74772f99922e61bb5ac72b108cff20..45fe91db11dbe07f8a044b9e2307507e176bbef0 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/dma/st,stm32-mdma.yaml#
+$id: http://devicetree.org/schemas/dma/stm32/st,stm32-mdma.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: STMicroelectronics STM32 MDMA Controller
@@ -53,7 +53,7 @@ maintainers:
   - Amelie Delaunay <amelie.delaunay@foss.st.com>
 
 allOf:
-  - $ref: dma-controller.yaml#
+  - $ref: /schemas/dma/dma-controller.yaml#
 
 properties:
   "#dma-cells":
index 3c36cd0510de8364fd3bb034fd2e9c8e32ed5b85..e396e47b2f13cb0e57bffceaabee255658ad2a5e 100644 (file)
@@ -18,7 +18,9 @@ select:
   properties:
     compatible:
       contains:
-        pattern: "^atmel,(24(c|cs|mac)[0-9]+|spd)$"
+        anyOf:
+          - pattern: "^atmel,(24(c|cs|mac)[0-9]+|spd)$"
+          - enum: ["microchip,24aa025e48", "microchip,24aa025e64"]
   required:
     - compatible
 
@@ -102,9 +104,6 @@ properties:
                   pattern: spd$
       # These are special cases that don't conform to the above pattern.
       # Each requires a standard at24 model as fallback.
-      - items:
-          - const: belling,bl24c16a
-          - const: atmel,24c16
       - items:
           - enum:
               - rohm,br24g01
@@ -122,16 +121,25 @@ properties:
               - rohm,br24g04
           - const: atmel,24c04
       - items:
-          - const: renesas,r1ex24016
+          - enum:
+              - belling,bl24c16a
+              - renesas,r1ex24016
           - const: atmel,24c16
       - items:
           - const: giantec,gt24c32a
           - const: atmel,24c32
+      - items:
+          - const: onnn,n24s64b
+          - const: atmel,24c64
       - items:
           - enum:
               - renesas,r1ex24128
               - samsung,s524ad0xd1
           - const: atmel,24c128
+      - items:
+          - const: microchip,24aa025e48
+      - items:
+          - const: microchip,24aa025e64
       - pattern: '^atmel,24c(32|64)d-wl$' # Actual vendor is st
 
   label:
index 1715b0c9feeafe9153d30a814135385201446767..c31e5e719525015ad4f06a3f7164a0b1e874901c 100644 (file)
@@ -28,6 +28,7 @@ properties:
               - anvo,anv32e61w
               - atmel,at25256B
               - fujitsu,mb85rs1mt
+              - fujitsu,mb85rs256
               - fujitsu,mb85rs64
               - microchip,at25160bn
               - microchip,25lc040
index 7de2c29606e5aa4ab985273950468471df83fa96..4d823f3b1f0e900c29f5999c7a2372166dcdd2a3 100644 (file)
@@ -72,14 +72,17 @@ properties:
           - const: tx
           - const: tx_reply
           - const: rx
+          - const: rx_reply
         minItems: 2
 
   mboxes:
     description:
       List of phandle and mailbox channel specifiers. It should contain
-      exactly one, two or three mailboxes; the first one or two for transmitting
-      messages ("tx") and another optional ("rx") for receiving notifications
-      and delayed responses, if supported by the platform.
+      exactly one, two, three or four mailboxes; the first one or two for
+      transmitting messages ("tx") and another optional ("rx") for receiving
+      notifications and delayed responses, if supported by the platform.
+      The optional ("rx_reply") is for notifications completion interrupt,
+      if supported by the platform.
       The number of mailboxes needed for transmitting messages depends on the
       type of channels exposed by the specific underlying mailbox controller;
       one single channel descriptor is enough if such channel is bidirectional,
@@ -92,9 +95,10 @@ properties:
        2 mbox / 2 shmem => SCMI TX and RX over 2 mailbox bidirectional channels
        2 mbox / 1 shmem => SCMI TX over 2 mailbox unidirectional channels
        3 mbox / 2 shmem => SCMI TX and RX over 3 mailbox unidirectional channels
+       4 mbox / 2 shmem => SCMI TX and RX over 4 mailbox unidirectional channels
       Any other combination of mboxes and shmem is invalid.
     minItems: 1
-    maxItems: 3
+    maxItems: 4
 
   shmem:
     description:
@@ -251,7 +255,9 @@ properties:
     type: object
     allOf:
       - $ref: '#/$defs/protocol-node'
-      - $ref: /schemas/pinctrl/pinctrl.yaml
+      - anyOf:
+          - $ref: /schemas/pinctrl/pinctrl.yaml
+          - $ref: /schemas/firmware/nxp,imx95-scmi-pinctrl.yaml
 
     unevaluatedProperties: false
 
diff --git a/Bindings/firmware/cznic,turris-omnia-mcu.yaml b/Bindings/firmware/cznic,turris-omnia-mcu.yaml
new file mode 100644 (file)
index 0000000..af92496
--- /dev/null
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/firmware/cznic,turris-omnia-mcu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: CZ.NIC's Turris Omnia MCU
+
+maintainers:
+  - Marek Behún <kabel@kernel.org>
+
+description:
+  The MCU on Turris Omnia acts as a system controller providing additional
+  GPIOs, interrupts, watchdog, system power off and wakeup configuration.
+
+properties:
+  compatible:
+    const: cznic,turris-omnia-mcu
+
+  reg:
+    description: MCU I2C slave address
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-controller: true
+
+  '#interrupt-cells':
+    const: 2
+    description: |
+      The first cell specifies the interrupt number (0 to 63), the second cell
+      specifies interrupt type (which can be one of IRQ_TYPE_EDGE_RISING,
+      IRQ_TYPE_EDGE_FALLING or IRQ_TYPE_EDGE_BOTH).
+      The interrupt numbers correspond sequentially to GPIO numbers, taking the
+      GPIO banks into account:
+        IRQ number   GPIO bank   GPIO pin within bank
+           0 - 15      0           0 - 15
+          16 - 47      1           0 - 31
+          48 - 63      2           0 - 15
+      There are several exceptions:
+        IRQ number   meaning
+          11           LED panel brightness changed by button press
+          13           TRNG entropy ready
+          14           ECDSA message signature computation done
+
+  gpio-controller: true
+
+  '#gpio-cells':
+    const: 3
+    description:
+      The first cell is bank number (0, 1 or 2), the second cell is pin number
+      within the bank (0 to 15 for banks 0 and 2, 0 to 31 for bank 1), and the
+      third cell specifies consumer flags.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-controller
+  - gpio-controller
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        system-controller@2a {
+            compatible = "cznic,turris-omnia-mcu";
+            reg = <0x2a>;
+
+            interrupt-parent = <&gpio1>;
+            interrupts = <11 IRQ_TYPE_NONE>;
+
+            gpio-controller;
+            #gpio-cells = <3>;
+
+            interrupt-controller;
+            #interrupt-cells = <2>;
+        };
+    };
diff --git a/Bindings/firmware/nxp,imx95-scmi-pinctrl.yaml b/Bindings/firmware/nxp,imx95-scmi-pinctrl.yaml
new file mode 100644 (file)
index 0000000..a96fc6c
--- /dev/null
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2024 NXP
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/firmware/nxp,imx95-scmi-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: i.MX System Control and Management Interface (SCMI) Pinctrl Protocol
+
+maintainers:
+  - Peng Fan <peng.fan@nxp.com>
+
+allOf:
+  - $ref: /schemas/pinctrl/pinctrl.yaml
+
+patternProperties:
+  'grp$':
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+
+    unevaluatedProperties: false
+
+    properties:
+      fsl,pins:
+        description:
+          each entry consists of 6 integers and represents the mux and config
+          setting for one pin. The first 5 integers <mux_reg conf_reg input_reg
+          mux_val input_val> are specified using a PIN_FUNC_ID macro, which can
+          be found in <arch/arm64/boot/dts/freescale/imx95-pinfunc.h>. The last
+          integer CONFIG is the pad setting value like pull-up on this pin.
+          Please refer to i.MX95 Reference Manual for detailed CONFIG settings.
+        $ref: /schemas/types.yaml#/definitions/uint32-matrix
+        items:
+          items:
+            - description: |
+                "mux_reg" indicates the offset of mux register.
+            - description: |
+                "conf_reg" indicates the offset of pad configuration register.
+            - description: |
+                "input_reg" indicates the offset of select input register.
+            - description: |
+                "mux_val" indicates the mux value to be applied.
+            - description: |
+                "input_val" indicates the select input value to be applied.
+            - description: |
+                "pad_setting" indicates the pad configuration value to be applied.
+
+    required:
+      - fsl,pins
+
+additionalProperties: true
index 47d3d2d52acd2e60a17014b6f8d646a914d23238..2cc83771d8e708c8e45bf977ab4a94b1cc846eb4 100644 (file)
@@ -93,6 +93,11 @@ properties:
       protocol to handle sleeping SCM calls.
     maxItems: 1
 
+  memory-region:
+    description:
+      Phandle to the memory region reserved for the shared memory bridge to TZ.
+    maxItems: 1
+
   qcom,sdi-enabled:
     description:
       Indicates that the SDI (Secure Debug Image) has been enabled by TZ
@@ -193,6 +198,16 @@ allOf:
     then:
       properties:
         interrupts: false
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              enum:
+                - qcom,scm-sa8775p
+    then:
+      properties:
+        memory-region: false
 
 required:
   - compatible
diff --git a/Bindings/fsi/aspeed,ast2600-fsi-master.yaml b/Bindings/fsi/aspeed,ast2600-fsi-master.yaml
new file mode 100644 (file)
index 0000000..dfcc2fa
--- /dev/null
@@ -0,0 +1,121 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/fsi/aspeed,ast2600-fsi-master.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Aspeed FSI master
+
+maintainers:
+  - Eddie James <eajames@linux.ibm.com>
+
+description:
+  The AST2600 and later contain two identical FSI masters. They share a
+  clock and have a separate interrupt line and output pins.
+
+properties:
+  compatible:
+    enum:
+      - aspeed,ast2600-fsi-master
+      - aspeed,ast2700-fsi-master
+
+  clocks:
+    maxItems: 1
+
+  cfam-reset-gpios:
+    maxItems: 1
+    description:
+      Output GPIO pin for CFAM reset
+
+  fsi-routing-gpios:
+    maxItems: 1
+    description:
+      Output GPIO pin for setting the FSI mux (internal or cabled)
+
+  fsi-mux-gpios:
+    maxItems: 1
+    description:
+      Input GPIO pin for detecting the desired FSI mux state
+
+  interrupts:
+    maxItems: 1
+
+if:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - aspeed,ast2600-fsi-master
+then:
+  properties:
+    reg:
+      maxItems: 1
+else:
+  properties:
+    reg:
+      minItems: 1
+      items:
+        - description: OPB control registers
+        - description: FSI controller registers
+        - description: FSI link address space
+    reg-names:
+      items:
+        - const: opb
+        - const: ctrl
+        - const: fsi
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - interrupts
+
+allOf:
+  - $ref: fsi-controller.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/ast2600-clock.h>
+    #include <dt-bindings/gpio/aspeed-gpio.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    fsi-master@1e79b000 {
+        compatible = "aspeed,ast2600-fsi-master";
+        reg = <0x1e79b000 0x94>;
+        #address-cells = <2>;
+        #size-cells = <0>;
+        interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&pinctrl_fsi1_default>;
+        clocks = <&syscon ASPEED_CLK_GATE_FSICLK>;
+        fsi-routing-gpios = <&gpio0 ASPEED_GPIO(Q, 7) GPIO_ACTIVE_HIGH>;
+        fsi-mux-gpios = <&gpio0 ASPEED_GPIO(B, 0) GPIO_ACTIVE_HIGH>;
+        cfam-reset-gpios = <&gpio0 ASPEED_GPIO(Q, 0) GPIO_ACTIVE_LOW>;
+
+        cfam@0,0 {
+            reg = <0 0>;
+            #address-cells = <1>;
+            #size-cells = <1>;
+            chip-id = <0>;
+        };
+    };
+  - |
+    bus {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        fsi-master@21800000 {
+            compatible = "aspeed,ast2700-fsi-master";
+            reg = <0x0 0x21800000 0x0 0x100>,
+                  <0x0 0x21000000 0x0 0x1000>,
+                  <0x0 0x20000000 0x0 0x1000000>;
+            reg-names = "opb", "ctrl", "fsi";
+            #interrupt-cells = <1>;
+            interrupt-controller;
+            interrupts-extended = <&intc 6>;
+            pinctrl-names = "default";
+            pinctrl-0 = <&pinctrl_fsi0_default>;
+            clocks = <&syscon 40>;
+        };
+    };
diff --git a/Bindings/fsi/fsi-controller.yaml b/Bindings/fsi/fsi-controller.yaml
new file mode 100644 (file)
index 0000000..ffe1919
--- /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/fsi/fsi-controller.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: FSI Controller Common Properties
+
+maintainers:
+  - Eddie James <eajames@linux.ibm.com>
+
+description:
+  FSI (FRU (Field Replaceable Unit) Service Interface) is a two wire bus. The
+  FSI bus is connected to a CFAM (Common FRU Access Macro) which contains
+  various engines such as I2C controllers, SPI controllers, etc.
+
+properties:
+  "#address-cells":
+    const: 2
+
+  "#size-cells":
+    const: 0
+
+  '#interrupt-cells':
+    const: 1
+
+  bus-frequency:
+    minimum: 1
+    maximum: 200000000
+
+  interrupt-controller: true
+
+  no-scan-on-init:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      The FSI controller cannot scan the bus during initialization.
+
+patternProperties:
+  "cfam@[0-9a-f],[0-9a-f]":
+    type: object
+    properties:
+      chip-id:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description:
+          Processor index, a global unique chip ID which is used to identify
+          the physical location of the chip in a system specific way.
+
+      bus-frequency:
+        minimum: 1
+        maximum: 100000000
+
+      reg:
+        maxItems: 1
+
+      "#address-cells":
+        const: 1
+
+      "#size-cells":
+        const: 1
+
+    required:
+      - reg
+
+    additionalProperties: true
+
+additionalProperties: true
diff --git a/Bindings/fsi/fsi-master-aspeed.txt b/Bindings/fsi/fsi-master-aspeed.txt
deleted file mode 100644 (file)
index 9853fef..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-Device-tree bindings for AST2600 FSI master
--------------------------------------------
-
-The AST2600 contains two identical FSI masters. They share a clock and have a
-separate interrupt line and output pins.
-
-Required properties:
- - compatible: "aspeed,ast2600-fsi-master"
- - reg: base address and length
- - clocks: phandle and clock number
- - interrupts: platform dependent interrupt description
- - pinctrl-0: phandle to pinctrl node
- - pinctrl-names: pinctrl state
-
-Optional properties:
- - cfam-reset-gpios: GPIO for CFAM reset
-
- - fsi-routing-gpios: GPIO for setting the FSI mux (internal or cabled)
- - fsi-mux-gpios: GPIO for detecting the desired FSI mux state
-
-
-Examples:
-
-    fsi-master {
-        compatible = "aspeed,ast2600-fsi-master", "fsi-master";
-        reg = <0x1e79b000 0x94>;
-       interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_fsi1_default>;
-       clocks = <&syscon ASPEED_CLK_GATE_FSICLK>;
-
-       fsi-routing-gpios = <&gpio0 ASPEED_GPIO(Q, 7) GPIO_ACTIVE_HIGH>;
-       fsi-mux-gpios = <&gpio0 ASPEED_GPIO(B, 0) GPIO_ACTIVE_HIGH>;
-
-       cfam-reset-gpios = <&gpio0 ASPEED_GPIO(Q, 0) GPIO_ACTIVE_LOW>;
-    };
index e2ca0b00047147d398bcf70252ce976354c465d7..ad5c83f4842558996edfa1864c379e5053dcaeee 100644 (file)
@@ -9,11 +9,10 @@ title: IBM FSI-attached SPI controllers
 maintainers:
   - Eddie James <eajames@linux.ibm.com>
 
-description: |
+description:
   This binding describes an FSI CFAM engine called the FSI2SPI. Therefore this
-  node will always be a child of an FSI CFAM node; see fsi.txt for details on
-  FSI slave and CFAM nodes. This FSI2SPI engine provides access to a number of
-  SPI controllers.
+  node will always be a child of an FSI CFAM node. This FSI2SPI engine provides
+  access to a number of SPI controllers.
 
 properties:
   compatible:
@@ -24,6 +23,17 @@ properties:
     items:
       - description: FSI slave address
 
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^spi@[0-9a-f]+$":
+    type: object
+    $ref: /schemas/spi/ibm,spi-fsi.yaml
+
 required:
   - compatible
   - reg
@@ -35,4 +45,22 @@ examples:
     fsi2spi@1c00 {
         compatible = "ibm,fsi2spi";
         reg = <0x1c00 0x400>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        spi@0 {
+            compatible = "ibm,spi-fsi";
+            reg = <0>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            eeprom@0 {
+                compatible = "atmel,at25";
+                reg = <0>;
+                address-width = <24>;
+                pagesize = <256>;
+                size = <0x80000>;
+                spi-max-frequency = <1000000>;
+            };
+        };
     };
index 442cecdc57cb10187060886b643f1a2f1910b528..e49ace3ca339f0ccbf9d5ef33799061d627be080 100644 (file)
@@ -26,7 +26,10 @@ required:
   - compatible
   - reg
 
-additionalProperties: false
+allOf:
+  - $ref: fsi-controller.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
diff --git a/Bindings/fsi/ibm,p9-fsi-controller.yaml b/Bindings/fsi/ibm,p9-fsi-controller.yaml
new file mode 100644 (file)
index 0000000..29ea80f
--- /dev/null
@@ -0,0 +1,45 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/fsi/ibm,p9-fsi-controller.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IBM FSI-attached FSI Hub Controller
+
+maintainers:
+  - Eddie James <eajames@linux.ibm.com>
+
+description:
+  The FSI Hub Controller is an FSI controller, providing a number of FSI links,
+  located on a CFAM. Therefore this node will always be a child of an FSI CFAM
+  node.
+
+properties:
+  compatible:
+    enum:
+      - ibm,p9-fsi-controller
+
+  reg:
+    items:
+      - description: FSI slave address
+
+allOf:
+  - $ref: fsi-controller.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    fsi@3400 {
+        compatible = "ibm,p9-fsi-controller";
+        reg = <0x3400 0x400>;
+        #address-cells = <2>;
+        #size-cells = <0>;
+
+        cfam@0,0 {
+            reg = <0 0>;
+            #address-cells = <1>;
+            #size-cells = <1>;
+            chip-id = <0>;
+        };
+    };
diff --git a/Bindings/fsi/ibm,p9-occ.txt b/Bindings/fsi/ibm,p9-occ.txt
deleted file mode 100644 (file)
index e733580..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Device-tree bindings for FSI-attached POWER9/POWER10 On-Chip Controller (OCC)
------------------------------------------------------------------------------
-
-This is the binding for the P9 or P10 On-Chip Controller accessed over FSI from
-a service processor. See fsi.txt for details on bindings for FSI slave and CFAM
-nodes. The OCC is not an FSI slave device itself, rather it is accessed
-through the SBE FIFO.
-
-Required properties:
- - compatible = "ibm,p9-occ" or "ibm,p10-occ"
-
-Examples:
-
-    occ {
-        compatible = "ibm,p9-occ";
-    };
diff --git a/Bindings/fsi/ibm,p9-occ.yaml b/Bindings/fsi/ibm,p9-occ.yaml
new file mode 100644 (file)
index 0000000..537eac7
--- /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/fsi/ibm,p9-occ.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IBM FSI-attached On-Chip Controller (OCC)
+
+maintainers:
+  - Eddie James <eajames@linux.ibm.com>
+
+description:
+  The POWER processor On-Chip Controller (OCC) helps manage power and
+  thermals for the system, accessed through the FSI-attached SBEFIFO
+  from a service processor.
+
+properties:
+  compatible:
+    enum:
+      - ibm,p9-occ
+      - ibm,p10-occ
+
+  hwmon:
+    type: object
+    $ref: /schemas/hwmon/ibm,occ-hwmon.yaml
+
+required:
+  - compatible
+
+additionalProperties: false
+
+examples:
+  - |
+    occ {
+        compatible = "ibm,p9-occ";
+
+        hwmon {
+            compatible = "ibm,p9-occ-hwmon";
+        };
+    };
diff --git a/Bindings/fsi/ibm,p9-sbefifo.yaml b/Bindings/fsi/ibm,p9-sbefifo.yaml
new file mode 100644 (file)
index 0000000..3cd966f
--- /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/fsi/ibm,p9-sbefifo.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IBM FSI-attached SBEFIFO engine
+
+maintainers:
+  - Eddie James <eajames@linux.ibm.com>
+
+description:
+  The SBEFIFO is an FSI CFAM engine that provides an interface to the
+  POWER processor Self Boot Engine (SBE). This node will always be a child
+  of an FSI CFAM node.
+
+properties:
+  compatible:
+    enum:
+      - ibm,p9-sbefifo
+      - ibm,odyssey-sbefifo
+
+  reg:
+    items:
+      - description: FSI slave address
+
+  occ:
+    type: object
+    $ref: ibm,p9-occ.yaml#
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    fsi-slave-engine@2400 {
+        compatible = "ibm,p9-sbefifo";
+        reg = <0x2400 0x400>;
+
+        occ {
+            compatible = "ibm,p9-occ";
+        };
+    };
diff --git a/Bindings/fsi/ibm,p9-scom.yaml b/Bindings/fsi/ibm,p9-scom.yaml
new file mode 100644 (file)
index 0000000..8cd14a7
--- /dev/null
@@ -0,0 +1,37 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/fsi/ibm,p9-scom.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IBM FSI-attached SCOM engine
+
+maintainers:
+  - Eddie James <eajames@linux.ibm.com>
+
+description:
+  The SCOM engine is an interface to the POWER processor PIB (Pervasive
+  Interconnect Bus). This node will always be a child of an FSI CFAM node.
+
+properties:
+  compatible:
+    enum:
+      - ibm,p9-scom
+      - ibm,i2cr-scom
+
+  reg:
+    items:
+      - description: FSI slave address
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    scom@1000 {
+        compatible = "ibm,p9-scom";
+        reg = <0x1000 0x400>;
+    };
diff --git a/Bindings/fuse/renesas,rcar-efuse.yaml b/Bindings/fuse/renesas,rcar-efuse.yaml
new file mode 100644 (file)
index 0000000..d7e2892
--- /dev/null
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/fuse/renesas,rcar-efuse.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: R-Car E-FUSE connected to PFC
+
+maintainers:
+  - Geert Uytterhoeven <geert+renesas@glider.be>
+
+description:
+  The E-FUSE is a type of non-volatile memory, which is accessible through the
+  Pin Function Controller (PFC) on some R-Car Gen4 SoCs.
+
+properties:
+  compatible:
+    enum:
+      - renesas,r8a779a0-efuse # R-Car V3U
+      - renesas,r8a779f0-efuse # R-Car S4-8
+
+  reg:
+    maxItems: 1
+    description: PFC System Group Fuse Control and Monitor register block
+
+  clocks:
+    maxItems: 1
+
+  power-domains:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - power-domains
+  - resets
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/r8a779a0-cpg-mssr.h>
+    #include <dt-bindings/power/r8a779a0-sysc.h>
+
+    fuse: fuse@e6078800 {
+            compatible = "renesas,r8a779a0-efuse";
+            reg = <0xe6078800 0x100>;
+            clocks = <&cpg CPG_MOD 916>;
+            power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+            resets = <&cpg 916>;
+    };
diff --git a/Bindings/fuse/renesas,rcar-otp.yaml b/Bindings/fuse/renesas,rcar-otp.yaml
new file mode 100644 (file)
index 0000000..d74872a
--- /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/fuse/renesas,rcar-otp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: R-Car E-FUSE connected to OTP_MEM
+
+maintainers:
+  - Geert Uytterhoeven <geert+renesas@glider.be>
+
+description:
+  The E-FUSE is a type of non-volatile memory, which is accessible through the
+  One-Time Programmable Memory (OTP_MEM) module on some R-Car Gen4 SoCs.
+
+properties:
+  compatible:
+    enum:
+      - renesas,r8a779g0-otp # R-CarV4H
+      - renesas,r8a779h0-otp # R-CarV4M
+
+  reg:
+    items:
+      - description: OTP_MEM_0
+      - description: OTP_MEM_1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    otp: otp@e61be000 {
+            compatible = "renesas,r8a779g0-otp";
+            reg = <0xe61be000 0x1000>, <0xe61bf000 0x1000>;
+    };
index 46bb121360dc5a784cbea921a3d5de56809384cb..1046f0331c095820a450d0889d7e17da57257869 100644 (file)
@@ -33,6 +33,11 @@ properties:
 
   gpio-controller: true
 
+  # Each SGPIO is represented as a pair of input and output GPIOs
+  gpio-line-names:
+    minItems: 160
+    maxItems: 256
+
   '#gpio-cells':
     const: 2
 
@@ -41,6 +46,9 @@ properties:
 
   interrupt-controller: true
 
+  '#interrupt-cells':
+    const: 2
+
   clocks:
     maxItems: 1
 
@@ -55,6 +63,7 @@ required:
   - '#gpio-cells'
   - interrupts
   - interrupt-controller
+  - '#interrupt-cells'
   - ngpios
   - clocks
   - bus-frequency
@@ -72,6 +81,7 @@ examples:
         reg = <0x1e780200 0x0100>;
         clocks = <&syscon ASPEED_CLK_APB>;
         interrupt-controller;
+        #interrupt-cells = <2>;
         ngpios = <80>;
         bus-frequency = <12000000>;
     };
diff --git a/Bindings/gpio/atmel,at91rm9200-gpio.yaml b/Bindings/gpio/atmel,at91rm9200-gpio.yaml
new file mode 100644 (file)
index 0000000..3dd7093
--- /dev/null
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/atmel,at91rm9200-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip GPIO controller (PIO)
+
+maintainers:
+  - Manikandan Muralidharan <manikandan.m@microchip.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - atmel,at91sam9x5-gpio
+              - microchip,sam9x60-gpio
+          - const: atmel,at91rm9200-gpio
+      - items:
+          - enum:
+              - microchip,sam9x7-gpio
+          - const: microchip,sam9x60-gpio
+          - const: atmel,at91rm9200-gpio
+      - items:
+          - const: atmel,at91rm9200-gpio
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    const: 2
+
+  gpio-controller: true
+  gpio-line-names: true
+
+  "#gpio-cells":
+    const: 2
+
+  clocks:
+    maxItems: 1
+
+  "#gpio-lines":
+    description:
+      Number of gpio, 32 by default if absent
+    maxItems: 1
+    default: 32
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-controller
+  - "#interrupt-cells"
+  - gpio-controller
+  - "#gpio-cells"
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/at91.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    gpio@fffff400 {
+            compatible = "atmel,at91rm9200-gpio";
+            reg = <0xfffff400 0x200>;
+            interrupts = <2 IRQ_TYPE_LEVEL_HIGH 1>;
+            #gpio-cells = <2>;
+            gpio-controller;
+            interrupt-controller;
+            #interrupt-cells = <2>;
+            clocks = <&pmc PMC_TYPE_PERIPHERAL 2>;
+    };
+...
diff --git a/Bindings/gpio/fsl,qoriq-gpio.yaml b/Bindings/gpio/fsl,qoriq-gpio.yaml
new file mode 100644 (file)
index 0000000..84fd822
--- /dev/null
@@ -0,0 +1,87 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/fsl,qoriq-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale MPC512x/MPC8xxx/QorIQ/Layerscape GPIO controller
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - fsl,mpc5121-gpio
+          - fsl,mpc5125-gpio
+          - fsl,mpc8349-gpio
+          - fsl,mpc8572-gpio
+          - fsl,mpc8610-gpio
+          - fsl,pq3-gpio
+      - items:
+          - enum:
+              - fsl,ls1021a-gpio
+              - fsl,ls1028a-gpio
+              - fsl,ls1043a-gpio
+              - fsl,ls1046a-gpio
+              - fsl,ls1088a-gpio
+              - fsl,ls2080a-gpio
+          - const: fsl,qoriq-gpio
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  "#gpio-cells":
+    const: 2
+
+  gpio-controller: true
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    const: 2
+
+  gpio-line-names:
+    minItems: 1
+    maxItems: 32
+
+  little-endian:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      GPIO registers are used as little endian. If not
+      present registers are used as big endian by default.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - "#gpio-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    gpio@1100 {
+        compatible = "fsl,mpc5125-gpio";
+        reg = <0x1100 0x080>;
+        interrupts = <78 0x8>;
+        gpio-controller;
+        #gpio-cells = <2>;
+    };
+
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    gpio@2300000 {
+        compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio";
+        reg = <0x2300000 0x10000>;
+        interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+        little-endian;
+        gpio-controller;
+        #gpio-cells = <2>;
+        interrupt-controller;
+        #interrupt-cells = <2>;
+    };
index 918776d16ef3f318b87c13ce797fe1724fb6bcb7..e1fc8bb6d379ab565f9837e0080d04b9d6e01703 100644 (file)
@@ -7,7 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale i.MX/MXC GPIO controller
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+  - Fabio Estevam <festevam@gmail.com>
 
 properties:
   compatible:
diff --git a/Bindings/gpio/gpio-mpc8xxx.txt b/Bindings/gpio/gpio-mpc8xxx.txt
deleted file mode 100644 (file)
index cd28e93..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-* Freescale MPC512x/MPC8xxx/QorIQ/Layerscape GPIO controller
-
-Required properties:
-- compatible : Should be "fsl,<soc>-gpio"
-  The following <soc>s are known to be supported:
-       mpc5121, mpc5125, mpc8349, mpc8572, mpc8610, pq3, qoriq,
-       ls1021a, ls1043a, ls2080a, ls1028a, ls1088a.
-- reg : Address and length of the register set for the device
-- interrupts : Should be the port interrupt shared by all 32 pins.
-- #gpio-cells : Should be two.  The first cell is the pin number and
-  the second cell is used to specify the gpio polarity:
-      0 = active high
-      1 = active low
-
-Optional properties:
-- little-endian : GPIO registers are used as little endian. If not
-                  present registers are used as big endian by default.
-
-Example of gpio-controller node for a mpc5125 SoC:
-
-gpio0: gpio@1100 {
-       compatible = "fsl,mpc5125-gpio";
-       #gpio-cells = <2>;
-       reg = <0x1100 0x080>;
-       interrupts = <78 0x8>;
-};
-
-Example of gpio-controller node for a ls2080a SoC:
-
-gpio0: gpio@2300000 {
-       compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio";
-       reg = <0x0 0x2300000 0x0 0x10000>;
-       interrupts = <0 36 0x4>; /* Level high type */
-       gpio-controller;
-       little-endian;
-       #gpio-cells = <2>;
-       interrupt-controller;
-       #interrupt-cells = <2>;
-};
-
-
-Example of gpio-controller node for a ls1028a/ls1088a SoC:
-
-gpio1: gpio@2300000 {
-       compatible = "fsl,ls1028a-gpio", "fsl,ls1088a-gpio", "fsl,qoriq-gpio";
-       reg = <0x0 0x2300000 0x0 0x10000>;
-       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
-       gpio-controller;
-       #gpio-cells = <2>;
-       interrupt-controller;
-       #interrupt-cells = <2>;
-       little-endian;
-};
index dfa1133f8c5e4eb223b3c4e68cff066a0d52d822..8ff54369d16c888620c7fe9ea79e7fa0a2b62008 100644 (file)
@@ -8,7 +8,6 @@ title: Freescale MXS GPIO controller
 
 maintainers:
   - Shawn Guo <shawnguo@kernel.org>
-  - Anson Huang <Anson.Huang@nxp.com>
 
 description: |
   The Freescale MXS GPIO controller is part of MXS PIN controller.
index 99febb8ea1b6117a0577a2d6441d14cedcb6b0dc..51e8390d6b32b3225195d5875b1a263fd8c305fb 100644 (file)
@@ -66,6 +66,7 @@ properties:
               - ti,tca6408
               - ti,tca6416
               - ti,tca6424
+              - ti,tca9535
               - ti,tca9538
               - ti,tca9539
               - ti,tca9554
index a27f929502575dd44ea44c6ca595d5cfe5f4c657..cabda2eab4a230b632b7adeab44477564d510ac5 100644 (file)
@@ -51,6 +51,10 @@ properties:
 
   gpio-controller: true
 
+  gpio-line-names:
+    minItems: 1
+    maxItems: 32
+
   clocks:
     items:
       - description: SoC GPIO clock
diff --git a/Bindings/gpio/gpio-zevio.txt b/Bindings/gpio/gpio-zevio.txt
deleted file mode 100644 (file)
index a37bd9a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Zevio GPIO controller
-
-Required properties:
-- compatible: Should be "lsi,zevio-gpio"
-- reg: Address and length of the register set for the device
-- #gpio-cells: Should be two. The first cell is the pin number and the
-  second cell is used to specify optional parameters (currently unused).
-- gpio-controller: Marks the device node as a GPIO controller.
-
-Example:
-       gpio: gpio@90000000 {
-               compatible = "lsi,zevio-gpio";
-               reg = <0x90000000 0x1000>;
-               gpio-controller;
-               #gpio-cells = <2>;
-       };
diff --git a/Bindings/gpio/gpio_atmel.txt b/Bindings/gpio/gpio_atmel.txt
deleted file mode 100644 (file)
index 29416f9..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-* Atmel GPIO controller (PIO)
-
-Required properties:
-- compatible: "atmel,<chip>-gpio", where <chip> is at91rm9200 or at91sam9x5.
-- reg: Should contain GPIO controller registers location and length
-- interrupts: Should be the port interrupt shared by all the pins.
-- #gpio-cells: Should be two.  The first cell is the pin number and
-  the second cell is used to specify optional parameters to declare if the GPIO
-  is active high or low. See gpio.txt.
-- gpio-controller: Marks the device node as a GPIO controller.
-- interrupt-controller: Marks the device node as an interrupt controller.
-- #interrupt-cells: Should be two. The first cell is the pin number and the
-  second cell is used to specify irq type flags, see the two cell description
-  in interrupt-controller/interrupts.txt for details.
-
-optional properties:
-- #gpio-lines: Number of gpio if absent 32.
-
-
-Example:
-       pioA: gpio@fffff200 {
-               compatible = "atmel,at91rm9200-gpio";
-               reg = <0xfffff200 0x100>;
-               interrupts = <2 4>;
-               #gpio-cells = <2>;
-               gpio-controller;
-               #gpio-lines = <19>;
-               interrupt-controller;
-               #interrupt-cells = <2>;
-       };
-
diff --git a/Bindings/gpio/lsi,zevio-gpio.yaml b/Bindings/gpio/lsi,zevio-gpio.yaml
new file mode 100644 (file)
index 0000000..e9e201a
--- /dev/null
@@ -0,0 +1,43 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/lsi,zevio-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Zevio GPIO controller
+
+maintainers:
+  - Pratik Farkase <pratikfarkase94@gmail.com>
+
+properties:
+  compatible:
+    items:
+      - const: lsi,zevio-gpio
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  "#gpio-cells":
+    const: 2
+
+  gpio-controller: true
+
+required:
+  - compatible
+  - reg
+  - "#gpio-cells"
+  - gpio-controller
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    gpio@90000000 {
+        compatible = "lsi,zevio-gpio";
+        reg = <0x90000000 0x1000>;
+        gpio-controller;
+        #gpio-cells = <2>;
+    };
index e796a1ff8c82485ff1ee949ad9517fb83a03ad78..278399adc5506973dcb399807ba96a9a061b0c16 100644 (file)
@@ -34,6 +34,7 @@ properties:
           - const: arm,mali-valhall-jm # Mali Valhall GPU model/revision is fully discoverable
       - items:
           - enum:
+              - mediatek,mt8188-mali
               - mediatek,mt8192-mali
           - const: arm,mali-valhall-jm # Mali Valhall GPU model/revision is fully discoverable
 
@@ -195,7 +196,9 @@ allOf:
       properties:
         compatible:
           contains:
-            const: mediatek,mt8183b-mali
+            enum:
+              - mediatek,mt8183b-mali
+              - mediatek,mt8188-mali
     then:
       properties:
         power-domains:
diff --git a/Bindings/hwmon/g762.txt b/Bindings/hwmon/g762.txt
deleted file mode 100644 (file)
index 6d154c4..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-GMT G762/G763 PWM Fan controller
-
-Required node properties:
-
- - "compatible": must be either "gmt,g762" or "gmt,g763"
- - "reg": I2C bus address of the device
- - "clocks": a fixed clock providing input clock frequency
-            on CLK pin of the chip.
-
-Optional properties:
-
- - "fan_startv": fan startup voltage. Accepted values are 0, 1, 2 and 3.
-              The higher the more.
-
- - "pwm_polarity": pwm polarity. Accepted values are 0 (positive duty)
-              and 1 (negative duty).
-
- - "fan_gear_mode": fan gear mode. Supported values are 0, 1 and 2.
-
-If an optional property is not set in .dts file, then current value is kept
-unmodified (e.g. u-boot installed value).
-
-Additional information on operational parameters for the device is available
-in Documentation/hwmon/g762.rst. A detailed datasheet for the device is available
-at http://natisbad.org/NAS/refs/GMT_EDS-762_763-080710-0.2.pdf.
-
-Example g762 node:
-
-   clocks {
-       #address-cells = <1>;
-       #size-cells = <0>;
-
-       g762_clk: fixedclk {
-                compatible = "fixed-clock";
-                #clock-cells = <0>;
-                clock-frequency = <8192>;
-       }
-   }
-
-   g762: g762@3e {
-       compatible = "gmt,g762";
-       reg = <0x3e>;
-       clocks = <&g762_clk>
-       fan_gear_mode = <0>; /* chip default */
-       fan_startv = <1>;    /* chip default */
-       pwm_polarity = <0>;  /* chip default */
-   };
diff --git a/Bindings/hwmon/gmt,g762.yaml b/Bindings/hwmon/gmt,g762.yaml
new file mode 100644 (file)
index 0000000..8e1bffd
--- /dev/null
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/gmt,g762.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: GMT G761/G762/G763 PWM Fan controller
+
+maintainers:
+  - Christian Marangi <ansuelsmth@gmail.com>
+
+description: |
+  GMT G761/G762/G763 PWM Fan controller.
+
+  G761 supports an internal-clock hence the clocks property is optional.
+  If not defined, internal-clock will be used. (31KHz is the clock of
+  the internal crystal oscillator)
+
+  If an optional property is not set in DT, then current value is kept
+  unmodified (e.g. bootloader installed value).
+
+  Additional information on operational parameters for the device is available
+  in Documentation/hwmon/g762.rst. A detailed datasheet for the device is available
+  at http://natisbad.org/NAS/refs/GMT_EDS-762_763-080710-0.2.pdf.
+
+properties:
+  compatible:
+    enum:
+      - gmt,g761
+      - gmt,g762
+      - gmt,g763
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    description: a fixed clock providing input clock frequency on CLK
+      pin of the chip.
+    maxItems: 1
+
+  fan_startv:
+    description: Fan startup voltage step
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1, 2, 3]
+
+  pwm_polarity:
+    description: PWM polarity (positive or negative duty)
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1]
+
+  fan_gear_mode:
+    description: FAN gear mode. Configure High speed fan setting factor
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1, 2]
+
+required:
+  - compatible
+  - reg
+
+if:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - gmt,g762
+          - gmt,g763
+then:
+  required:
+    - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        g762@3e {
+            compatible = "gmt,g762";
+            reg = <0x3e>;
+            clocks = <&g762_clk>;
+            fan_gear_mode = <0>;
+            fan_startv = <1>;
+            pwm_polarity = <0>;
+        };
+
+        g761@1e {
+            compatible = "gmt,g761";
+            reg = <0x1e>;
+            fan_gear_mode = <0>;
+            fan_startv = <1>;
+            pwm_polarity = <0>;
+        };
+    };
diff --git a/Bindings/hwmon/maxim,max6639.yaml b/Bindings/hwmon/maxim,max6639.yaml
new file mode 100644 (file)
index 0000000..4f5837a
--- /dev/null
@@ -0,0 +1,92 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+
+$id: http://devicetree.org/schemas/hwmon/maxim,max6639.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Maxim max6639
+
+maintainers:
+  - Naresh Solanki <naresh.solanki@9elements.com>
+
+description: |
+  The MAX6639 is a 2-channel temperature monitor with dual, automatic, PWM
+  fan-speed controller.  It monitors its own temperature and one external
+  diode-connected transistor or the temperatures of two external diode-connected
+  transistors, typically available in CPUs, FPGAs, or GPUs.
+
+  Datasheets:
+    https://datasheets.maximintegrated.com/en/ds/MAX6639-MAX6639F.pdf
+
+properties:
+  compatible:
+    enum:
+      - maxim,max6639
+
+  reg:
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+  '#pwm-cells':
+    const: 3
+
+required:
+  - compatible
+  - reg
+
+patternProperties:
+  "^fan@[0-1]$":
+    type: object
+    description:
+      Represents the two fans and their specific configuration.
+
+    $ref: fan-common.yaml#
+
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        description:
+          The fan number.
+
+    required:
+      - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        fan1: fan-controller@10 {
+            compatible = "maxim,max6639";
+            reg = <0x10>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+            #pwm-cells = <3>;
+
+            fan@0 {
+                reg = <0x0>;
+                pulses-per-revolution = <2>;
+                max-rpm = <4000>;
+                target-rpm = <1000>;
+                pwms = <&fan1 0 25000 0>;
+            };
+
+            fan@1 {
+                reg = <0x1>;
+                pulses-per-revolution = <2>;
+                max-rpm = <8000>;
+                pwms = <&fan1 1 25000 0>;
+            };
+        };
+    };
+...
index df86c2c92037530ef2a1fff24668ddf66851cedb..6ae961732e6b5b231c8cde0783dbaea9e089b084 100644 (file)
@@ -66,6 +66,14 @@ properties:
     description: phandle to the regulator that provides the VS supply typically
       in range from 2.7 V to 5.5 V.
 
+  ti,alert-polarity-active-high:
+    description: Alert pin is asserted based on the value of Alert polarity Bit
+      of Mask/Enable register. Default value is Normal (0 which maps to
+      active-low open collector). The other value is Inverted
+      (1 which maps to active-high open collector). Specify this property to set
+      the alert polarity to active-high.
+    $ref: /schemas/types.yaml#/definitions/flag
+
 required:
   - compatible
   - reg
@@ -88,5 +96,6 @@ examples:
             label = "vdd_3v0";
             shunt-resistor = <1000>;
             vs-supply = <&vdd_3v0>;
+            ti,alert-polarity-active-high;
         };
     };
index 8b5307c875ff179eab80600f5d15818c91cd4d2a..0ad10d43fac0c981b6972ecf611aa94c15d6d4ae 100644 (file)
@@ -9,6 +9,14 @@ title: TMP108 temperature sensor
 maintainers:
   - Krzysztof Kozlowski <krzk@kernel.org>
 
+description: |
+  The TMP108 is a digital-output temperature sensor with a
+  dynamically-programmable limit window, and under- and overtemperature
+  alert functions.
+
+  Datasheets:
+    https://www.ti.com/product/TMP108
+
 properties:
   compatible:
     enum:
@@ -24,6 +32,9 @@ properties:
   "#thermal-sensor-cells":
     const: 0
 
+  vcc-supply:
+    description: phandle to the regulator that provides the V+ supply
+
 required:
   - compatible
   - reg
@@ -45,6 +56,7 @@ examples:
             interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
             pinctrl-names = "default";
             pinctrl-0 = <&tmp_alrt>;
+            vcc-supply = <&supply>;
             #thermal-sensor-cells = <0>;
         };
     };
index 26bed558c6b8779721851540426a62f7f8bba2c4..c4cc8af18280785230021ebdb745c42e754abff0 100644 (file)
@@ -30,6 +30,9 @@ properties:
   clocks:
     minItems: 1
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
index b2d19cfb87addc250bda299ea8508209d10b635b..e61cdb5b16efdf5967510200d3a61d6f259d6d9d 100644 (file)
@@ -26,6 +26,7 @@ properties:
               - microchip,sam9x60-i2c
       - items:
           - enum:
+              - microchip,sama7d65-i2c
               - microchip,sama7g5-i2c
               - microchip,sam9x7-i2c
           - const: microchip,sam9x60-i2c
@@ -36,12 +37,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  "#address-cells":
-    const: 1
-
-  "#size-cells":
-    const: 0
-
   clocks:
     maxItems: 1
 
@@ -72,8 +67,6 @@ required:
   - compatible
   - reg
   - interrupts
-  - "#address-cells"
-  - "#size-cells"
   - clocks
 
 allOf:
@@ -86,6 +79,7 @@ allOf:
               - atmel,sama5d4-i2c
               - atmel,sama5d2-i2c
               - microchip,sam9x60-i2c
+              - microchip,sama7d65-i2c
               - microchip,sama7g5-i2c
     then:
       properties:
index 7070c04469ed70c78bb065c5df8919ac7c4f84b7..ac9ddf228c8281f8e463d80701fe33e78976d670 100644 (file)
@@ -76,21 +76,21 @@ else:
 
 examples:
   - |
-      bsca: i2c@f0406200 {
-          clock-frequency = <390000>;
-          compatible = "brcm,brcmstb-i2c";
-          interrupt-parent = <&irq0_intc>;
-          reg = <0xf0406200 0x58>;
-          interrupts = <0x18>;
-          interrupt-names = "upg_bsca";
-      };
+    bsca: i2c@f0406200 {
+        compatible = "brcm,brcmstb-i2c";
+        reg = <0xf0406200 0x58>;
+        clock-frequency = <390000>;
+        interrupt-parent = <&irq0_intc>;
+        interrupts = <0x18>;
+        interrupt-names = "upg_bsca";
+    };
 
   - |
-      ddc0: i2c@7ef04500 {
-          compatible = "brcm,bcm2711-hdmi-i2c";
-          reg = <0x7ef04500 0x100>, <0x7ef00b00 0x300>;
-          reg-names = "bsc", "auto-i2c";
-          clock-frequency = <390000>;
-      };
+    ddc0: i2c@7ef04500 {
+        compatible = "brcm,bcm2711-hdmi-i2c";
+        reg = <0x7ef04500 0x100>, <0x7ef00b00 0x300>;
+        reg-names = "bsc", "auto-i2c";
+        clock-frequency = <390000>;
+    };
 
 ...
index b813f6d4810c9add9cb711614b9825f914892a0a..1eaf00b90a77a3e5f16ed0ab3f2fb55cb8e2cd37 100644 (file)
@@ -109,65 +109,65 @@ examples:
     // Example for a bus to be demuxed.  It contains various I2C clients for
     // HDMI, so the bus is named "i2c-hdmi":
     i2chdmi: i2c-mux3 {
-            compatible = "i2c-demux-pinctrl";
-            i2c-parent = <&iic2>, <&i2c2>, <&gpioi2c2>;
-            i2c-bus-name = "i2c-hdmi";
-            #address-cells = <1>;
-            #size-cells = <0>;
-
-            ak4643: codec@12 {
-                    compatible = "asahi-kasei,ak4643";
-                    #sound-dai-cells = <0>;
-                    reg = <0x12>;
-            };
-
-            composite-in@20 {
-                    compatible = "adi,adv7180";
-                    reg = <0x20>;
+        compatible = "i2c-demux-pinctrl";
+        i2c-parent = <&iic2>, <&i2c2>, <&gpioi2c2>;
+        i2c-bus-name = "i2c-hdmi";
+        #address-cells = <1>;
+        #size-cells = <0>;
 
-                    port {
-                            adv7180: endpoint {
-                                    bus-width = <8>;
-                                    remote-endpoint = <&vin1ep0>;
-                            };
-                    };
+        ak4643: codec@12 {
+            compatible = "asahi-kasei,ak4643";
+            #sound-dai-cells = <0>;
+            reg = <0x12>;
+        };
+
+        composite-in@20 {
+            compatible = "adi,adv7180";
+            reg = <0x20>;
+
+            port {
+                adv7180: endpoint {
+                    bus-width = <8>;
+                    remote-endpoint = <&vin1ep0>;
+                };
             };
+        };
+
+        hdmi@39 {
+            compatible = "adi,adv7511w";
+            reg = <0x39>;
+            interrupt-parent = <&gpio1>;
+            interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
+            clocks = <&cec_clock>;
+            clock-names = "cec";
+
+            avdd-supply = <&fixedregulator1v8>;
+            dvdd-supply = <&fixedregulator1v8>;
+            pvdd-supply = <&fixedregulator1v8>;
+            dvdd-3v-supply = <&fixedregulator3v3>;
+            bgvdd-supply = <&fixedregulator1v8>;
+
+            adi,input-depth = <8>;
+            adi,input-colorspace = "rgb";
+            adi,input-clock = "1x";
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    adv7511_in: endpoint {
+                        remote-endpoint = <&lvds0_out>;
+                    };
+                };
 
-            hdmi@39 {
-                    compatible = "adi,adv7511w";
-                    reg = <0x39>;
-                    interrupt-parent = <&gpio1>;
-                    interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
-                    clocks = <&cec_clock>;
-                    clock-names = "cec";
-
-                    avdd-supply = <&fixedregulator1v8>;
-                    dvdd-supply = <&fixedregulator1v8>;
-                    pvdd-supply = <&fixedregulator1v8>;
-                    dvdd-3v-supply = <&fixedregulator3v3>;
-                    bgvdd-supply = <&fixedregulator1v8>;
-
-                    adi,input-depth = <8>;
-                    adi,input-colorspace = "rgb";
-                    adi,input-clock = "1x";
-
-                    ports {
-                            #address-cells = <1>;
-                            #size-cells = <0>;
-
-                            port@0 {
-                                    reg = <0>;
-                                    adv7511_in: endpoint {
-                                            remote-endpoint = <&lvds0_out>;
-                                    };
-                            };
-
-                            port@1 {
-                                    reg = <1>;
-                                    adv7511_out: endpoint {
-                                            remote-endpoint = <&hdmi_con_out>;
-                                    };
-                            };
+                port@1 {
+                    reg = <1>;
+                    adv7511_out: endpoint {
+                        remote-endpoint = <&hdmi_con_out>;
                     };
+                };
             };
+        };
     };
diff --git a/Bindings/i2c/i2c-fsi.txt b/Bindings/i2c/i2c-fsi.txt
deleted file mode 100644 (file)
index b1be2ce..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-Device-tree bindings for FSI-attached I2C master and busses
------------------------------------------------------------
-
-Required properties:
- - compatible = "ibm,i2c-fsi";
- - reg = < address size >;             : The FSI CFAM address and address
-                                         space size.
- - #address-cells = <1>;               : Number of address cells in child
-                                         nodes.
- - #size-cells = <0>;                  : Number of size cells in child nodes.
- - child nodes                         : Nodes to describe busses off the I2C
-                                         master.
-
-Child node required properties:
- - reg = < port number >               : The port number on the I2C master.
-
-Child node optional properties:
- - child nodes                         : Nodes to describe devices on the I2C
-                                         bus.
-
-Examples:
-
-    i2c@1800 {
-        compatible = "ibm,i2c-fsi";
-        reg = < 0x1800 0x400 >;
-        #address-cells = <1>;
-        #size-cells = <0>;
-
-        i2c-bus@0 {
-            reg = <0>;
-        };
-
-        i2c-bus@1 {
-            reg = <1>;
-
-            eeprom@50 {
-                compatible = "vendor,dev-name";
-            };
-        };
-    };
index 54d500be6aaac3bc925d5fcaa99d9bdb6b0d04c5..1dcb9c78de3b57b3dc2458413c11d45e20f12065 100644 (file)
@@ -7,7 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale Low Power Inter IC (LPI2C) for i.MX
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+  - Fabio Estevam <festevam@gmail.com>
 
 allOf:
   - $ref: /schemas/i2c/i2c-controller.yaml#
diff --git a/Bindings/i2c/i2c-lpc2k.txt b/Bindings/i2c/i2c-lpc2k.txt
deleted file mode 100644 (file)
index 4101aa6..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-NXP I2C controller for LPC2xxx/178x/18xx/43xx
-
-Required properties:
- - compatible: must be "nxp,lpc1788-i2c"
- - reg: physical address and length of the device registers
- - interrupts: a single interrupt specifier
- - clocks: clock for the device
- - #address-cells: should be <1>
- - #size-cells: should be <0>
-
-Optional properties:
-- clock-frequency: the desired I2C bus clock frequency in Hz; in
-  absence of this property the default value is used (100 kHz).
-
-Example:
-i2c0: i2c@400a1000 {
-       compatible = "nxp,lpc1788-i2c";
-       reg = <0x400a1000 0x1000>;
-       interrupts = <18>;
-       clocks = <&ccu1 CLK_APB1_I2C0>;
-       #address-cells = <1>;
-       #size-cells = <0>;
-};
-
-&i2c0 {
-       clock-frequency = <400000>;
-
-       lm75@48 {
-               compatible = "nxp,lm75";
-               reg = <0x48>;
-       };
-};
-
index f34cc7ad5a00e96f0a3bb110429695f117cabe82..4a93d1f78f93283877f69cf593b1579731277cf0 100644 (file)
@@ -57,6 +57,9 @@ properties:
       last value used.
     $ref: /schemas/types.yaml#/definitions/uint32
 
+  settle-time-us:
+    description: Delay to wait before doing any transfer when a new bus gets selected.
+
 allOf:
   - $ref: i2c-mux.yaml
 
diff --git a/Bindings/i2c/ibm,i2c-fsi.yaml b/Bindings/i2c/ibm,i2c-fsi.yaml
new file mode 100644 (file)
index 0000000..40ea829
--- /dev/null
@@ -0,0 +1,76 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/i2c/ibm,i2c-fsi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IBM FSI-attached I2C controller
+
+maintainers:
+  - Eddie James <eajames@linux.ibm.com>
+
+description:
+  This I2C controller is an FSI CFAM engine, providing access to a number of
+  I2C busses. Therefore this node will always be a child of an FSI CFAM node.
+
+properties:
+  compatible:
+    enum:
+      - ibm,i2c-fsi
+
+  reg:
+    items:
+      - description: FSI slave address
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^i2c-bus@[0-9a-f]+$":
+    type: object
+    properties:
+      reg:
+        maxItems: 1
+
+    required:
+      - reg
+
+    allOf:
+      - $ref: /schemas/i2c/i2c-controller.yaml#
+
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c@1800 {
+        compatible = "ibm,i2c-fsi";
+        reg = <0x1800 0x400>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        i2c-bus@0 {
+            reg = <0>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+        };
+
+        i2c-bus@1 {
+            reg = <1>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            eeprom@50 {
+                compatible = "atmel,24c64";
+                reg = <0x50>;
+            };
+        };
+    };
index 424a4fc218b66bfdf7897ad06a864e6b7bcb3cef..92fbc1a2671ad775a4939299858fdb4c24c354fb 100644 (file)
@@ -87,12 +87,6 @@ properties:
   interrupts:
     maxItems: 1
 
-  '#address-cells':
-    const: 1
-
-  '#size-cells':
-    const: 0
-
   clocks:
     minItems: 1
     maxItems: 2
diff --git a/Bindings/i2c/nxp,lpc1788-i2c.yaml b/Bindings/i2c/nxp,lpc1788-i2c.yaml
new file mode 100644 (file)
index 0000000..9a1b95c
--- /dev/null
@@ -0,0 +1,54 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/i2c/nxp,lpc1788-i2c.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP I2C controller for LPC2xxx/178x/18xx/43xx
+
+maintainers:
+  - Vladimir Zapolskiy <vz@mleia.com>
+
+allOf:
+  - $ref: /schemas/i2c/i2c-controller.yaml#
+
+properties:
+  compatible:
+    const: nxp,lpc1788-i2c
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-frequency:
+    description: the desired I2C bus clock frequency in Hz
+    default: 100000
+
+  resets:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include "dt-bindings/clock/lpc18xx-ccu.h"
+
+    i2c@400a1000 {
+        compatible = "nxp,lpc1788-i2c";
+        reg = <0x400a1000 0x1000>;
+        interrupts = <18>;
+        clocks = <&ccu1 CLK_APB1_I2C0>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+    };
index daf4e71b8e7f9326fff477e36e0d56672a9e8cdb..c33ae7b63b84f23fe1f53a092b169396e7e444b0 100644 (file)
@@ -31,6 +31,8 @@ properties:
               - qcom,sm6350-cci
               - qcom,sm8250-cci
               - qcom,sm8450-cci
+              - qcom,sm8550-cci
+              - qcom,sm8650-cci
           - const: qcom,msm8996-cci # CCI v2
 
   "#address-cells":
@@ -195,6 +197,24 @@ allOf:
             - const: cpas_ahb
             - const: cci
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sm8550-cci
+              - qcom,sm8650-cci
+    then:
+      properties:
+        clocks:
+          minItems: 3
+          maxItems: 3
+        clock-names:
+          items:
+            - const: camnoc_axi
+            - const: cpas_ahb
+            - const: cci
+
 additionalProperties: false
 
 examples:
index 17c1102562be98e78d7a7853c30d7677872e73cd..551cfa6f885ac6a3af107e46581b501b4f0eafa5 100644 (file)
@@ -44,11 +44,11 @@ examples:
     #include <dt-bindings/interrupt-controller/arm-gic.h>
 
     iic0: i2c@e0070000 {
-            #address-cells = <1>;
-            #size-cells = <0>;
-            compatible = "renesas,iic-emev2";
-            reg = <0xe0070000 0x28>;
-            interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>;
-            clocks = <&iic0_sclk>;
-            clock-names = "sclk";
+        compatible = "renesas,iic-emev2";
+        reg = <0xe0070000 0x28>;
+        interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>;
+        clocks = <&iic0_sclk>;
+        clock-names = "sclk";
+        #address-cells = <1>;
+        #size-cells = <0>;
     };
index 51b220da461b068d3af8614c8fc8d14071169de9..6cc60c3f61cd64be3ee1c8c309fc4bd4756dad12 100644 (file)
@@ -153,14 +153,14 @@ examples:
     #include <dt-bindings/power/r8a7791-sysc.h>
 
     i2c0: i2c@e6508000 {
-            #address-cells = <1>;
-            #size-cells = <0>;
-            compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
-            reg = <0xe6508000 0x40>;
-            interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
-            clock-frequency = <400000>;
-            clocks = <&cpg CPG_MOD 931>;
-            power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
-            resets = <&cpg 931>;
-            i2c-scl-internal-delay-ns = <6>;
+        compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
+        reg = <0xe6508000 0x40>;
+        interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
+        clock-frequency = <400000>;
+        clocks = <&cpg CPG_MOD 931>;
+        power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+        resets = <&cpg 931>;
+        i2c-scl-internal-delay-ns = <6>;
+        #address-cells = <1>;
+        #size-cells = <0>;
     };
index 91ecf17b7a81a1447ef8adbcd1a8224228681a5c..7993fe463c4c3fafcfefa57ecff3935a838e8d06 100644 (file)
@@ -97,21 +97,21 @@ examples:
     #include <dt-bindings/interrupt-controller/arm-gic.h>
 
     i2c0: i2c@fcfee000 {
-            compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
-            reg = <0xfcfee000 0x44>;
-            interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>,
-                         <GIC_SPI 159 IRQ_TYPE_EDGE_RISING>,
-                         <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
-            interrupt-names = "tei", "ri", "ti", "spi", "sti", "naki", "ali",
-                              "tmoi";
-            clocks = <&mstp9_clks R7S72100_CLK_I2C0>;
-            clock-frequency = <100000>;
-            power-domains = <&cpg_clocks>;
-            #address-cells = <1>;
-            #size-cells = <0>;
+        compatible = "renesas,riic-r7s72100", "renesas,riic-rz";
+        reg = <0xfcfee000 0x44>;
+        interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>,
+                     <GIC_SPI 159 IRQ_TYPE_EDGE_RISING>,
+                     <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "tei", "ri", "ti", "spi", "sti", "naki", "ali",
+                          "tmoi";
+        clocks = <&mstp9_clks R7S72100_CLK_I2C0>;
+        clock-frequency = <100000>;
+        power-domains = <&cpg_clocks>;
+        #address-cells = <1>;
+        #size-cells = <0>;
     };
index 04e4ffd80bc091b3ddc450e47c31322a9ffaef6e..ec5222a1224fa97f771aec1b7460aef68597c4d5 100644 (file)
@@ -134,16 +134,16 @@ examples:
     #include <dt-bindings/power/r8a7790-sysc.h>
 
     iic0: i2c@e6500000 {
-            compatible = "renesas,iic-r8a7790", "renesas,rcar-gen2-iic",
-                         "renesas,rmobile-iic";
-            reg = <0xe6500000 0x425>;
-            interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
-            clocks = <&cpg CPG_MOD 318>;
-            clock-frequency = <400000>;
-            dmas = <&dmac0 0x61>, <&dmac0 0x62>, <&dmac1 0x61>, <&dmac1 0x62>;
-            dma-names = "tx", "rx", "tx", "rx";
-            power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
-            resets = <&cpg 318>;
-            #address-cells = <1>;
-            #size-cells = <0>;
+        compatible = "renesas,iic-r8a7790", "renesas,rcar-gen2-iic",
+                     "renesas,rmobile-iic";
+        reg = <0xe6500000 0x425>;
+        interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&cpg CPG_MOD 318>;
+        clock-frequency = <400000>;
+        dmas = <&dmac0 0x61>, <&dmac0 0x62>, <&dmac1 0x61>, <&dmac1 0x62>;
+        dma-names = "tx", "rx", "tx", "rx";
+        power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
+        resets = <&cpg 318>;
+        #address-cells = <1>;
+        #size-cells = <0>;
     };
index 1303502cf265536827d6ade4e1e8ea12eea895fc..bbc56848562721d206fe4d72c7c103487d11f7bd 100644 (file)
@@ -26,9 +26,6 @@ properties:
               - samsung,exynos850-i2c
           - const: samsung,s3c2440-i2c
 
-  '#address-cells':
-    const: 1
-
   clocks:
     maxItems: 1
 
@@ -73,9 +70,6 @@ properties:
     $ref: /schemas/types.yaml#/definitions/phandle
     description: Pandle to syscon used to control the system registers.
 
-  '#size-cells':
-    const: 0
-
 required:
   - compatible
   - reg
index d9293c57f573c0534adb777f88efad95e5da6c85..60035a787e5c066731c02dafed761200afdda124 100644 (file)
@@ -33,6 +33,10 @@ properties:
           - const: snps,designware-i2c
       - description: Baikal-T1 SoC System I2C controller
         const: baikal,bt1-sys-i2c
+      - description: T-HEAD TH1520 SoCs I2C controller
+        items:
+          - const: thead,th1520-i2c
+          - const: snps,designware-i2c
 
   reg:
     minItems: 1
index 8fd8be76875ec12b71da052d6ef5614dd944e7ed..457bb0702ed93556685c0d6d64ade9fb3300afdd 100644 (file)
@@ -145,31 +145,31 @@ examples:
     #include <dt-bindings/mfd/stm32f7-rcc.h>
     #include <dt-bindings/clock/stm32fx-clock.h>
     //Example 1 (with st,stm32f4-i2c compatible)
-      i2c@40005400 {
-          compatible = "st,stm32f4-i2c";
-          #address-cells = <1>;
-          #size-cells = <0>;
-          reg = <0x40005400 0x400>;
-          interrupts = <31>,
-                       <32>;
-          resets = <&rcc 277>;
-          clocks = <&rcc 0 149>;
-      };
+    i2c@40005400 {
+        compatible = "st,stm32f4-i2c";
+        reg = <0x40005400 0x400>;
+        interrupts = <31>,
+                     <32>;
+        resets = <&rcc 277>;
+        clocks = <&rcc 0 149>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+    };
 
   - |
     #include <dt-bindings/mfd/stm32f7-rcc.h>
     #include <dt-bindings/clock/stm32fx-clock.h>
     //Example 2 (with st,stm32f7-i2c compatible)
-      i2c@40005800 {
-          compatible = "st,stm32f7-i2c";
-          #address-cells = <1>;
-          #size-cells = <0>;
-          reg = <0x40005800 0x400>;
-          interrupts = <31>,
-                       <32>;
-          resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
-          clocks = <&rcc 1 CLK_I2C1>;
-      };
+    i2c@40005800 {
+        compatible = "st,stm32f7-i2c";
+        reg = <0x40005800 0x400>;
+        interrupts = <31>,
+                     <32>;
+        resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
+        clocks = <&rcc 1 CLK_I2C1>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+    };
 
   - |
     #include <dt-bindings/mfd/stm32f7-rcc.h>
@@ -178,16 +178,16 @@ examples:
     #include <dt-bindings/interrupt-controller/arm-gic.h>
     #include <dt-bindings/clock/stm32mp1-clks.h>
     #include <dt-bindings/reset/stm32mp1-resets.h>
-      i2c@40013000 {
-          compatible = "st,stm32mp15-i2c";
-          #address-cells = <1>;
-          #size-cells = <0>;
-          reg = <0x40013000 0x400>;
-          interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
-                       <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
-          clocks = <&rcc I2C2_K>;
-          resets = <&rcc I2C2_R>;
-          i2c-scl-rising-time-ns = <185>;
-          i2c-scl-falling-time-ns = <20>;
-          st,syscfg-fmp = <&syscfg 0x4 0x2>;
-      };
+    i2c@40013000 {
+        compatible = "st,stm32mp15-i2c";
+        reg = <0x40013000 0x400>;
+        interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&rcc I2C2_K>;
+        resets = <&rcc I2C2_R>;
+        i2c-scl-rising-time-ns = <185>;
+        i2c-scl-falling-time-ns = <20>;
+        st,syscfg-fmp = <&syscfg 0x4 0x2>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+    };
index 781108ae1ce3b48f7a21ce4db4ac2cc5d4b06bcb..8c2e35fabf5b40c6a28ba28c302229848a16eb38 100644 (file)
@@ -37,16 +37,8 @@ properties:
   clock-names:
     const: fck
 
-  clock-frequency: true
-
   power-domains: true
 
-  "#address-cells":
-    const: 1
-
-  "#size-cells":
-    const: 0
-
   ti,hwmods:
     description:
       Must be "i2c<n>", n being the instance number (1-based).
@@ -55,38 +47,34 @@ properties:
     $ref: /schemas/types.yaml#/definitions/string
     deprecated: true
 
-# subnode's properties
-patternProperties:
-  "@[0-9a-f]+$":
-    type: object
-    description:
-      Flash device uses the below defined properties in the subnode.
-
 required:
   - compatible
   - reg
   - interrupts
 
-additionalProperties: false
+allOf:
+  - $ref: /schemas/i2c/i2c-controller.yaml#
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - ti,omap2420-i2c
+            - ti,omap2430-i2c
+            - ti,omap3-i2c
+            - ti,omap4-i2c
 
-if:
-  properties:
-    compatible:
-      enum:
-        - ti,omap2420-i2c
-        - ti,omap2430-i2c
-        - ti,omap3-i2c
-        - ti,omap4-i2c
+    then:
+      properties:
+        ti,hwmods:
+          items:
+            - pattern: "^i2c([1-9])$"
 
-then:
-  properties:
-    ti,hwmods:
-      items:
-        - pattern: "^i2c([1-9])$"
+    else:
+      properties:
+        ti,hwmods: false
 
-else:
-  properties:
-    ti,hwmods: false
+unevaluatedProperties: false
 
 examples:
   - |
@@ -94,9 +82,9 @@ examples:
     #include <dt-bindings/interrupt-controller/arm-gic.h>
 
     main_i2c0: i2c@2000000 {
-            compatible = "ti,j721e-i2c", "ti,omap4-i2c";
-            reg = <0x2000000 0x100>;
-            interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
-            #address-cells = <1>;
-            #size-cells = <0>;
-         };
+        compatible = "ti,j721e-i2c", "ti,omap4-i2c";
+        reg = <0x2000000 0x100>;
+        interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+    };
index 113957ebe9f1df4a12928d66c04bbb1cf3defc78..e25fa72fd7857767bbecc21977a5ef02c9ce3437 100644 (file)
@@ -91,6 +91,7 @@ patternProperties:
               - const: 0
               - description: |
                   Shall encode the I3C LVR (Legacy Virtual Register):
+                  See include/dt-bindings/i3c/i3c.h
                     bit[31:8]: unused/ignored
                     bit[7:5]: I2C device index. Possible values:
                       * 0: I2C device has a 50 ns spike filter
@@ -153,6 +154,8 @@ additionalProperties: true
 
 examples:
   - |
+    #include <dt-bindings/i3c/i3c.h>
+
     i3c@d040000 {
         compatible = "cdns,i3c-master";
         clocks = <&coreclock>, <&i3csysclock>;
@@ -166,7 +169,7 @@ examples:
         /* I2C device. */
         eeprom@57 {
             compatible = "atmel,24c01";
-            reg = <0x57 0x0 0x10>;
+            reg = <0x57 0x0 (I2C_FM | I2C_FILTER)>;
             pagesize = <0x8>;
         };
 
index c0e805e531be231817bac96206b4e0624b4881bf..4fc13e3c0f75e7e9a63aff26c35b6593af59491a 100644 (file)
@@ -20,7 +20,16 @@ properties:
     maxItems: 1
 
   clocks:
-    maxItems: 1
+    minItems: 1
+    items:
+      - description: Core clock
+      - description: APB clock
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: core
+      - const: apb
 
   interrupts:
     maxItems: 1
index 36775f8f71dfd325fee056bbbd009f59b0376214..8e7835cf36fd23b5a779ee34e7fe43db6c096171 100644 (file)
@@ -38,6 +38,25 @@ properties:
       The first value specifies the positive input pin, the second
       specifies the negative input pin.
 
+  single-channel:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      When devices combine single-ended and differential channels, allow the
+      channel for a single element to be specified, independent of reg (as for
+      differential channels). If this and diff-channels are not present reg
+      shall be used instead.
+
+  common-mode-channel:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Some ADCs have differential input pins that can be used to measure
+      single-ended or pseudo-differential inputs. This property can be used
+      in addition to single-channel to signal software that this channel is
+      not differential but still specify two inputs.
+
+      The input pair is specified by setting single-channel to the positive
+      input pin and common-mode-channel to the negative pin.
+
   settling-time-us:
     description:
       Time between enabling the channel and first stable readings.
@@ -50,4 +69,15 @@ properties:
       device design and can interact with other characteristics such as
       settling time.
 
+anyOf:
+  - oneOf:
+      - required:
+          - reg
+          - diff-channels
+      - required:
+          - reg
+          - single-channel
+  - required:
+      - reg
+
 additionalProperties: true
index ea6cfcd0aff463658f14cc047e77ea7bb11061cc..17c5d39cc2c17d7f4a093bc9420794d701613731 100644 (file)
@@ -19,7 +19,18 @@ description: |
   primarily for measurement of signals close to DC but also delivers
   outstanding performance with input bandwidths out to ~10kHz.
 
+  Analog Devices AD411x ADC's:
+  The AD411X family encompasses a series of low power, low noise, 24-bit,
+  sigma-delta analog-to-digital converters that offer a versatile range of
+  specifications. They integrate an analog front end suitable for processing
+  fully differential/single-ended and bipolar voltage inputs.
+
   Datasheets for supported chips:
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD4111.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD4112.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD4114.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD4115.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD4116.pdf
     https://www.analog.com/media/en/technical-documentation/data-sheets/AD7172-2.pdf
     https://www.analog.com/media/en/technical-documentation/data-sheets/AD7172-4.pdf
     https://www.analog.com/media/en/technical-documentation/data-sheets/AD7173-8.pdf
@@ -31,6 +42,11 @@ description: |
 properties:
   compatible:
     enum:
+      - adi,ad4111
+      - adi,ad4112
+      - adi,ad4114
+      - adi,ad4115
+      - adi,ad4116
       - adi,ad7172-2
       - adi,ad7172-4
       - adi,ad7173-8
@@ -129,10 +145,56 @@ patternProperties:
         maximum: 15
 
       diff-channels:
+        description: |
+          This property is used for defining the inputs of a differential
+          voltage channel. The first value is the positive input and the second
+          value is the negative input of the channel.
+
+          Family AD411x supports a dedicated VINCOM voltage input.
+          To select it set the second channel to 16.
+            (VIN2, VINCOM) -> diff-channels = <2 16>
+
+          There are special values that can be selected besides the voltage
+          analog inputs:
+            21: REF+
+            22: REF−
+
+          Supported only by AD7172-2, AD7172-4, AD7175-2, AD7175-8, AD7177-2,
+          must be paired together and can be used to monitor the power supply
+          of the ADC:
+            19: ((AVDD1 âˆ’ AVSS)/5)+
+            20: ((AVDD1 âˆ’ AVSS)/5)−
+
         items:
           minimum: 0
           maximum: 31
 
+      single-channel:
+        description: |
+          This property is used for defining a current channel or the positive
+          input of a voltage channel (single-ended or pseudo-differential).
+
+          Models AD4111 and AD4112 support current channels.
+            Example: (IIN2+, IIN2−) -> single-channel = <2>
+          To correctly configure a current channel set the "adi,current-channel"
+          property to true.
+
+          To configure a single-ended/pseudo-differential channel set the
+          "common-mode-channel" property to the desired negative voltage input.
+
+          When used as a voltage channel, special inputs are valid as well.
+        minimum: 0
+        maximum: 31
+
+      common-mode-channel:
+        description:
+          This property is used for defining the negative input of a
+          single-ended or pseudo-differential voltage channel.
+
+          Special inputs are valid as well.
+        minimum: 0
+        maximum: 31
+
       adi,reference-select:
         description: |
           Select the reference source to use when converting on
@@ -154,9 +216,31 @@ patternProperties:
           - avdd
         default: refout-avss
 
+      adi,current-channel:
+        $ref: /schemas/types.yaml#/definitions/flag
+        description: |
+          Signal that the selected inputs are current channels.
+          Only available on AD4111 and AD4112.
+
     required:
       - reg
-      - diff-channels
+
+    allOf:
+      - oneOf:
+          - required: [single-channel]
+            properties:
+              diff-channels: false
+          - required: [diff-channels]
+            properties:
+              single-channel: false
+              adi,current-channel: false
+              common-mode-channel: false
+
+      - if:
+          required: [common-mode-channel]
+        then:
+          properties:
+            adi,current-channel: false
 
 required:
   - compatible
@@ -166,7 +250,6 @@ allOf:
   - $ref: /schemas/spi/spi-peripheral-props.yaml#
 
   # Only ad7172-4, ad7173-8 and ad7175-8 support vref2
-  # Other models have [0-3] channel registers
   - if:
       properties:
         compatible:
@@ -187,6 +270,37 @@ allOf:
                 - vref
                 - refout-avss
                 - avdd
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,ad4114
+              - adi,ad4115
+              - adi,ad4116
+              - adi,ad7173-8
+              - adi,ad7175-8
+    then:
+      patternProperties:
+        "^channel@[0-9a-f]$":
+          properties:
+            reg:
+              maximum: 15
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,ad7172-2
+              - adi,ad7175-2
+              - adi,ad7176-2
+              - adi,ad7177-2
+    then:
+      patternProperties:
+        "^channel@[0-9a-f]$":
+          properties:
             reg:
               maximum: 3
 
@@ -210,6 +324,34 @@ allOf:
           required:
             - adi,reference-select
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,ad4111
+              - adi,ad4112
+              - adi,ad4114
+              - adi,ad4115
+              - adi,ad4116
+    then:
+      properties:
+        avdd2-supply: false
+
+  - if:
+      properties:
+        compatible:
+          not:
+            contains:
+              enum:
+                - adi,ad4111
+                - adi,ad4112
+    then:
+      patternProperties:
+        "^channel@[0-9a-f]$":
+          properties:
+            adi,current-channel: false
+
   - if:
       anyOf:
         - required: [clock-names]
@@ -221,6 +363,7 @@ allOf:
 unevaluatedProperties: false
 
 examples:
+  # Example AD7173-8 with external reference connected to REF+/REF-:
   - |
     #include <dt-bindings/gpio/gpio.h>
     #include <dt-bindings/interrupt-controller/irq.h>
@@ -277,3 +420,50 @@ examples:
         };
       };
     };
+
+  # Example AD4111 with current channel and single-ended channel:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+       adc@0 {
+        compatible = "adi,ad4111";
+        reg = <0>;
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
+        interrupt-names = "rdy";
+        interrupt-parent = <&gpio>;
+        spi-max-frequency = <5000000>;
+        gpio-controller;
+        #gpio-cells = <2>;
+        #clock-cells = <0>;
+
+        channel@0 {
+          reg = <0>;
+          bipolar;
+          diff-channels = <4 5>;
+        };
+
+        // Single ended channel VIN2/VINCOM
+        channel@1 {
+          reg = <1>;
+          bipolar;
+          single-channel = <2>;
+          common-mode-channel = <16>;
+        };
+
+        // Current channel IN2+/IN2-
+        channel@2 {
+          reg = <2>;
+          single-channel = <2>;
+          adi,current-channel;
+        };
+      };
+    };
index 16def2985ab4fe507e86d1fbc18cb603c479f9d3..190889c7b62ae287875264b088946ba12ccda100 100644 (file)
@@ -21,8 +21,15 @@ properties:
       - adi,ad7190
       - adi,ad7192
       - adi,ad7193
+      - adi,ad7194
       - adi,ad7195
 
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
   reg:
     maxItems: 1
 
@@ -41,6 +48,11 @@ properties:
   interrupts:
     maxItems: 1
 
+  aincom-supply:
+    description: |
+      AINCOM voltage supply. Analog inputs AINx are referenced to this input
+      when configured for pseudo-differential operation.
+
   dvdd-supply:
     description: DVdd voltage supply
 
@@ -84,6 +96,41 @@ properties:
     description: see Documentation/devicetree/bindings/iio/adc/adc.yaml
     type: boolean
 
+patternProperties:
+  "^channel@[0-9a-f]+$":
+    type: object
+    $ref: adc.yaml
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        description: The channel index.
+        minimum: 0
+        maximum: 271
+
+      diff-channels:
+        description:
+          Both inputs can be connected to pins AIN1 to AIN16 by choosing the
+          appropriate value from 1 to 16.
+        items:
+          minimum: 1
+          maximum: 16
+
+      single-channel:
+        description:
+          Positive input can be connected to pins AIN1 to AIN16 by choosing the
+          appropriate value from 1 to 16. Negative input is connected to AINCOM.
+        minimum: 1
+        maximum: 16
+
+    oneOf:
+      - required:
+          - reg
+          - diff-channels
+      - required:
+          - reg
+          - single-channel
+
 required:
   - compatible
   - reg
@@ -98,6 +145,17 @@ required:
 
 allOf:
   - $ref: /schemas/spi/spi-peripheral-props.yaml#
+  - if:
+      properties:
+        compatible:
+          enum:
+            - adi,ad7190
+            - adi,ad7192
+            - adi,ad7193
+            - adi,ad7195
+    then:
+      patternProperties:
+        "^channel@[0-9a-f]+$": false
 
 unevaluatedProperties: false
 
@@ -117,6 +175,7 @@ examples:
             clock-names = "mclk";
             interrupts = <25 0x2>;
             interrupt-parent = <&gpio>;
+            aincom-supply = <&aincom>;
             dvdd-supply = <&dvdd>;
             avdd-supply = <&avdd>;
             vref-supply = <&vref>;
@@ -127,3 +186,38 @@ examples:
             adi,burnout-currents-enable;
         };
     };
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adc@0 {
+            compatible = "adi,ad7194";
+            reg = <0>;
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            spi-max-frequency = <1000000>;
+            spi-cpol;
+            spi-cpha;
+            clocks = <&ad7192_mclk>;
+            clock-names = "mclk";
+            interrupts = <25 0x2>;
+            interrupt-parent = <&gpio>;
+            aincom-supply = <&aincom>;
+            dvdd-supply = <&dvdd>;
+            avdd-supply = <&avdd>;
+            vref-supply = <&vref>;
+
+            channel@0 {
+                reg = <0>;
+                diff-channels = <1 6>;
+            };
+
+            channel@1 {
+                reg = <1>;
+                single-channel = <1>;
+            };
+        };
+    };
diff --git a/Bindings/iio/adc/adi,ad7380.yaml b/Bindings/iio/adc/adi,ad7380.yaml
new file mode 100644 (file)
index 0000000..899b777
--- /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/iio/adc/adi,ad7380.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices Simultaneous Sampling Analog to Digital Converters
+
+maintainers:
+  - Michael Hennerich <Michael.Hennerich@analog.com>
+  - Nuno Sá <nuno.sa@analog.com>
+
+description: |
+  * https://www.analog.com/en/products/ad7380.html
+  * https://www.analog.com/en/products/ad7381.html
+  * https://www.analog.com/en/products/ad7383.html
+  * https://www.analog.com/en/products/ad7384.html
+  * https://www.analog.com/en/products/ad7380-4.html
+  * https://www.analog.com/en/products/ad7381-4.html
+  * https://www.analog.com/en/products/ad7383-4.html
+  * https://www.analog.com/en/products/ad7384-4.html
+
+$ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+  compatible:
+    enum:
+      - adi,ad7380
+      - adi,ad7381
+      - adi,ad7383
+      - adi,ad7384
+      - adi,ad7380-4
+      - adi,ad7381-4
+      - adi,ad7383-4
+      - adi,ad7384-4
+
+  reg:
+    maxItems: 1
+
+  spi-max-frequency:
+    maximum: 80000000
+  spi-cpol: true
+  spi-cpha: true
+
+  vcc-supply:
+    description: A 3V to 3.6V supply that powers the chip.
+
+  vlogic-supply:
+    description:
+      A 1.65V to 3.6V supply for the logic pins.
+
+  refio-supply:
+    description:
+      A 2.5V to 3.3V supply for the external reference voltage. When omitted,
+      the internal 2.5V reference is used.
+
+  aina-supply:
+    description:
+      The common mode voltage supply for the AINA- pin on pseudo-differential
+      chips.
+
+  ainb-supply:
+    description:
+      The common mode voltage supply for the AINB- pin on pseudo-differential
+      chips.
+
+  ainc-supply:
+    description:
+      The common mode voltage supply for the AINC- pin on pseudo-differential
+      chips.
+
+  aind-supply:
+    description:
+      The common mode voltage supply for the AIND- pin on pseudo-differential
+      chips.
+
+  interrupts:
+    description:
+      When the device is using 1-wire mode, this property is used to optionally
+      specify the ALERT interrupt.
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - vcc-supply
+  - vlogic-supply
+
+unevaluatedProperties: false
+
+allOf:
+  # pseudo-differential chips require common mode voltage supplies,
+  # true differential chips don't use them
+  - if:
+      properties:
+        compatible:
+          enum:
+            - adi,ad7383
+            - adi,ad7384
+            - adi,ad7383-4
+            - adi,ad7384-4
+    then:
+      required:
+        - aina-supply
+        - ainb-supply
+    else:
+      properties:
+        aina-supply: false
+        ainb-supply: false
+  - if:
+      properties:
+        compatible:
+          enum:
+            - adi,ad7383-4
+            - adi,ad7384-4
+    then:
+      required:
+        - ainc-supply
+        - aind-supply
+    else:
+      properties:
+        ainc-supply: false
+        aind-supply: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adc@0 {
+            compatible = "adi,ad7380";
+            reg = <0>;
+
+            spi-cpol;
+            spi-cpha;
+            spi-max-frequency = <80000000>;
+
+            interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
+            interrupt-parent = <&gpio0>;
+
+            vcc-supply = <&supply_3_3V>;
+            vlogic-supply = <&supply_3_3V>;
+            refio-supply = <&supply_2_5V>;
+        };
+    };
index 7fa46df1f4fb7cfeffceb1ca6c88929e6c61ddf4..00fdaed11cbd187b311459980ecc9ecf3d4267af 100644 (file)
@@ -11,6 +11,7 @@ maintainers:
 
 description: |
   Analog Devices AD7606 Simultaneous Sampling ADC
+  https://www.analog.com/media/en/technical-documentation/data-sheets/AD7605-4.pdf
   https://www.analog.com/media/en/technical-documentation/data-sheets/ad7606_7606-6_7606-4.pdf
   https://www.analog.com/media/en/technical-documentation/data-sheets/AD7606B.pdf
   https://www.analog.com/media/en/technical-documentation/data-sheets/AD7616.pdf
@@ -19,9 +20,9 @@ properties:
   compatible:
     enum:
       - adi,ad7605-4
-      - adi,ad7606-8
-      - adi,ad7606-6
       - adi,ad7606-4
+      - adi,ad7606-6
+      - adi,ad7606-8  # Referred to as AD7606 (without -8) in the datasheet
       - adi,ad7606b
       - adi,ad7616
 
index 7e8328e9ce1306065e062204d93ebb7bf37ce484..f748f3a60b35289de1769068e602acb3e96c8015 100644 (file)
@@ -66,6 +66,9 @@ properties:
   nvmem-cell-names:
     const: temperature_calib
 
+  power-domains:
+    maxItems: 1
+
 allOf:
   - if:
       properties:
diff --git a/Bindings/iio/adc/mediatek,mt6359-auxadc.yaml b/Bindings/iio/adc/mediatek,mt6359-auxadc.yaml
new file mode 100644 (file)
index 0000000..6497c41
--- /dev/null
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/mediatek,mt6359-auxadc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek MT6350 series PMIC AUXADC
+
+maintainers:
+  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+
+description:
+  The Auxiliary Analog/Digital Converter (AUXADC) is an ADC found
+  in some MediaTek PMICs, performing various PMIC related measurements
+  such as battery and PMIC internal voltage regulators temperatures,
+  accessory detection resistance (usually, for a 3.5mm audio jack)
+  other than voltages for various PMIC internal components.
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt6357-auxadc
+      - mediatek,mt6358-auxadc
+      - mediatek,mt6359-auxadc
+
+  "#io-channel-cells":
+    const: 1
+
+required:
+  - compatible
+  - "#io-channel-cells"
+
+additionalProperties: false
index c1b1324fa13295dc30ba6c8621659cbe862da37f..2722edab1d9a19c1520b7b5baf255246283a889a 100644 (file)
@@ -246,6 +246,10 @@ patternProperties:
                     From common IIO binding. Used to pipe external sigma delta
                     modulator or internal ADC output to DFSDM channel.
 
+                port:
+                  $ref: /schemas/sound/audio-graph-port.yaml#
+                  unevaluatedProperties: false
+
               required:
                 - compatible
                 - "#sound-dai-cells"
index d605999ffe28876bda1b78944cd1a86f337e993e..718f633c6e04c715b1cad5374a665a7991daa87b 100644 (file)
@@ -18,6 +18,7 @@ properties:
     enum:
       - ti,ads1015
       - ti,ads1115
+      - ti,tla2021
       - ti,tla2024
 
   reg:
diff --git a/Bindings/iio/adc/ti,ads1119.yaml b/Bindings/iio/adc/ti,ads1119.yaml
new file mode 100644 (file)
index 0000000..ba6850a
--- /dev/null
@@ -0,0 +1,155 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/ti,ads1119.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments ADS1119 ADC
+
+maintainers:
+  - João Paulo Gonçalves <jpaulo.silvagoncalves@gmail.com>
+
+description:
+  The TI ADS1119 is a precision 16-bit ADC over I2C that offers single-ended and
+  differential measurements using a multiplexed input. It features a programmable
+  gain, a programmable sample rate, an internal oscillator and voltage reference,
+  and a 50/60Hz rejection filter.
+
+properties:
+  compatible:
+    const: ti,ads1119
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  reset-gpios:
+    maxItems: 1
+
+  avdd-supply: true
+  dvdd-supply: true
+
+  vref-supply:
+    description:
+      ADC external reference voltage (VREF).
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+  "#io-channel-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+  - avdd-supply
+  - dvdd-supply
+
+patternProperties:
+  "^channel@([0-6])$":
+    $ref: adc.yaml
+    type: object
+    properties:
+      reg:
+        minimum: 0
+        maximum: 6
+
+      diff-channels:
+        description:
+          Differential input channels AIN0-AIN1, AIN2-AIN3 and AIN1-AIN2.
+        oneOf:
+          - items:
+              - const: 0
+              - const: 1
+          - items:
+              - const: 2
+              - const: 3
+          - items:
+              - const: 1
+              - const: 2
+
+      single-channel:
+        description:
+          Single-ended input channels AIN0, AIN1, AIN2 and AIN3.
+        minimum: 0
+        maximum: 3
+
+    oneOf:
+      - required:
+          - diff-channels
+      - required:
+          - single-channel
+
+    required:
+      - reg
+
+    unevaluatedProperties: false
+
+additionalProperties: false
+
+examples:
+  - |
+
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        adc@40 {
+            compatible = "ti,ads1119";
+            reg = <0x40>;
+            interrupt-parent = <&gpio1>;
+            interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
+            reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+            avdd-supply = <&reg_avdd_ads1119>;
+            dvdd-supply = <&reg_dvdd_ads1119>;
+            vref-supply = <&reg_vref_ads1119>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+            #io-channel-cells = <1>;
+
+            channel@0 {
+                reg = <0>;
+                single-channel = <0>;
+            };
+
+            channel@1 {
+                reg = <1>;
+                diff-channels = <0 1>;
+            };
+
+            channel@2 {
+                reg = <2>;
+                single-channel = <3>;
+            };
+
+            channel@3 {
+                reg = <3>;
+                single-channel = <1>;
+            };
+
+            channel@4 {
+                reg = <4>;
+                single-channel = <2>;
+            };
+
+            channel@5 {
+                reg = <5>;
+                diff-channels = <1 2>;
+            };
+
+            channel@6 {
+                reg = <6>;
+                diff-channels = <2 3>;
+            };
+        };
+    };
diff --git a/Bindings/iio/chemical/sciosense,ens160.yaml b/Bindings/iio/chemical/sciosense,ens160.yaml
new file mode 100644 (file)
index 0000000..267033a
--- /dev/null
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/chemical/sciosense,ens160.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ScioSense ENS160 multi-gas sensor
+
+maintainers:
+  - Gustavo Silva <gustavograzs@gmail.com>
+
+description: |
+  Digital Multi-Gas Sensor for Monitoring Indoor Air Quality.
+
+  Datasheet:
+    https://www.sciosense.com/wp-content/uploads/2023/12/ENS160-Datasheet.pdf
+
+properties:
+  compatible:
+    enum:
+      - sciosense,ens160
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  vdd-supply: true
+  vddio-supply: true
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      gas-sensor@52 {
+        compatible = "sciosense,ens160";
+        reg = <0x52>;
+        interrupt-parent = <&gpio0>;
+        interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
+      };
+    };
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      gas-sensor@0 {
+        compatible = "sciosense,ens160";
+        reg = <0>;
+        spi-max-frequency = <10000000>;
+        interrupt-parent = <&gpio>;
+        interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
+      };
+    };
+
+...
index 8265d709094dcb531e84258e588ac206c53299f1..fc8b97f820775b8563675543508eb55001da3989 100644 (file)
@@ -13,13 +13,17 @@ maintainers:
 description: |
   Bindings for the Analog Devices AD3552R DAC device and similar.
   Datasheet can be found here:
+    https://www.analog.com/media/en/technical-documentation/data-sheets/ad3541r.pdf
     https://www.analog.com/media/en/technical-documentation/data-sheets/ad3542r.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/ad3551r.pdf
     https://www.analog.com/media/en/technical-documentation/data-sheets/ad3552r.pdf
 
 properties:
   compatible:
     enum:
+      - adi,ad3541r
       - adi,ad3542r
+      - adi,ad3551r
       - adi,ad3552r
 
   reg:
@@ -92,13 +96,13 @@ patternProperties:
             maximum: 511
             minimum: -511
 
-          adi,gain-scaling-p-inv-log2:
-            description: GainP = 1 / ( 2 ^ adi,gain-scaling-p-inv-log2)
+          adi,gain-scaling-p:
+            description: GainP = 1 / ( 2 ^ adi,gain-scaling-p)
             $ref: /schemas/types.yaml#/definitions/uint32
             enum: [0, 1, 2, 3]
 
-          adi,gain-scaling-n-inv-log2:
-            description: GainN = 1 / ( 2 ^ adi,gain-scaling-n-inv-log2)
+          adi,gain-scaling-n:
+            description: GainN = 1 / ( 2 ^ adi,gain-scaling-n)
             $ref: /schemas/types.yaml#/definitions/uint32
             enum: [0, 1, 2, 3]
 
@@ -107,8 +111,8 @@ patternProperties:
 
         required:
           - adi,gain-offset
-          - adi,gain-scaling-p-inv-log2
-          - adi,gain-scaling-n-inv-log2
+          - adi,gain-scaling-p
+          - adi,gain-scaling-n
           - adi,rfb-ohms
 
     required:
@@ -128,7 +132,9 @@ allOf:
       properties:
         compatible:
           contains:
-            const: adi,ad3542r
+            enum:
+              - adi,ad3541r
+              - adi,ad3542r
     then:
       patternProperties:
         "^channel@([0-1])$":
@@ -158,7 +164,9 @@ allOf:
       properties:
         compatible:
           contains:
-            const: adi,ad3552r
+            enum:
+              - adi,ad3551r
+              - adi,ad3552r
     then:
       patternProperties:
         "^channel@([0-1])$":
@@ -182,6 +190,21 @@ allOf:
                     - const: -10000000
                     - const: 10000000
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,ad3541r
+              - adi,ad3551r
+    then:
+      properties:
+        channel@1: false
+        channel@0:
+          properties:
+            reg:
+              const: 0
+
 required:
   - compatible
   - reg
@@ -208,8 +231,8 @@ examples:
                 reg = <1>;
                 custom-output-range-config {
                     adi,gain-offset = <5>;
-                    adi,gain-scaling-p-inv-log2 = <1>;
-                    adi,gain-scaling-n-inv-log2 = <2>;
+                    adi,gain-scaling-p = <1>;
+                    adi,gain-scaling-n = <2>;
                     adi,rfb-ohms = <1>;
                 };
             };
index 43cbf27114c7b955b5fc03f83c0e239c64cafbe5..d1d1311332f81a9cf8edf6c789c73697f4d82658 100644 (file)
@@ -28,6 +28,12 @@ properties:
   clock-names:
     const: clkin
 
+  '#clock-cells':
+    const: 0
+
+  clock-output-names:
+    maxItems: 1
+
   gpios:
     maxItems: 1
     description: Lock detect GPIO.
index 9b7ad609f7dbe13ce6430bf859e955bc390c076d..9d185f7bfdcbaff01518fa23cfa9efe2f36daa7b 100644 (file)
@@ -30,12 +30,19 @@ properties:
       - adi,adis16467-2
       - adi,adis16467-3
       - adi,adis16500
+      - adi,adis16501
       - adi,adis16505-1
       - adi,adis16505-2
       - adi,adis16505-3
       - adi,adis16507-1
       - adi,adis16507-2
       - adi,adis16507-3
+      - adi,adis16575-2
+      - adi,adis16575-3
+      - adi,adis16576-2
+      - adi,adis16576-3
+      - adi,adis16577-2
+      - adi,adis16577-3
 
   reg:
     maxItems: 1
@@ -90,12 +97,19 @@ allOf:
           contains:
             enum:
               - adi,adis16500
+              - adi,adis16501
               - adi,adis16505-1
               - adi,adis16505-2
               - adi,adis16505-3
               - adi,adis16507-1
               - adi,adis16507-2
               - adi,adis16507-3
+              - adi,adis16575-2
+              - adi,adis16575-3
+              - adi,adis16576-2
+              - adi,adis16576-3
+              - adi,adis16577-2
+              - adi,adis16577-3
 
     then:
       properties:
@@ -112,6 +126,23 @@ allOf:
       dependencies:
         adi,sync-mode: [ clocks ]
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - adi,adis16575-2
+              - adi,adis16575-3
+              - adi,adis16576-2
+              - adi,adis16576-3
+              - adi,adis16577-2
+              - adi,adis16577-3
+
+    then:
+      properties:
+        spi-max-frequency:
+          maximum: 15000000
+
 unevaluatedProperties: false
 
 examples:
index 56e0dc20f5e4f3dda7c039a62690d0367b695b17..e3eec38897bf916108944e0cf0d5cb11a7f5a0f7 100644 (file)
@@ -23,6 +23,12 @@ properties:
       - adi,adis16497-1
       - adi,adis16497-2
       - adi,adis16497-3
+      - adi,adis16545-1
+      - adi,adis16545-2
+      - adi,adis16545-3
+      - adi,adis16547-1
+      - adi,adis16547-2
+      - adi,adis16547-3
 
   reg:
     maxItems: 1
index 47cfba939ca6aea0e46b7d7fc6d6bdae7ad577ae..3b0a2d8b2e9183ed47cbb32ed3e4b5a9c39799eb 100644 (file)
@@ -16,7 +16,11 @@ description: |
 
 properties:
   compatible:
-    const: bosch,bmi160
+    oneOf:
+      - const: bosch,bmi160
+      - items:
+          - const: bosch,bmi120
+          - const: bosch,bmi160
 
   reg:
     maxItems: 1
index 91c318746bf30aceeb79f0497169d092ea5e622f..ecf2339e02f65c0649914334a7e4936993a195e3 100644 (file)
@@ -4,14 +4,19 @@
 $id: http://devicetree.org/schemas/iio/light/vishay,veml6075.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Vishay VEML6075 UVA and UVB sensor
+title: Vishay VEML6075 UVA/B and VEML6040 RGBW sensors
 
 maintainers:
   - Javier Carrasco <javier.carrasco.cruz@gmail.com>
 
+description:
+  VEML6040 datasheet at https://www.vishay.com/docs/84276/veml6040.pdf
+
 properties:
   compatible:
-    const: vishay,veml6075
+    enum:
+      - vishay,veml6040
+      - vishay,veml6075
 
   reg:
     maxItems: 1
index 6b54d32323fcc5605068a3aee59c9df0e25f39b0..fbe8c2eb0857a121eb3cd7ce405d18401f47a981 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale MAG3110 magnetometer sensor
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Jonathan Cameron <jic23@kernel.org>
 
 properties:
   compatible:
index fff7e3d83a02f7f96c50164f5bf7ad7881207c64..71c1ee33a393e64b1c2ef8109175ba1180670a50 100644 (file)
@@ -26,6 +26,7 @@ properties:
           - st,lis2dw12
           - st,lis2hh12
           - st,lis2dh12-accel
+          - st,lis2ds12
           - st,lis302dl
           - st,lis331dl-accel
           - st,lis331dlh-accel
diff --git a/Bindings/incomplete-devices.yaml b/Bindings/incomplete-devices.yaml
new file mode 100644 (file)
index 0000000..cfc1d39
--- /dev/null
@@ -0,0 +1,137 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/incomplete-devices.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rejected, Legacy or Incomplete Devices
+
+maintainers:
+  - Rob Herring <robh@kernel.org>
+
+description:
+  Some devices will not or should not get a proper Devicetree bindings, but
+  their compatibles are present in Linux drivers for various reasons.
+
+  Examples are devices using ACPI PRP0001 with non-updatable firmware/ACPI
+  tables or old PowerPC platforms without in-tree DTS.
+
+  Following list of devices is an incomplete schema with a goal to pass DT schema
+  checks on undocumented compatibles but also reject any DTS file using such
+  un-approved compatible.
+
+  Usage of any of following compatibles is not allowed in Devicetree sources,
+  even if they come from immutable firmware.
+
+properties:
+  compatible:
+    oneOf:
+      - description:
+          Rejected compatibles in Devicetree, but used in ACPI-based devices
+          with non-updatable firmware/ACPI tables (via ACPI PRP0001)
+        enum:
+          - broadcom,bcm5241
+          - ltr,ltrf216a
+
+      - description: Legacy compatibles used on Macintosh devices
+        enum:
+          - adm1030
+          - bmac+
+          - heathrow-media-bay
+          - keylargo-media-bay
+          - lm87cimt
+          - MAC,adm1030
+          - MAC,ds1775
+          - max6690
+          - ohare-media-bay
+          - ohare-swim3
+          - smu-sat
+          - swim3
+
+      - description: Legacy compatibles used on other PowerPC devices
+        enum:
+          - 1682m-rng
+          - IBM,lhca
+          - IBM,lhea
+          - IBM,lhea-ethernet
+          - mpc5200b-fec-phy
+          - mpc5200-serial
+          - mpc5200-sram
+          - ohci-be
+          - ohci-bigendian
+          - ohci-le
+
+      - description: Legacy compatibles used on SPARC devices
+        enum:
+          - bq4802
+          - ds1287
+          - isa-m5819p
+          - isa-m5823p
+          - m5819
+          - sab82532
+          - SUNW,bbc-beep
+          - SUNW,bbc-i2c
+          - SUNW,CS4231
+          - SUNW,ebus-pic16f747-env
+          - SUNW,kt-cwq
+          - SUNW,kt-mau
+          - SUNW,n2-cwq
+          - SUNW,n2-mau
+          - SUNW,niusl
+          - SUNW,smbus-beep
+          - SUNW,sun4v-console
+          - SUNW,sun4v-pci
+          - SUNW,vf-cwq
+          - SUNW,vf-mau
+
+      - description: Incomplete and/or legacy compatibles for unknown devices
+        enum:
+          - electra-cf
+          - i2cpcf,8584
+          - virtio,uml
+
+      - description: Linux kernel unit tests and sample code
+        enum:
+          - audio-graph-card2-custom-sample
+          - compat1
+          - compat2
+          - compat3
+          - linux,spi-loopback-test
+          - mailbox-test
+          - regulator-virtual-consumer
+
+      - description:
+          Devices on MIPS platform, without any DTS users.  These are
+          unlikely to get converted to DT schema.
+        enum:
+          - mti,ranchu
+
+      - description:
+          Devices on PowerPC platform, without any DTS users.  These are
+          unlikely to get converted to DT schema.
+        enum:
+          - fujitsu,coral
+          - fujitsu,lime
+          - fujitsu,MB86276
+          - fujitsu,MB86277
+          - fujitsu,MB86293
+          - fujitsu,MB86294
+          - fujitsu,mint
+          - ibm,axon-msic
+          - ibm,pmemory
+          - ibm,pmemory-v2
+          - ibm,power-rng
+          - ibm,ppc4xx-spi
+          - ibm,sdram-4xx-ddr2
+          - ibm,secureboot
+          - ibm,secureboot-v1
+          - ibm,secureboot-v2
+          - ibm,secvar-backend
+          - sgy,gpio-halt
+          - wrs,epld-localbus
+
+required:
+  - compatible
+  - broken-usage-of-incorrect-compatible
+
+additionalProperties: false
index c384bf0bb25dab599608735d0163196c2fcd7e84..6bdb8040be65675459896faa42885286c51da5e7 100644 (file)
@@ -22,7 +22,9 @@ properties:
           - const: allwinner,sun8i-a83t-r-lradc
       - const: allwinner,sun50i-r329-lradc
       - items:
-          - const: allwinner,sun20i-d1-lradc
+          - enum:
+              - allwinner,sun50i-h616-lradc
+              - allwinner,sun20i-d1-lradc
           - const: allwinner,sun50i-r329-lradc
 
   reg:
diff --git a/Bindings/input/cirrus,cs40l50.yaml b/Bindings/input/cirrus,cs40l50.yaml
new file mode 100644 (file)
index 0000000..89bd068
--- /dev/null
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/cirrus,cs40l50.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic CS40L50 Advanced Haptic Driver
+
+maintainers:
+  - James Ogletree <jogletre@opensource.cirrus.com>
+
+description:
+  CS40L50 is a haptic driver with waveform memory,
+  integrated DSP, and closed-loop algorithms.
+
+properties:
+  compatible:
+    enum:
+      - cirrus,cs40l50
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  reset-gpios:
+    maxItems: 1
+
+  vdd-a-supply:
+    description: Power supply for internal analog circuits.
+
+  vdd-p-supply:
+    description: Power supply for always-on circuits.
+
+  vdd-io-supply:
+    description: Power supply for digital input/output.
+
+  vdd-b-supply:
+    description: Power supply for the boost converter.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - reset-gpios
+  - vdd-io-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      haptic-driver@34 {
+        compatible = "cirrus,cs40l50";
+        reg = <0x34>;
+        interrupt-parent = <&gpio>;
+        interrupts = <113 IRQ_TYPE_LEVEL_LOW>;
+        reset-gpios = <&gpio 112 GPIO_ACTIVE_LOW>;
+        vdd-io-supply = <&vreg>;
+      };
+    };
diff --git a/Bindings/input/ti,nspire-keypad.txt b/Bindings/input/ti,nspire-keypad.txt
deleted file mode 100644 (file)
index 513d94d..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-TI-NSPIRE Keypad
-
-Required properties:
-- compatible: Compatible property value should be "ti,nspire-keypad".
-
-- reg: Physical base address of the peripheral and length of memory mapped
-  region.
-
-- interrupts: The interrupt number for the peripheral.
-
-- scan-interval: How often to scan in us. Based on a APB speed of 33MHz, the
-       maximum and minimum delay time is ~2000us and ~500us respectively
-
-- row-delay: How long to wait before scanning each row.
-
-- clocks: The clock this peripheral is attached to.
-
-- linux,keymap: The keymap to use
-       (see Documentation/devicetree/bindings/input/matrix-keymap.txt)
-
-Optional properties:
-- active-low: Specify that the keypad is active low (i.e. logical low signifies
-       a key press).
-
-Example:
-
-input {
-       compatible = "ti,nspire-keypad";
-       reg = <0x900E0000 0x1000>;
-       interrupts = <16>;
-
-       scan-interval = <1000>;
-       row-delay = <200>;
-
-       clocks = <&apb_pclk>;
-
-       linux,keymap = <
-       0x0000001c      0x0001001c      0x00040039
-       0x0005002c      0x00060015      0x0007000b
-       0x0008000f      0x0100002d      0x01010011
-       0x0102002f      0x01030004      0x01040016
-       0x01050014      0x0106001f      0x01070002
-       0x010a006a      0x02000013      0x02010010
-       0x02020019      0x02030007      0x02040018
-       0x02050031      0x02060032      0x02070005
-       0x02080028      0x0209006c      0x03000026
-       0x03010025      0x03020024      0x0303000a
-       0x03040017      0x03050023      0x03060022
-       0x03070008      0x03080035      0x03090069
-       0x04000021      0x04010012      0x04020020
-       0x0404002e      0x04050030      0x0406001e
-       0x0407000d      0x04080037      0x04090067
-       0x05010038      0x0502000c      0x0503001b
-       0x05040034      0x0505001a      0x05060006
-       0x05080027      0x0509000e      0x050a006f
-       0x0600002b      0x0602004e      0x06030068
-       0x06040003      0x0605006d      0x06060009
-       0x06070001      0x0609000f      0x0708002a
-       0x0709001d      0x070a0033      >;
-};
diff --git a/Bindings/input/ti,nspire-keypad.yaml b/Bindings/input/ti,nspire-keypad.yaml
new file mode 100644 (file)
index 0000000..ed3cfff
--- /dev/null
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/ti,nspire-keypad.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI-NSPIRE Keypad
+
+maintainers:
+  - Andrew Davis <afd@ti.com>
+
+allOf:
+  - $ref: input.yaml#
+  - $ref: matrix-keymap.yaml#
+
+properties:
+  compatible:
+    enum:
+      - ti,nspire-keypad
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  scan-interval:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: How often to scan in us. Based on a APB speed of 33MHz, the
+      maximum and minimum delay time is ~2000us and ~500us respectively
+
+  row-delay:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: How long to wait between scanning each row in us.
+
+  active-low:
+    description: Specify that the keypad is active low.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - scan-interval
+  - row-delay
+  - linux,keymap
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/input/input.h>
+    keypad@900e0000 {
+        compatible = "ti,nspire-keypad";
+        reg = <0x900e0000 0x1000>;
+        interrupts = <16>;
+
+        clocks = <&apb_pclk>;
+
+        scan-interval = <1000>;
+        row-delay = <200>;
+
+        linux,keymap = <
+            MATRIX_KEY(0,  0, KEY_ENTER)
+            MATRIX_KEY(0,  1, KEY_ENTER)
+            MATRIX_KEY(0,  4, KEY_SPACE)
+            MATRIX_KEY(0,  5, KEY_Z)
+            MATRIX_KEY(0,  6, KEY_Y)
+            MATRIX_KEY(0,  7, KEY_0)
+        >;
+    };
index 81f6bda97d3c73d9dbc2899c777b6a708c12ed09..399c87782935c09f09e9cbcd8d766b8935331b92 100644 (file)
@@ -57,6 +57,7 @@ Optional properties:
                                        pendown-gpio (u32).
        pendown-gpio                    GPIO handle describing the pin the !PENIRQ
                                        line is connected to.
+       ti,hsync-gpios                  GPIO line to poll for hsync
        wakeup-source                   use any event on touchscreen as wakeup event.
                                        (Legacy property support: "linux,wakeup")
        touchscreen-size-x              General touchscreen binding, see [1].
index 745e57c05176ea73bb2be62b33b7bf62d9a0488f..51d48d4130d380d053f85f97f6a0428e483891b3 100644 (file)
@@ -39,8 +39,10 @@ properties:
       - edt,edt-ft5406
       - edt,edt-ft5506
       - evervision,ev-ft5726
+      - focaltech,ft5426
       - focaltech,ft5452
       - focaltech,ft6236
+      - focaltech,ft8201
       - focaltech,ft8719
 
   reg:
index 9dc25d30a0a8911d853ea6747a034ef6326345e9..1c7ae05a8c15e4aba7465967aea799f86fd770f4 100644 (file)
@@ -14,10 +14,14 @@ allOf:
 
 properties:
   compatible:
-    enum:
-      - eeti,exc3000
-      - eeti,exc80h60
-      - eeti,exc80h84
+    oneOf:
+      - const: eeti,exc3000
+      - const: eeti,exc80h60
+      - const: eeti,exc80h84
+      - items:
+          - enum:
+              - eeti,exc81w32
+          - const: eeti,exc80h84
   reg:
     const: 0x2a
   interrupts:
diff --git a/Bindings/input/touchscreen/ektf2127.txt b/Bindings/input/touchscreen/ektf2127.txt
deleted file mode 100644 (file)
index c9f2c9f..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-* Elan eKTF2127 I2C touchscreen controller
-
-Required properties:
- - compatible            : "elan,ektf2127" or "elan,ektf2132"
- - reg                   : I2C slave address of the chip (0x40)
- - interrupts            : interrupt specification for the ektf2127 interrupt
- - power-gpios           : GPIO specification for the pin connected to the
-                           ektf2127's wake input. This needs to be driven high
-                           to take ektf2127 out of its low power state
-
-For additional optional properties see: touchscreen.txt
-
-Example:
-
-i2c@00000000 {
-       ektf2127: touchscreen@15 {
-               compatible = "elan,ektf2127";
-               reg = <0x15>;
-               interrupt-parent = <&pio>;
-               interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>
-               power-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>;
-               touchscreen-inverted-x;
-               touchscreen-swapped-x-y;
-       };
-};
diff --git a/Bindings/input/touchscreen/elan,ektf2127.yaml b/Bindings/input/touchscreen/elan,ektf2127.yaml
new file mode 100644 (file)
index 0000000..ff0ec3f
--- /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/input/touchscreen/elan,ektf2127.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Elan eKTF2127 I2C touchscreen controller
+
+maintainers:
+  - Siebren Vroegindeweij <siebren.vroegindeweij@hotmail.com>
+
+allOf:
+  - $ref: touchscreen.yaml#
+
+properties:
+  compatible:
+    enum:
+      - elan,ektf2127
+      - elan,ektf2132
+      - elan,ektf2232
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  power-gpios:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - power-gpios
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        touchscreen@15 {
+            compatible = "elan,ektf2127";
+            reg = <0x15>;
+            interrupt-parent = <&pio>;
+            interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>;
+            power-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>;
+            touchscreen-inverted-x;
+            touchscreen-swapped-x-y;
+        };
+    };
+...
index f42b23d532eb00824da1ca395d85d8ba14f08a4f..f5cfacb5e966d209739b882f36175b10be9635aa 100644 (file)
@@ -15,6 +15,7 @@ allOf:
 properties:
   compatible:
     enum:
+      - himax,hx83100a
       - himax,hx83112b
 
   reg:
index 77ba280b3bdcc5891e13fddd87545328f47ec5c7..e24cbd96099333a73005a3628143e79346df277b 100644 (file)
@@ -16,6 +16,7 @@ properties:
   compatible:
     enum:
       - imagis,ist3032c
+      - imagis,ist3038
       - imagis,ist3038b
       - imagis,ist3038c
 
diff --git a/Bindings/interconnect/mediatek,mt8183-emi.yaml b/Bindings/interconnect/mediatek,mt8183-emi.yaml
new file mode 100644 (file)
index 0000000..017c847
--- /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/interconnect/mediatek,mt8183-emi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek External Memory Interface (EMI) Interconnect
+
+maintainers:
+  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+
+description: |
+  EMI interconnect providers support system bandwidth requirements through
+  Dynamic Voltage Frequency Scaling Resource Collector (DVFSRC) hardware.
+  The provider is able to communicate with the DVFSRC through Secure Monitor
+  Call (SMC).
+
+             ICC provider         ICC Nodes
+                              ----          ----
+             _________       |CPU |   |--- |VPU |
+    _____   |         |-----  ----    |     ----
+   |     |->|  DRAM   |       ----    |     ----
+   |DRAM |->|scheduler|----- |GPU |   |--- |DISP|
+   |     |->|  (EMI)  |       ----    |     ----
+   |_____|->|_________|---.   -----   |     ----
+               /|\         `-|MMSYS|--|--- |VDEC|
+                |             -----   |     ----
+                |                     |     ----
+                | change DRAM freq    |--- |VENC|
+             --------                 |     ----
+    SMC --> | DVFSRC |                |     ----
+             --------                 |--- |IMG |
+                                      |     ----
+                                      |     ----
+                                      |--- |CAM |
+                                            ----
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt8183-emi
+      - mediatek,mt8195-emi
+
+  '#interconnect-cells':
+    const: 1
+
+required:
+  - compatible
+  - '#interconnect-cells'
+
+unevaluatedProperties: false
diff --git a/Bindings/interconnect/qcom,msm8953.yaml b/Bindings/interconnect/qcom,msm8953.yaml
new file mode 100644 (file)
index 0000000..732e9fa
--- /dev/null
@@ -0,0 +1,101 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interconnect/qcom,msm8953.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm MSM8953 Network-On-Chip interconnect
+
+maintainers:
+  - Barnabas Czeman <barnabas.czeman@mainlining.org>
+
+description: |
+  The Qualcomm MSM8953 interconnect providers support adjusting the
+  bandwidth requirements between the various NoC fabrics.
+
+  See also:
+  - dt-bindings/interconnect/qcom,msm8953.h
+
+properties:
+  compatible:
+    enum:
+      - qcom,msm8953-bimc
+      - qcom,msm8953-pcnoc
+      - qcom,msm8953-snoc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    maxItems: 1
+
+  '#interconnect-cells':
+    const: 2
+
+patternProperties:
+  '^interconnect-[a-z0-9\-]+$':
+    type: object
+    $ref: qcom,rpm-common.yaml#
+    unevaluatedProperties: false
+    description:
+      The interconnect providers do not have a separate QoS register space,
+      but share parent's space.
+
+    properties:
+      compatible:
+        const: qcom,msm8953-snoc-mm
+
+    required:
+      - compatible
+      - '#interconnect-cells'
+
+required:
+  - compatible
+  - reg
+  - '#interconnect-cells'
+
+allOf:
+  - $ref: qcom,rpm-common.yaml#
+  - if:
+      properties:
+        compatible:
+          const: qcom,msm8953-pcnoc
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: PCNOC USB3 AXI Clock.
+
+        clock-names:
+          const: pcnoc_usb3_axi
+
+      required:
+        - clocks
+        - clock-names
+    else:
+      properties:
+        clocks: false
+        clock-names: false
+
+additionalProperties: false
+
+examples:
+  - |
+      #include <dt-bindings/clock/qcom,gcc-msm8953.h>
+
+      snoc: interconnect@580000 {
+          compatible = "qcom,msm8953-snoc";
+          reg = <0x580000 0x16080>;
+
+          #interconnect-cells = <2>;
+
+          snoc_mm: interconnect-snoc {
+              compatible = "qcom,msm8953-snoc-mm";
+
+              #interconnect-cells = <2>;
+          };
+      };
index 05067e197abe810a8dd2457f6056b6eff3e5387c..2cd1f5590fd9bb6f30aa67010d6818a3bec8a10f 100644 (file)
@@ -35,6 +35,7 @@ properties:
               - qcom,sm8250-cpu-bwmon
               - qcom,sm8550-cpu-bwmon
               - qcom,sm8650-cpu-bwmon
+              - qcom,x1e80100-cpu-bwmon
           - const: qcom,sdm845-bwmon    # BWMON v4, unified register space
       - items:
           - enum:
@@ -44,6 +45,7 @@ properties:
               - qcom,sm8250-llcc-bwmon
               - qcom,sm8550-llcc-bwmon
               - qcom,sm8650-llcc-bwmon
+              - qcom,x1e80100-llcc-bwmon
           - const: qcom,sc7280-llcc-bwmon
       - const: qcom,sc7280-llcc-bwmon   # BWMON v5
       - const: qcom,sdm845-llcc-bwmon   # BWMON v5
@@ -72,7 +74,6 @@ required:
   - interconnects
   - interrupts
   - operating-points-v2
-  - opp-table
   - reg
 
 additionalProperties: false
index b135597d9489f8306643b4a4ce8fe8b594a8bfae..78210791496f84c49989d6cb99a328ad997025b1 100644 (file)
@@ -8,7 +8,7 @@ title: Qualcomm RPMh Network-On-Chip Interconnect on SC7280
 
 maintainers:
   - Bjorn Andersson <andersson@kernel.org>
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   RPMh interconnect providers support system bandwidth requirements through
@@ -35,6 +35,10 @@ properties:
   reg:
     maxItems: 1
 
+  clocks:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
 
@@ -53,10 +57,50 @@ allOf:
       required:
         - reg
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sc7280-aggre1-noc
+    then:
+      properties:
+        clocks:
+          items:
+            - description: aggre UFS PHY AXI clock
+            - description: aggre USB3 PRIM AXI clock
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sc7280-aggre2-noc
+    then:
+      properties:
+        clocks:
+          items:
+            - description: RPMH CC IPA clock
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sc7280-aggre1-noc
+              - qcom,sc7280-aggre2-noc
+    then:
+      required:
+        - clocks
+    else:
+      properties:
+        clocks: false
+
 unevaluatedProperties: false
 
 examples:
   - |
+    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
     interconnect {
         compatible = "qcom,sc7280-clk-virt";
         #interconnect-cells = <2>;
@@ -69,3 +113,12 @@ examples:
         #interconnect-cells = <2>;
         qcom,bcm-voters = <&apps_bcm_voter>;
     };
+
+    interconnect@16e0000 {
+        reg = <0x016e0000 0x1c080>;
+        compatible = "qcom,sc7280-aggre1-noc";
+        #interconnect-cells = <2>;
+        qcom,bcm-voters = <&apps_bcm_voter>;
+        clocks = <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                 <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>;
+    };
index 6c2da03f0cd2241bce21c62d5517ab80c4793f14..100c686369092687e78f7c039135d63b5a02343b 100644 (file)
@@ -8,7 +8,7 @@ title: Qualcomm RPMh Network-On-Chip Interconnect on SC8280XP
 
 maintainers:
   - Bjorn Andersson <andersson@kernel.org>
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   RPMh interconnect providers support system bandwidth requirements through
index 3cff7e66225538ff593fe31202f4561631a6b850..300640a533dd67e59aa9d16f06500c152b1510ef 100644 (file)
@@ -8,7 +8,7 @@ title: Qualcomm RPMh Network-On-Chip Interconnect on SM8450
 
 maintainers:
   - Bjorn Andersson <andersson@kernel.org>
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   RPMh interconnect providers support system bandwidth requirements through
index 20ad4ad82ad64fd87d5ea6af783e29921568ef54..aae676ba30edc5af20f71e3ed4a926ca7f4699fb 100644 (file)
@@ -14,7 +14,10 @@ properties:
     oneOf:
       - const: fsl,imx-irqsteer
       - items:
-          - const: fsl,imx8m-irqsteer
+          - enum:
+              - fsl,imx8m-irqsteer
+              - fsl,imx8mp-irqsteer
+              - fsl,imx8qxp-irqsteer
           - const: fsl,imx-irqsteer
 
   reg:
@@ -42,6 +45,9 @@ properties:
   clock-names:
     const: ipg
 
+  power-domains:
+    maxItems: 1
+
   interrupt-controller: true
 
   "#interrupt-cells":
@@ -70,6 +76,21 @@ required:
   - fsl,channel
   - fsl,num-irqs
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx8mp-irqsteer
+              - fsl,imx8qxp-irqsteer
+    then:
+      required:
+        - power-domains
+    else:
+      properties:
+        power-domains: false
+
 additionalProperties: false
 
 examples:
index 887e565b95732af6ad3378c690ee86f189b7b907..199b34fdbefc4398a937f9b9b58f2108f222f96b 100644 (file)
@@ -8,7 +8,6 @@ title: Freescale Layerscape External Interrupt Controller
 
 maintainers:
   - Shawn Guo <shawnguo@kernel.org>
-  - Li Yang <leoyang.li@nxp.com>
 
 description: |
   Some Layerscape SOCs (LS1021A, LS1043A, LS1046A LS1088A, LS208xA,
diff --git a/Bindings/interrupt-controller/fsl,ls-msi.yaml b/Bindings/interrupt-controller/fsl,ls-msi.yaml
new file mode 100644 (file)
index 0000000..9ba8d4d
--- /dev/null
@@ -0,0 +1,79 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/fsl,ls-msi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Layerscape SCFG PCIe MSI controller
+
+description: |
+  This interrupt controller hardware is a second level interrupt controller that
+  is hooked to a parent interrupt controller: e.g: ARM GIC for ARM-based
+  platforms. If interrupt-parent is not provided, the default parent interrupt
+  controller will be used.
+
+  Each PCIe node needs to have property msi-parent that points to
+  MSI controller node
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    enum:
+      - fsl,ls1012a-msi
+      - fsl,ls1021a-msi
+      - fsl,ls1043a-msi
+      - fsl,ls1043a-v1.1-msi
+      - fsl,ls1046a-msi
+
+  reg:
+    maxItems: 1
+
+  '#msi-cells':
+    const: 1
+
+  interrupts:
+    items:
+      - description: Shared MSI interrupt group 0
+      - description: Shared MSI interrupt group 1
+      - description: Shared MSI interrupt group 2
+      - description: Shared MSI interrupt group 3
+    minItems: 1
+
+required:
+  - compatible
+  - reg
+  - msi-controller
+  - interrupts
+
+allOf:
+  - $ref: msi-controller.yaml
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,ls1046a-msi
+    then:
+      properties:
+        interrupts:
+          minItems: 4
+    else:
+      properties:
+        interrupts:
+          maxItems: 1
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    interrupt-controller@1571000 {
+        compatible = "fsl,ls1043a-msi";
+        reg = <0x1571000 0x8>;
+        msi-controller;
+        #msi-cells = <1>;
+        interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+    };
diff --git a/Bindings/interrupt-controller/fsl,ls-scfg-msi.txt b/Bindings/interrupt-controller/fsl,ls-scfg-msi.txt
deleted file mode 100644 (file)
index 454ce04..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-* Freescale Layerscape SCFG PCIe MSI controller
-
-Required properties:
-
-- compatible: should be "fsl,<soc-name>-msi" to identify
-             Layerscape PCIe MSI controller block such as:
-              "fsl,ls1021a-msi"
-              "fsl,ls1043a-msi"
-              "fsl,ls1046a-msi"
-              "fsl,ls1043a-v1.1-msi"
-              "fsl,ls1012a-msi"
-- msi-controller: indicates that this is a PCIe MSI controller node
-- reg: physical base address of the controller and length of memory mapped.
-- interrupts: an interrupt to the parent interrupt controller.
-
-This interrupt controller hardware is a second level interrupt controller that
-is hooked to a parent interrupt controller: e.g: ARM GIC for ARM-based
-platforms. If interrupt-parent is not provided, the default parent interrupt
-controller will be used.
-Each PCIe node needs to have property msi-parent that points to
-MSI controller node
-
-Examples:
-
-       msi1: msi-controller@1571000 {
-               compatible = "fsl,ls1043a-msi";
-               reg = <0x0 0x1571000 0x0 0x8>,
-               msi-controller;
-               interrupts = <0 116 0x4>;
-       };
diff --git a/Bindings/interrupt-controller/marvell,armada-370-xp-mpic.txt b/Bindings/interrupt-controller/marvell,armada-370-xp-mpic.txt
deleted file mode 100644 (file)
index 5fc0313..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-Marvell Armada 370, 375, 38x, XP Interrupt Controller
------------------------------------------------------
-
-Required properties:
-- compatible: Should be "marvell,mpic"
-- interrupt-controller: Identifies the node as an interrupt controller.
-- msi-controller: Identifies the node as an PCI Message Signaled
-  Interrupt controller.
-- #interrupt-cells: The number of cells to define the interrupts. Should be 1.
-  The cell is the IRQ number
-
-- reg: Should contain PMIC registers location and length. First pair
-  for the main interrupt registers, second pair for the per-CPU
-  interrupt registers. For this last pair, to be compliant with SMP
-  support, the "virtual" must be use (For the record, these registers
-  automatically map to the interrupt controller registers of the
-  current CPU)
-
-Optional properties:
-
-- interrupts: If defined, then it indicates that this MPIC is
-  connected as a slave to another interrupt controller. This is
-  typically the case on Armada 375 and Armada 38x, where the MPIC is
-  connected as a slave to the Cortex-A9 GIC. The provided interrupt
-  indicate to which GIC interrupt the MPIC output is connected.
-
-Example:
-
-        mpic: interrupt-controller@d0020000 {
-              compatible = "marvell,mpic";
-              #interrupt-cells = <1>;
-              #address-cells = <1>;
-              #size-cells = <1>;
-              interrupt-controller;
-              msi-controller;
-              reg = <0xd0020a00 0x1d0>,
-                    <0xd0021070 0x58>;
-        };
diff --git a/Bindings/interrupt-controller/marvell,mpic.yaml b/Bindings/interrupt-controller/marvell,mpic.yaml
new file mode 100644 (file)
index 0000000..616a41c
--- /dev/null
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/marvell,mpic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Marvell Armada 370, 375, 38x, 39x, XP Interrupt Controller
+
+maintainers:
+  - Marek Behún <kabel@kernel.org>
+
+description: |
+  The top-level interrupt controller on Marvell Armada 370 and XP. On these
+  platforms it also provides inter-processor interrupts.
+
+  On Marvell Armada 375, 38x and 39x this controller is wired under ARM GIC.
+
+  Provides MSI handling for the PCIe controllers.
+
+properties:
+  compatible:
+    const: marvell,mpic
+
+  reg:
+    items:
+      - description: main registers
+      - description: per-cpu registers
+
+  interrupts:
+    items:
+      - description: |
+          Parent interrupt on platforms where MPIC is not the top-level
+          interrupt controller.
+
+  interrupt-controller: true
+
+  '#interrupt-cells':
+    const: 1
+
+  msi-controller: true
+
+required:
+  - compatible
+  - reg
+  - interrupt-controller
+  - '#interrupt-cells'
+  - msi-controller
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    interrupt-controller@20a00 {
+        compatible = "marvell,mpic";
+        reg = <0x20a00 0x2d0>, <0x21070 0x58>;
+        interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-controller;
+        #interrupt-cells = <1>;
+        msi-controller;
+    };
diff --git a/Bindings/interrupt-controller/microchip,lan966x-oic.yaml b/Bindings/interrupt-controller/microchip,lan966x-oic.yaml
new file mode 100644 (file)
index 0000000..b2adc71
--- /dev/null
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/microchip,lan966x-oic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip LAN966x outband interrupt controller
+
+maintainers:
+  - Herve Codina <herve.codina@bootlin.com>
+
+allOf:
+  - $ref: /schemas/interrupt-controller.yaml#
+
+description: |
+  The Microchip LAN966x outband interrupt controller (OIC) maps the internal
+  interrupt sources of the LAN966x device to an external interrupt.
+  When the LAN966x device is used as a PCI device, the external interrupt is
+  routed to the PCI interrupt.
+
+properties:
+  compatible:
+    const: microchip,lan966x-oic
+
+  '#interrupt-cells':
+    const: 2
+
+  interrupt-controller: true
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - '#interrupt-cells'
+  - interrupt-controller
+  - interrupts
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    interrupt-controller@e00c0120 {
+        compatible = "microchip,lan966x-oic";
+        reg = <0xe00c0120 0x190>;
+        #interrupt-cells = <2>;
+        interrupt-controller;
+        interrupts = <0>;
+        interrupt-parent = <&intc>;
+    };
+...
index 4bdc8321904bd043a62a09acf97f52bc224fdc75..985fa10abb99495e2fff66ef4210c677ee98a345 100644 (file)
@@ -30,6 +30,7 @@ properties:
           - qcom,sa8775p-pdc
           - qcom,sc7180-pdc
           - qcom,sc7280-pdc
+          - qcom,sc8180x-pdc
           - qcom,sc8280xp-pdc
           - qcom,sdm670-pdc
           - qcom,sdm845-pdc
index fb5593724059db224232a534843845a95ecf7671..833a01cdd1b1716d33d0eb211a4da5e7fd8b6876 100644 (file)
@@ -25,6 +25,7 @@ properties:
       - items:
           - enum:
               - realtek,rtl8380-intc
+              - realtek,rtl9300-intc
           - const: realtek,rtl-intc
       - const: realtek,rtl-intc
         deprecated: true
@@ -35,7 +36,10 @@ properties:
     const: 1
 
   reg:
-    maxItems: 1
+    minItems: 1
+    items:
+      - description: vpe0 registers
+      - description: vpe1 registers
 
   interrupts:
     minItems: 1
@@ -71,6 +75,20 @@ allOf:
     else:
       required:
         - interrupts
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: realtek,rtl9300-intc
+    then:
+      properties:
+        reg:
+          minItems: 2
+          maxItems: 2
+    else:
+      properties:
+        reg:
+          maxItems: 1
 
 additionalProperties: false
 
index daef4ee06f4ed6fadbbd04d618b385ac99080626..44b6ae5fc802854eba06b1e5b61d55373e87bb6b 100644 (file)
@@ -21,13 +21,16 @@ description: |
 
 properties:
   compatible:
-    items:
-      - enum:
-          - renesas,r9a07g043u-irqc   # RZ/G2UL
-          - renesas,r9a07g044-irqc    # RZ/G2{L,LC}
-          - renesas,r9a07g054-irqc    # RZ/V2L
-          - renesas,r9a08g045-irqc    # RZ/G3S
-      - const: renesas,rzg2l-irqc
+    oneOf:
+      - items:
+          - enum:
+              - renesas,r9a07g043u-irqc    # RZ/G2UL
+              - renesas,r9a07g044-irqc     # RZ/G2{L,LC}
+              - renesas,r9a07g054-irqc     # RZ/V2L
+              - renesas,r9a08g045-irqc     # RZ/G3S
+          - const: renesas,rzg2l-irqc
+
+      - const: renesas,r9a07g043f-irqc     # RZ/Five
 
   '#interrupt-cells':
     description: The first cell should contain a macro RZG2L_{NMI,IRQX} included in the
diff --git a/Bindings/interrupt-controller/riscv,cpu-intc.txt b/Bindings/interrupt-controller/riscv,cpu-intc.txt
deleted file mode 100644 (file)
index 265b223..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-RISC-V Hart-Level Interrupt Controller (HLIC)
----------------------------------------------
-
-RISC-V cores include Control Status Registers (CSRs) which are local to each
-CPU core (HART in RISC-V terminology) and can be read or written by software.
-Some of these CSRs are used to control local interrupts connected to the core.
-Every interrupt is ultimately routed through a hart's HLIC before it
-interrupts that hart.
-
-The RISC-V supervisor ISA manual specifies three interrupt sources that are
-attached to every HLIC: software interrupts, the timer interrupt, and external
-interrupts.  Software interrupts are used to send IPIs between cores.  The
-timer interrupt comes from an architecturally mandated real-time timer that is
-controlled via Supervisor Binary Interface (SBI) calls and CSR reads.  External
-interrupts connect all other device interrupts to the HLIC, which are routed
-via the platform-level interrupt controller (PLIC).
-
-All RISC-V systems that conform to the supervisor ISA specification are
-required to have a HLIC with these three interrupt sources present.  Since the
-interrupt map is defined by the ISA it's not listed in the HLIC's device tree
-entry, though external interrupt controllers (like the PLIC, for example) will
-need to define how their interrupts map to the relevant HLICs.  This means
-a PLIC interrupt property will typically list the HLICs for all present HARTs
-in the system.
-
-Required properties:
-- compatible : "riscv,cpu-intc"
-- #interrupt-cells : should be <1>.  The interrupt sources are defined by the
-  RISC-V supervisor ISA manual, with only the following three interrupts being
-  defined for supervisor mode:
-    - Source 1 is the supervisor software interrupt, which can be sent by an SBI
-      call and is reserved for use by software.
-    - Source 5 is the supervisor timer interrupt, which can be configured by
-      SBI calls and implements a one-shot timer.
-    - Source 9 is the supervisor external interrupt, which chains to all other
-      device interrupts.
-- interrupt-controller : Identifies the node as an interrupt controller
-
-Furthermore, this interrupt-controller MUST be embedded inside the cpu
-definition of the hart whose CSRs control these local interrupts.
-
-An example device tree entry for a HLIC is show below.
-
-       cpu1: cpu@1 {
-               compatible = "riscv";
-               ...
-               cpu1-intc: interrupt-controller {
-                       #interrupt-cells = <1>;
-                       compatible = "sifive,fu540-c000-cpu-intc", "riscv,cpu-intc";
-                       interrupt-controller;
-               };
-       };
diff --git a/Bindings/interrupt-controller/riscv,cpu-intc.yaml b/Bindings/interrupt-controller/riscv,cpu-intc.yaml
new file mode 100644 (file)
index 0000000..83256cc
--- /dev/null
@@ -0,0 +1,73 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/riscv,cpu-intc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RISC-V Hart-Level Interrupt Controller (HLIC)
+
+description:
+  RISC-V cores include Control Status Registers (CSRs) which are local to
+  each CPU core (HART in RISC-V terminology) and can be read or written by
+  software. Some of these CSRs are used to control local interrupts connected
+  to the core. Every interrupt is ultimately routed through a hart's HLIC
+  before it interrupts that hart.
+
+  The RISC-V supervisor ISA manual specifies three interrupt sources that are
+  attached to every HLIC namely software interrupts, the timer interrupt, and
+  external interrupts. Software interrupts are used to send IPIs between
+  cores.  The timer interrupt comes from an architecturally mandated real-
+  time timer that is controlled via Supervisor Binary Interface (SBI) calls
+  and CSR reads. External interrupts connect all other device interrupts to
+  the HLIC, which are routed via the platform-level interrupt controller
+  (PLIC).
+
+  All RISC-V systems that conform to the supervisor ISA specification are
+  required to have a HLIC with these three interrupt sources present.  Since
+  the interrupt map is defined by the ISA it's not listed in the HLIC's device
+  tree entry, though external interrupt controllers (like the PLIC, for
+  example) will need to define how their interrupts map to the relevant HLICs.
+  This means a PLIC interrupt property will typically list the HLICs for all
+  present HARTs in the system.
+
+maintainers:
+  - Palmer Dabbelt <palmer@dabbelt.com>
+  - Paul Walmsley <paul.walmsley@sifive.com>
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: andestech,cpu-intc
+          - const: riscv,cpu-intc
+      - const: riscv,cpu-intc
+
+  interrupt-controller: true
+
+  '#interrupt-cells':
+    const: 1
+    description: |
+      The interrupt sources are defined by the RISC-V supervisor ISA manual,
+      with only the following three interrupts being defined for
+      supervisor mode:
+        - Source 1 is the supervisor software interrupt, which can be sent by
+          an SBI call and is reserved for use by software.
+        - Source 5 is the supervisor timer interrupt, which can be configured
+          by SBI calls and implements a one-shot timer.
+        - Source 9 is the supervisor external interrupt, which chains to all
+          other device interrupts.
+
+required:
+  - compatible
+  - '#interrupt-cells'
+  - interrupt-controller
+
+additionalProperties: false
+
+examples:
+  - |
+    interrupt-controller {
+        #interrupt-cells = <1>;
+        compatible = "riscv,cpu-intc";
+        interrupt-controller;
+    };
index e20016f120175170a7754192ee658462d9ba3fc9..a8409db4a3e3d4b50ea3dac631ff5244a1a71b8b 100644 (file)
@@ -17,7 +17,12 @@ properties:
       The content of the cell is the master ID.
 
   compatible:
-    const: allwinner,sun50i-h6-iommu
+    oneOf:
+      - const: allwinner,sun50i-h6-iommu
+      - const: allwinner,sun50i-h616-iommu
+      - items:
+          - const: allwinner,sun55i-a523-iommu
+          - const: allwinner,sun50i-h616-iommu
 
   reg:
     maxItems: 1
index 5c130cf06a2124081eb5dcfa03164c12ff760d10..280b4e49f2191972c86dfafd1d553d17d9f77c21 100644 (file)
@@ -86,6 +86,7 @@ properties:
               - qcom,qcm2290-smmu-500
               - qcom,sa8775p-smmu-500
               - qcom,sc7280-smmu-500
+              - qcom,sc8180x-smmu-500
               - qcom,sc8280xp-smmu-500
               - qcom,sm6115-smmu-500
               - qcom,sm6125-smmu-500
@@ -95,6 +96,7 @@ properties:
               - qcom,sm8450-smmu-500
               - qcom,sm8550-smmu-500
               - qcom,sm8650-smmu-500
+              - qcom,x1e80100-smmu-500
           - const: qcom,adreno-smmu
           - const: qcom,smmu-500
           - const: arm,mmu-500
@@ -415,6 +417,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - qcom,sc8180x-smmu-500
               - qcom,sm6350-smmu-v2
               - qcom,sm7150-smmu-v2
               - qcom,sm8150-smmu-500
@@ -520,6 +523,7 @@ allOf:
             - enum:
                 - qcom,sm8550-smmu-500
                 - qcom,sm8650-smmu-500
+                - qcom,x1e80100-smmu-500
             - const: qcom,adreno-smmu
             - const: qcom,smmu-500
             - const: arm,mmu-500
@@ -550,14 +554,12 @@ allOf:
               - nvidia,smmu-500
               - qcom,qdu1000-smmu-500
               - qcom,sc7180-smmu-500
-              - qcom,sc8180x-smmu-500
               - qcom,sdm670-smmu-500
               - qcom,sdm845-smmu-500
               - qcom,sdx55-smmu-500
               - qcom,sdx65-smmu-500
               - qcom,sm6350-smmu-500
               - qcom,sm6375-smmu-500
-              - qcom,x1e80100-smmu-500
     then:
       properties:
         clock-names: false
diff --git a/Bindings/iommu/msm,iommu-v0.txt b/Bindings/iommu/msm,iommu-v0.txt
deleted file mode 100644 (file)
index 2023638..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-* QCOM IOMMU
-
-The MSM IOMMU is an implementation compatible with the ARM VMSA short
-descriptor page tables. It provides address translation for bus masters outside
-of the CPU, each connected to the IOMMU through a port called micro-TLB.
-
-Required Properties:
-
-  - compatible: Must contain "qcom,apq8064-iommu".
-  - reg: Base address and size of the IOMMU registers.
-  - interrupts: Specifiers for the MMU fault interrupts. For instances that
-    support secure mode two interrupts must be specified, for non-secure and
-    secure mode, in that order. For instances that don't support secure mode a
-    single interrupt must be specified.
-  - #iommu-cells: The number of cells needed to specify the stream id. This
-                 is always 1.
-  - qcom,ncb:    The total number of context banks in the IOMMU.
-  - clocks     : List of clocks to be used during SMMU register access. See
-                 Documentation/devicetree/bindings/clock/clock-bindings.txt
-                 for information about the format. For each clock specified
-                 here, there must be a corresponding entry in clock-names
-                 (see below).
-
-  - clock-names        : List of clock names corresponding to the clocks specified in
-                 the "clocks" property (above).
-                 Should be "smmu_pclk" for specifying the interface clock
-                 required for iommu's register accesses.
-                 Should be "smmu_clk" for specifying the functional clock
-                 required by iommu for bus accesses.
-
-Each bus master connected to an IOMMU must reference the IOMMU in its device
-node with the following property:
-
-  - iommus: A reference to the IOMMU in multiple cells. The first cell is a
-           phandle to the IOMMU and the second cell is the stream id.
-           A single master device can be connected to more than one iommu
-           and multiple contexts in each of the iommu. So multiple entries
-           are required to list all the iommus and the stream ids that the
-           master is connected to.
-
-Example: mdp iommu and its bus master
-
-                mdp_port0: iommu@7500000 {
-                       compatible = "qcom,apq8064-iommu";
-                       #iommu-cells = <1>;
-                       clock-names =
-                           "smmu_pclk",
-                           "smmu_clk";
-                       clocks =
-                           <&mmcc SMMU_AHB_CLK>,
-                           <&mmcc MDP_AXI_CLK>;
-                       reg = <0x07500000 0x100000>;
-                       interrupts =
-                           <GIC_SPI 63 0>,
-                           <GIC_SPI 64 0>;
-                       qcom,ncb = <2>;
-               };
-
-               mdp: qcom,mdp@5100000 {
-                       compatible = "qcom,mdp";
-                       ...
-                       iommus = <&mdp_port0 0
-                                 &mdp_port0 2>;
-               };
diff --git a/Bindings/iommu/qcom,apq8064-iommu.yaml b/Bindings/iommu/qcom,apq8064-iommu.yaml
new file mode 100644 (file)
index 0000000..9f83f85
--- /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/iommu/qcom,apq8064-iommu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm APQ8064 IOMMU
+
+maintainers:
+  - David Heidelberg <david@ixit.cz>
+
+description:
+  The MSM IOMMU is an implementation compatible with the ARM VMSA short
+  descriptor page tables. It provides address translation for bus masters
+  outside of the CPU, each connected to the IOMMU through a port called micro-TLB.
+
+properties:
+  compatible:
+    const: qcom,apq8064-iommu
+
+  clocks:
+    items:
+      - description: interface clock for register accesses
+      - description: functional clock for bus accesses
+
+  clock-names:
+    items:
+      - const: smmu_pclk
+      - const: iommu_clk
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description: Specifiers for the MMU fault interrupts.
+    minItems: 1
+    items:
+      - description: non-secure mode interrupt
+      - description: secure mode interrupt (for instances which supports it)
+
+  "#iommu-cells":
+    const: 1
+    description: Each IOMMU specifier describes a single Stream ID.
+
+  qcom,ncb:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: The total number of context banks in the IOMMU.
+    minimum: 1
+    maximum: 4
+
+required:
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+  - qcom,ncb
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,mmcc-msm8960.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    iommu@7500000 {
+            compatible = "qcom,apq8064-iommu";
+            reg = <0x07500000 0x100000>;
+            interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
+            clocks = <&clk SMMU_AHB_CLK>,
+                     <&clk MDP_AXI_CLK>;
+            clock-names = "smmu_pclk",
+                          "iommu_clk";
+            #iommu-cells = <1>;
+            qcom,ncb = <2>;
+    };
index a74eb899c381ec665932e780769f93a51eb4bbf5..f8cebc9e8cd9d46b449cd297153dbebe5c84bf3f 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Technologies legacy IOMMU implementations
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   Qualcomm "B" family devices which are not compatible with arm-smmu have
@@ -25,6 +25,7 @@ properties:
           - const: qcom,msm-iommu-v1
       - items:
           - enum:
+              - qcom,msm8953-iommu
               - qcom,msm8976-iommu
           - const: qcom,msm-iommu-v2
 
diff --git a/Bindings/leds/backlight/ti,lm3509.yaml b/Bindings/leds/backlight/ti,lm3509.yaml
new file mode 100644 (file)
index 0000000..482fae7
--- /dev/null
@@ -0,0 +1,136 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/backlight/ti,lm3509.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: TI LM3509 High Efficiency Boost for White LED's and/or OLED Displays
+
+maintainers:
+  - Patrick Gansterer <paroga@paroga.com>
+
+description:
+  The LM3509 current mode boost converter offers two separate outputs.
+  https://www.ti.com/product/LM3509
+
+properties:
+  compatible:
+    const: ti,lm3509
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+  reset-gpios:
+    maxItems: 1
+
+  ti,brightness-rate-of-change-us:
+    description: Brightness Rate of Change in microseconds.
+    enum: [51, 13000, 26000, 52000]
+
+  ti,oled-mode:
+    description: Enable OLED mode.
+    type: boolean
+
+patternProperties:
+  "^led@[01]$":
+    type: object
+    description: Properties for a string of connected LEDs.
+    $ref: common.yaml#
+
+    properties:
+      reg:
+        description:
+          The control register that is used to program the two current sinks.
+          The LM3509 has two registers (BMAIN and BSUB) and are represented
+          as 0 or 1 in this property. The two current sinks can be controlled
+          independently with both registers, or register BMAIN can be
+          configured to control both sinks with the led-sources property.
+        minimum: 0
+        maximum: 1
+
+      label: true
+
+      led-sources:
+        minItems: 1
+        maxItems: 2
+        items:
+          minimum: 0
+          maximum: 1
+
+      default-brightness:
+        minimum: 0
+        maximum: 31
+        default: 18
+
+      max-brightness:
+        minimum: 0
+        maximum: 31
+        default: 31
+
+    required:
+      - reg
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        backlight@36 {
+            compatible = "ti,lm3509";
+            reg = <0x36>;
+            reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
+
+            ti,oled-mode;
+            ti,brightness-rate-of-change-us = <52000>;
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            led@0 {
+                reg = <0>;
+                led-sources = <0 1>;
+                label = "lcd-backlight";
+                default-brightness = <12>;
+                max-brightness = <31>;
+            };
+        };
+    };
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        backlight@36 {
+            compatible = "ti,lm3509";
+            reg = <0x36>;
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            led@0 {
+                reg = <0>;
+                default-brightness = <12>;
+            };
+
+            led@1 {
+                reg = <1>;
+                default-brightness = <15>;
+            };
+        };
+    };
index e9d4514d0166defdb6a64f4b8e73b17ce10a0d46..fe8aaecf301081cce8f2f057dd27bdfdae8f821f 100644 (file)
@@ -28,6 +28,7 @@ properties:
       - national,lp5523
       - ti,lp55231
       - ti,lp5562
+      - ti,lp5569
       - ti,lp8501
 
   reg:
@@ -151,6 +152,16 @@ patternProperties:
         $ref: /schemas/types.yaml#/definitions/string
         description: name of channel
 
+if:
+  not:
+    properties:
+      compatible:
+        contains:
+          const: ti,lp8501
+then:
+  properties:
+    pwr-sel: false
+
 required:
   - compatible
   - reg
diff --git a/Bindings/leds/silergy,sy7802.yaml b/Bindings/leds/silergy,sy7802.yaml
new file mode 100644 (file)
index 0000000..46b8e54
--- /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/leds/silergy,sy7802.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Silergy SY7802 1800mA Boost Charge Pump LED Driver
+
+maintainers:
+  - André Apitzsch <git@apitzsch.eu>
+
+description: |
+  The SY7802 is a current-regulated charge pump which can regulate two current
+  levels for Flash and Torch modes.
+
+  The SY7802 is a high-current synchronous boost converter with 2-channel
+  high side current sources. Each channel is able to deliver 900mA current.
+
+properties:
+  compatible:
+    enum:
+      - silergy,sy7802
+
+  reg:
+    maxItems: 1
+
+  enable-gpios:
+    maxItems: 1
+    description: A connection to the 'EN' pin.
+
+  flash-gpios:
+    maxItems: 1
+    description: A connection to the 'FLEN' pin.
+
+  vin-supply:
+    description: Regulator providing power to the 'VIN' pin.
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^led@[0-1]$":
+    type: object
+    $ref: common.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        description: Index of the LED.
+        minimum: 0
+        maximum: 1
+
+      led-sources:
+        minItems: 1
+        maxItems: 2
+        items:
+          minimum: 0
+          maximum: 1
+
+    required:
+      - reg
+      - led-sources
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+  - enable-gpios
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/leds/common.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        flash-led-controller@53 {
+            compatible = "silergy,sy7802";
+            reg = <0x53>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
+
+            led@0 {
+                reg = <0>;
+                function = LED_FUNCTION_FLASH;
+                color = <LED_COLOR_ID_WHITE>;
+                led-sources = <0>, <1>;
+            };
+        };
+    };
diff --git a/Bindings/mailbox/mediatek,gce-props.yaml b/Bindings/mailbox/mediatek,gce-props.yaml
new file mode 100644 (file)
index 0000000..c25eed4
--- /dev/null
@@ -0,0 +1,52 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mailbox/mediatek,gce-props.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek Global Command Engine Common Properties
+
+maintainers:
+  - Houlong Wei <houlong.wei@mediatek.com>
+
+description:
+  The Global Command Engine (GCE) is an instruction based, multi-threaded,
+  single-core command dispatcher for MediaTek hardware. The Command Queue
+  (CMDQ) mailbox driver is a driver for GCE, implemented using the Linux
+  mailbox framework. It is used to receive messages from mailbox consumers
+  and configure GCE to execute the specified instruction set in the message.
+  We use mediatek,gce-mailbox.yaml to define the properties for CMDQ mailbox
+  driver. A device driver that uses the CMDQ driver to configure its hardware
+  registers is a mailbox consumer. The mailbox consumer can request a mailbox
+  channel corresponding to a GCE hardware thread to send a message, specifying
+  that the GCE thread to configure its hardware. The mailbox provider can also
+  reserve a mailbox channel to configure GCE hardware register by the specific
+  GCE thread. This binding defines the common GCE properties for both mailbox
+  provider and consumers.
+
+properties:
+  mediatek,gce-events:
+    description:
+      GCE has an event table in SRAM, consisting of 1024 event IDs (0~1023).
+      Each event ID has a boolean event value with the default value 0.
+      The property mediatek,gce-events is used to obtain the event IDs.
+      Some gce-events are hardware-bound and cannot be changed by software.
+      For instance, in MT8195, when VDO0_MUTEX is stream done, VDO_MUTEX will
+      send an event signal to GCE, setting the value of event ID 597 to 1.
+      Similarly, in MT8188, the value of event ID 574 will be set to 1 when
+      VOD0_MUTEX is stream done.
+      On the other hand, some gce-events are not hardware-bound and can be
+      changed by software. For example, in MT8188, we can set the value of
+      event ID 855, which is not bound to any hardware, to 1 when the driver
+      in the secure world completes a task. However, in MT8195, event ID 855
+      is already bound to VDEC_LAT1, so we need to select another event ID to
+      achieve the same purpose. This event ID can be any ID that is not bound
+      to any hardware and is not yet used in any software driver.
+      To determine if the event ID is bound to the hardware or used by a
+      software driver, refer to the GCE header
+      include/dt-bindings/gce/<chip>-gce.h of each chip.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 1
+    maxItems: 32
+
+additionalProperties: true
diff --git a/Bindings/mailbox/qcom,cpucp-mbox.yaml b/Bindings/mailbox/qcom,cpucp-mbox.yaml
new file mode 100644 (file)
index 0000000..f7342d0
--- /dev/null
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mailbox/qcom,cpucp-mbox.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. CPUCP Mailbox Controller
+
+maintainers:
+  - Sibi Sankar <quic_sibis@quicinc.com>
+
+description:
+  The CPUSS Control Processor (CPUCP) mailbox controller enables communication
+  between AP and CPUCP by acting as a doorbell between them.
+
+properties:
+  compatible:
+    items:
+      - const: qcom,x1e80100-cpucp-mbox
+
+  reg:
+    items:
+      - description: CPUCP rx register region
+      - description: CPUCP tx register region
+
+  interrupts:
+    maxItems: 1
+
+  "#mbox-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - "#mbox-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    mailbox@17430000 {
+        compatible = "qcom,x1e80100-cpucp-mbox";
+        reg = <0x17430000 0x10000>, <0x18830000 0x10000>;
+        interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+        #mbox-cells = <1>;
+    };
diff --git a/Bindings/media/i2c/galaxycore,gc05a2.yaml b/Bindings/media/i2c/galaxycore,gc05a2.yaml
new file mode 100644 (file)
index 0000000..0e7a7b5
--- /dev/null
@@ -0,0 +1,112 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright (c) 2023 MediaTek Inc.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/galaxycore,gc05a2.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: GalaxyCore gc05a2 1/5" 5M Pixel MIPI CSI-2 sensor
+
+maintainers:
+  - Zhi Mao <zhi.mao@mediatek.com>
+
+description:
+  The gc05a2 is a raw image sensor with an MIPI CSI-2 image data
+  interface and CCI (I2C compatible) control bus. The output format
+  is raw Bayer.
+
+properties:
+  compatible:
+    const: galaxycore,gc05a2
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  dovdd-supply: true
+
+  avdd-supply: true
+
+  dvdd-supply: true
+
+  reset-gpios:
+    description: Reference to the GPIO connected to the RESETB pin.
+    maxItems: 1
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    additionalProperties: false
+    description:
+      Output port node, single endpoint describing the CSI-2 transmitter.
+
+    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
+
+          link-frequencies: true
+
+        required:
+          - data-lanes
+          - link-frequencies
+
+    required:
+      - endpoint
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - dovdd-supply
+  - avdd-supply
+  - dvdd-supply
+  - reset-gpios
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        sensor@37 {
+            compatible =  "galaxycore,gc05a2";
+            reg = <0x37>;
+
+            clocks = <&gc05a2_clk>;
+
+            reset-gpios = <&pio 21 GPIO_ACTIVE_LOW>;
+
+            avdd-supply = <&gc05a2_avdd>;
+            dovdd-supply = <&gc05a2_dovdd>;
+            dvdd-supply = <&gc05a2_dvdd>;
+
+            port {
+                sensor_out: endpoint {
+                    data-lanes = <1 2>;
+                    link-frequencies = /bits/ 64 <448000000 224000000>;
+                    remote-endpoint = <&seninf_csi_port_1_in>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/Bindings/media/i2c/galaxycore,gc08a3.yaml b/Bindings/media/i2c/galaxycore,gc08a3.yaml
new file mode 100644 (file)
index 0000000..51b8ece
--- /dev/null
@@ -0,0 +1,112 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright (c) 2023 MediaTek Inc.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/galaxycore,gc08a3.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: GalaxyCore gc08a3 1/4" 8M Pixel MIPI CSI-2 sensor
+
+maintainers:
+  - Zhi Mao <zhi.mao@mediatek.com>
+
+description:
+  The gc08a3 is a raw image sensor with an MIPI CSI-2 image data
+  interface and CCI (I2C compatible) control bus. The output format
+  is raw Bayer.
+
+properties:
+  compatible:
+    const: galaxycore,gc08a3
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  dovdd-supply: true
+
+  avdd-supply: true
+
+  dvdd-supply: true
+
+  reset-gpios:
+    description: Reference to the GPIO connected to the RESETB pin.
+    maxItems: 1
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    additionalProperties: false
+    description:
+      Output port node, single endpoint describing the CSI-2 transmitter.
+
+    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
+
+          link-frequencies: true
+
+        required:
+          - data-lanes
+          - link-frequencies
+
+    required:
+      - endpoint
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - dovdd-supply
+  - avdd-supply
+  - dvdd-supply
+  - reset-gpios
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        sensor@31 {
+            compatible = "galaxycore,gc08a3";
+            reg = <0x31>;
+
+            clocks = <&gc08a3_clk>;
+
+            reset-gpios = <&pio 19 GPIO_ACTIVE_LOW>;
+
+            avdd-supply = <&gc08a3_avdd>;
+            dovdd-supply = <&gc08a3_dovdd>;
+            dvdd-supply = <&gc08a3_dvdd>;
+
+            port {
+                sensor_out: endpoint {
+                    data-lanes = <1 2 3 4>;
+                    link-frequencies = /bits/ 64 <336000000 207000000>;
+                    remote-endpoint = <&seninf_csi_port_0_in>;
+                };
+            };
+        };
+    };
+
+...
diff --git a/Bindings/media/i2c/maxim,max96714.yaml b/Bindings/media/i2c/maxim,max96714.yaml
new file mode 100644 (file)
index 0000000..3ace50e
--- /dev/null
@@ -0,0 +1,174 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2024 Collabora Ltd.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/maxim,max96714.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Maxim MAX96714 GMSL2 to CSI-2 Deserializer
+
+maintainers:
+  - Julien Massot <julien.massot@collabora.com>
+
+description:
+  The MAX96714 deserializer converts GMSL2 serial inputs into MIPI
+  CSI-2 D-PHY formatted output. The device allows the GMSL2 link to
+  simultaneously transmit bidirectional control-channel data while forward
+  video transmissions are in progress. The MAX96714 can connect to one
+  remotely located serializer using industry-standard coax or STP
+  interconnects. The device cans operate in pixel or tunnel mode. In pixel mode
+  the MAX96714 can select individual video stream, while the tunnel mode forward all
+  the MIPI data received by the serializer.
+
+  The GMSL2 serial link operates at a fixed rate of 3Gbps or 6Gbps in the
+  forward direction and 187.5Mbps in the reverse direction.
+  MAX96714F only supports a fixed rate of 3Gbps in the forward direction.
+
+properties:
+  compatible:
+    oneOf:
+      - const: maxim,max96714f
+      - items:
+          - enum:
+              - maxim,max96714
+          - const: maxim,max96714f
+
+  reg:
+    maxItems: 1
+
+  powerdown-gpios:
+    maxItems: 1
+    description:
+      Specifier for the GPIO connected to the PWDNB pin.
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/properties/port
+        unevaluatedProperties: false
+        description: GMSL Input
+        properties:
+          endpoint:
+            $ref: /schemas/media/video-interfaces.yaml#
+            unevaluatedProperties: false
+            description:
+              Endpoint for GMSL2-Link port.
+
+      port@1:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description: CSI-2 Output port
+
+        properties:
+          endpoint:
+            $ref: /schemas/media/video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              data-lanes:
+                minItems: 1
+                maxItems: 4
+
+              lane-polarities:
+                minItems: 1
+                maxItems: 5
+
+              link-frequencies:
+                maxItems: 1
+
+            required:
+              - data-lanes
+
+    required:
+      - port@1
+
+  i2c-gate:
+    $ref: /schemas/i2c/i2c-gate.yaml
+    unevaluatedProperties: false
+    description:
+      The MAX96714 will pass through and forward the I2C requests from the
+      incoming I2C bus over the GMSL2 link. Therefore it supports an i2c-gate
+      subnode to configure a serializer.
+
+  port0-poc-supply:
+    description: Regulator providing Power over Coax for the GMSL port
+
+required:
+  - compatible
+  - reg
+  - ports
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/media/video-interfaces.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        deserializer@28 {
+            compatible = "maxim,max96714f";
+            reg = <0x28>;
+            powerdown-gpios = <&main_gpio0 37 GPIO_ACTIVE_LOW>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                port@0 {
+                    reg = <0>;
+                    max96714_gmsl_in: endpoint {
+                        remote-endpoint = <&max96917f_gmsl_out>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    max96714_csi_out: endpoint {
+                        data-lanes = <1 2 3 4>;
+                        link-frequencies = /bits/ 64 <400000000>;
+                        remote-endpoint = <&csi_in>;
+                    };
+                };
+            };
+
+            i2c-gate {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                serializer@40 {
+                    compatible = "maxim,max96717f";
+                    reg = <0x40>;
+                    gpio-controller;
+                    #gpio-cells = <2>;
+                    #clock-cells = <0>;
+
+                    ports {
+                        #address-cells = <1>;
+                        #size-cells = <0>;
+
+                        port@0 {
+                            reg = <0>;
+                            max96717f_csi_in: endpoint {
+                                data-lanes = <1 2>;
+                                lane-polarities = <1 0 1>;
+                                remote-endpoint = <&sensor_out>;
+                            };
+                        };
+
+                        port@1 {
+                            reg = <1>;
+                            max96917f_gmsl_out: endpoint {
+                                remote-endpoint = <&max96714_gmsl_in>;
+                            };
+                        };
+                    };
+                };
+            };
+        };
+    };
+...
diff --git a/Bindings/media/i2c/maxim,max96717.yaml b/Bindings/media/i2c/maxim,max96717.yaml
new file mode 100644 (file)
index 0000000..d1e8ba6
--- /dev/null
@@ -0,0 +1,157 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2024 Collabora Ltd.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/maxim,max96717.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MAX96717 CSI-2 to GMSL2 Serializer
+
+maintainers:
+  - Julien Massot <julien.massot@collabora.com>
+
+description:
+  The MAX96717 serializer converts MIPI CSI-2 D-PHY formatted input
+  into GMSL2 serial outputs. The device allows the GMSL2 link to
+  simultaneously transmit bidirectional control-channel data while forward
+  video transmissions are in progress. The MAX96717 can connect to one
+  remotely located deserializer using industry-standard coax or STP
+  interconnects. The device cans operate in pixel or tunnel mode. In pixel mode
+  the MAX96717 can select the MIPI datatype, while the tunnel mode forward all the MIPI
+  data received by the serializer.
+  The MAX96717 supports Reference Over Reverse (channel),
+  to generate a clock output for the sensor from the GMSL reverse channel.
+
+  The GMSL2 serial link operates at a fixed rate of 3Gbps or 6Gbps in the
+  forward direction and 187.5Mbps in the reverse direction.
+  MAX96717F only supports a fixed rate of 3Gbps in the forward direction.
+
+properties:
+  compatible:
+    oneOf:
+      - const: maxim,max96717f
+      - items:
+          - enum:
+              - maxim,max96717
+          - const: maxim,max96717f
+
+  '#gpio-cells':
+    const: 2
+    description:
+      First cell is the GPIO pin number, second cell is the flags. The GPIO pin
+      number must be in range of [0, 10].
+
+  gpio-controller: true
+
+  '#clock-cells':
+    const: 0
+
+  reg:
+    maxItems: 1
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+    properties:
+      port@0:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+        description: CSI-2 Input port
+
+        properties:
+          endpoint:
+            $ref: /schemas/media/video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            properties:
+              data-lanes:
+                minItems: 1
+                maxItems: 4
+
+              lane-polarities:
+                minItems: 1
+                maxItems: 5
+
+            required:
+              - data-lanes
+
+      port@1:
+        $ref: /schemas/graph.yaml#/properties/port
+        unevaluatedProperties: false
+        description: GMSL Output port
+
+    required:
+      - port@1
+
+  i2c-gate:
+    $ref: /schemas/i2c/i2c-gate.yaml
+    unevaluatedProperties: false
+    description:
+      The MAX96717 will forward the I2C requests from the
+      incoming GMSL2 link. Therefore, it supports an i2c-gate
+      subnode to configure a sensor.
+
+required:
+  - compatible
+  - reg
+  - ports
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/media/video-interfaces.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        serializer: serializer@40 {
+            compatible = "maxim,max96717f";
+            reg = <0x40>;
+            gpio-controller;
+            #gpio-cells = <2>;
+            #clock-cells = <0>;
+
+            ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                port@0 {
+                    reg = <0>;
+                    max96717f_csi_in: endpoint {
+                        data-lanes = <1 2 3 4>;
+                        remote-endpoint = <&sensor_out>;
+                    };
+                };
+
+                port@1 {
+                    reg = <1>;
+                    max96917f_gmsl_out: endpoint {
+                        remote-endpoint = <&deser_gmsl_in>;
+                    };
+                };
+            };
+
+            i2c-gate {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                sensor@10 {
+                    compatible = "st,st-vgxy61";
+                    reg = <0x10>;
+                    reset-gpios = <&serializer 0 GPIO_ACTIVE_LOW>;
+                    clocks = <&serializer>;
+                    VCORE-supply = <&v1v2>;
+                    VDDIO-supply = <&v1v8>;
+                    VANA-supply = <&v2v8>;
+                    port {
+                        sensor_out: endpoint {
+                            data-lanes = <1 2 3 4>;
+                            remote-endpoint = <&max96717f_csi_in>;
+                        };
+                    };
+                };
+            };
+        };
+    };
+...
similarity index 88%
rename from Bindings/media/i2c/imx258.yaml
rename to Bindings/media/i2c/sony,imx258.yaml
index 80d24220baa078fb34a4e196189197065327b83f..c978abc0cdb35cfe2b85069946cf1be435a58cb8 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/media/i2c/imx258.yaml#
+$id: http://devicetree.org/schemas/media/i2c/sony,imx258.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Sony IMX258 13 Mpixel CMOS Digital Image Sensor
@@ -13,11 +13,16 @@ description: |-
   IMX258 is a diagonal 5.867mm (Type 1/3.06) 13 Mega-pixel CMOS active pixel
   type stacked image sensor with a square pixel array of size 4208 x 3120. It
   is programmable through I2C interface.  Image data is sent through MIPI
-  CSI-2.
+  CSI-2. The sensor exists in two different models, a standard variant
+  (IMX258) and a variant with phase detection autofocus (IMX258-PDAF).
+  The camera module does not expose the model through registers, so the
+  exact model needs to be specified.
 
 properties:
   compatible:
-    const: sony,imx258
+    enum:
+      - sony,imx258
+      - sony,imx258-pdaf
 
   assigned-clocks: true
   assigned-clock-parents: true
diff --git a/Bindings/media/i2c/sony,imx283.yaml b/Bindings/media/i2c/sony,imx283.yaml
new file mode 100644 (file)
index 0000000..e4f49f1
--- /dev/null
@@ -0,0 +1,107 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (C) 2024 Ideas on Board Oy
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/sony,imx283.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sony IMX283 Sensor
+
+maintainers:
+  - Kieran Bingham <kieran.bingham@ideasonboard.com>
+  - Umang Jain <umang.jain@ideasonboard.com>
+
+description:
+  IMX283 sensor is a Sony CMOS active pixel digital image sensor with an active
+  array size of 5472H x 3648V. It is programmable through I2C interface. The
+  I2C client address is fixed to 0x1a as per sensor data sheet. Image data is
+  sent through MIPI CSI-2.
+
+properties:
+  compatible:
+    const: sony,imx283
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    description: Clock frequency from 6 to 24 MHz.
+    maxItems: 1
+
+  vadd-supply:
+    description: Analog power supply (2.9V)
+
+  vdd1-supply:
+    description: Interface power supply (1.8V)
+
+  vdd2-supply:
+    description: Digital power supply (1.2V)
+
+  reset-gpios:
+    description: Sensor reset (XCLR) GPIO
+    maxItems: 1
+
+  port:
+    $ref: /schemas/graph.yaml#/$defs/port-base
+    additionalProperties: false
+
+    properties:
+      endpoint:
+        $ref: /schemas/media/video-interfaces.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          data-lanes:
+            anyOf:
+              - items:
+                  - const: 1
+                  - const: 2
+                  - const: 3
+                  - const: 4
+
+          link-frequencies: true
+
+        required:
+          - data-lanes
+          - link-frequencies
+
+    required:
+      - endpoint
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - port
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        camera@1a {
+            compatible = "sony,imx283";
+            reg = <0x1a>;
+            clocks = <&imx283_clk>;
+
+            assigned-clocks = <&imx283_clk>;
+            assigned-clock-parents = <&imx283_clk_parent>;
+            assigned-clock-rates = <12000000>;
+
+            vadd-supply = <&camera_vadd_2v9>;
+            vdd1-supply = <&camera_vdd1_1v8>;
+            vdd2-supply = <&camera_vdd2_1v2>;
+
+            port {
+                imx283: endpoint {
+                    remote-endpoint = <&cam>;
+                    data-lanes = <1 2 3 4>;
+                    link-frequencies = /bits/ 64 <360000000>;
+                };
+            };
+        };
+    };
+...
diff --git a/Bindings/media/img,e5010-jpeg-enc.yaml b/Bindings/media/img,e5010-jpeg-enc.yaml
new file mode 100644 (file)
index 0000000..085020c
--- /dev/null
@@ -0,0 +1,75 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/img,e5010-jpeg-enc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Imagination E5010 JPEG Encoder
+
+maintainers:
+  - Devarsh Thakkar <devarsht@ti.com>
+
+description: |
+  The E5010 is a JPEG encoder from Imagination Technologies implemented on
+  TI's AM62A SoC. It is capable of real time encoding of YUV420 and YUV422
+  inputs to JPEG and M-JPEG. It supports baseline JPEG Encoding up to
+  8Kx8K resolution.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: ti,am62a-jpeg-enc
+          - const: img,e5010-jpeg-enc
+      - const: img,e5010-jpeg-enc
+
+  reg:
+    items:
+      - description: The E5010 core register region
+      - description: The E5010 mmu register region
+
+  reg-names:
+    items:
+      - const: core
+      - const: mmu
+
+  power-domains:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - interrupts
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/soc/ti,sci_pm_domain.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+      jpeg-encoder@fd20000 {
+          compatible = "img,e5010-jpeg-enc";
+          reg = <0x00 0xfd20000 0x00 0x100>,
+                <0x00 0xfd20200 0x00 0x200>;
+          reg-names = "core", "mmu";
+          clocks = <&k3_clks 201 0>;
+          power-domains = <&k3_pds 201 TI_SCI_PD_EXCLUSIVE>;
+          interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+      };
+    };
index 59db8306485b328deb763ce260002dadffaf7da4..18603f6c5e06e8e65b8d5e5ef1f0fbd82f3a057a 100644 (file)
@@ -23,6 +23,7 @@ properties:
     oneOf:
       - enum:
           - mediatek,mt8183-mdp3-rdma
+          - mediatek,mt8188-mdp3-rdma
           - mediatek,mt8195-mdp3-rdma
           - mediatek,mt8195-vdo1-rdma
       - items:
diff --git a/Bindings/media/mediatek,mt7622-cir.yaml b/Bindings/media/mediatek,mt7622-cir.yaml
new file mode 100644 (file)
index 0000000..c01210e
--- /dev/null
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/mediatek,mt7622-cir.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek Consumer Infrared Receiver on-SoC Controller
+
+maintainers:
+  - Sean Wang <sean.wang@mediatek.com>
+
+allOf:
+  - $ref: rc.yaml#
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt7622-cir
+      - mediatek,mt7623-cir
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 2
+
+  clock-names:
+    items:
+      - const: clk
+      - const: bus
+
+required:
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/mt2701-clk.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    ir@10013000 {
+        compatible = "mediatek,mt7623-cir";
+        reg = <0x10013000 0x1000>;
+        interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
+        clocks = <&infracfg CLK_INFRA_IRRX>, <&topckgen CLK_TOP_AXI_SEL>;
+        clock-names = "clk", "bus";
+        linux,rc-map-name = "rc-rc6-mce";
+    };
diff --git a/Bindings/media/mtk-cir.txt b/Bindings/media/mtk-cir.txt
deleted file mode 100644 (file)
index 5e18087..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-Device-Tree bindings for Mediatek consumer IR controller
-found in Mediatek SoC family
-
-Required properties:
-- compatible       : Should be
-                       "mediatek,mt7623-cir": for MT7623 SoC
-                       "mediatek,mt7622-cir": for MT7622 SoC
-- clocks           : list of clock specifiers, corresponding to
-                     entries in clock-names property;
-- clock-names      : should contain
-                       - "clk" entries: for MT7623 SoC
-                       - "clk", "bus" entries: for MT7622 SoC
-- interrupts       : should contain IR IRQ number;
-- reg              : should contain IO map address for IR.
-
-Optional properties:
-- linux,rc-map-name : see rc.txt file in the same directory.
-
-Example:
-
-cir: cir@10013000 {
-       compatible = "mediatek,mt7623-cir";
-       reg = <0 0x10013000 0 0x1000>;
-       interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
-       clocks = <&infracfg CLK_INFRA_IRRX>;
-       clock-names = "clk";
-       linux,rc-map-name = "rc-rc6-mce";
-};
index 3a4d817e544e2e3b4ebbe6368c6f44c6d0b3f4e3..56c16458e3bb4d5ec2ecd10024959c0c14118dab 100644 (file)
@@ -18,7 +18,9 @@ allOf:
 
 properties:
   compatible:
-    const: qcom,msm8996-venus
+    enum:
+      - qcom,msm8996-venus
+      - qcom,msm8998-venus
 
   power-domains:
     maxItems: 1
diff --git a/Bindings/media/raspberrypi,pispbe.yaml b/Bindings/media/raspberrypi,pispbe.yaml
new file mode 100644 (file)
index 0000000..1fc62a1
--- /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/media/raspberrypi,pispbe.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Raspberry Pi PiSP Image Signal Processor (ISP) Back End
+
+maintainers:
+  - Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
+  - Jacopo Mondi <jacopo.mondi@ideasonboard.com>
+
+description: |
+  The Raspberry Pi PiSP Image Signal Processor (ISP) Back End is an image
+  processor that fetches images in Bayer or Grayscale format from DRAM memory
+  in tiles and produces images consumable by applications.
+
+  The full ISP documentation is available at
+  https://datasheets.raspberrypi.com/camera/raspberry-pi-image-signal-processor-specification.pdf
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - brcm,bcm2712-pispbe
+      - const: raspberrypi,pispbe
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  iommus:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        isp@880000  {
+             compatible = "brcm,bcm2712-pispbe", "raspberrypi,pispbe";
+             reg = <0x10 0x00880000 0x0 0x4000>;
+             interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+             clocks = <&firmware_clocks 7>;
+             iommus = <&iommu2>;
+        };
+    };
index 7bbe580c80f7c0a839a32ab2b6fab9b0ef620890..dedc5a4b81ecb08d3554ea9aace0cc54b9e9aa71 100644 (file)
@@ -103,6 +103,7 @@ properties:
       - rc-msi-digivox-iii
       - rc-msi-tvanywhere
       - rc-msi-tvanywhere-plus
+      - rc-mygica-utv3
       - rc-nebula
       - rc-nec-terratec-cinergy-xs
       - rc-norwood
index 1e72b8808d2485b7d560cee06d09ee2447e84e1d..bc1245127025effc09b4a748cb98258f35755818 100644 (file)
@@ -19,6 +19,7 @@ properties:
   compatible:
     items:
       - enum:
+          - renesas,r9a07g043-cru       # RZ/G2UL
           - renesas,r9a07g044-cru       # RZ/G2{L,LC}
           - renesas,r9a07g054-cru       # RZ/V2L
       - const: renesas,rzg2l-cru
@@ -87,10 +88,6 @@ properties:
           Input port node, describing the Image Processing module connected to the
           CSI-2 receiver.
 
-    required:
-      - port@0
-      - port@1
-
 required:
   - compatible
   - reg
@@ -102,6 +99,36 @@ required:
   - reset-names
   - power-domains
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,r9a07g044-cru
+              - renesas,r9a07g054-cru
+    then:
+      properties:
+        ports:
+          required:
+            - port@0
+            - port@1
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,r9a07g043-cru
+    then:
+      properties:
+        ports:
+          properties:
+            port@0: false
+
+          required:
+            - port@1
+
 additionalProperties: false
 
 examples:
index 67eea2ac1d22697a68657408515bfc38fecf6db7..7faa12fecd5bb5da4dd8044b9b35735dbbf6b398 100644 (file)
@@ -19,6 +19,7 @@ properties:
   compatible:
     items:
       - enum:
+          - renesas,r9a07g043-csi2       # RZ/G2UL
           - renesas,r9a07g044-csi2       # RZ/G2{L,LC}
           - renesas,r9a07g054-csi2       # RZ/V2L
       - const: renesas,rzg2l-csi2
index ea234222240864ecfb74f6d320cef9135edcc6dc..ac17cda65191be047fc61d0c806f806c6af07c7b 100644 (file)
@@ -24,6 +24,7 @@ properties:
           - enum:
               - rockchip,rk3228-rga
               - rockchip,rk3568-rga
+              - rockchip,rk3588-rga
           - const: rockchip,rk3288-rga
 
   reg:
index 3be1db30bf41ddd90e0c575a0835cde7b3acaa38..d1c3421bee107b27b2fa740c8a0784e9dba12e37 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: FSL/NXP Integrated Flash Controller
 
 maintainers:
-  - Li Yang <leoyang.li@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
 
 description: |
   NXP's integrated flash controller (IFC) is an advanced version of the
index 71547eee991997fcf923184069fd9c232b6a21e3..5447f1dddedf85184ed5a80c477b6daeae6aa256 100644 (file)
@@ -7,7 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale Multi Mode DDR controller (MMDC)
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+  - Fabio Estevam <festevam@gmail.com>
 
 properties:
   compatible:
diff --git a/Bindings/mfd/marvell,88pm886-a1.yaml b/Bindings/mfd/marvell,88pm886-a1.yaml
new file mode 100644 (file)
index 0000000..d6a71c9
--- /dev/null
@@ -0,0 +1,76 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/marvell,88pm886-a1.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Marvell 88PM886 PMIC core
+
+maintainers:
+  - Karel Balej <balejk@matfyz.cz>
+
+description:
+  Marvell 88PM886 is a PMIC providing several functions such as onkey,
+  regulators or battery and charger.
+
+properties:
+  compatible:
+    const: marvell,88pm886-a1
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  wakeup-source: true
+
+  regulators:
+    type: object
+    additionalProperties: false
+    patternProperties:
+      "^(ldo(1[0-6]|[1-9])|buck[1-5])$":
+        type: object
+        $ref: /schemas/regulator/regulator.yaml#
+        description: LDO or buck regulator.
+        unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+      pmic@30 {
+        compatible = "marvell,88pm886-a1";
+        reg = <0x30>;
+        interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-parent = <&gic>;
+        wakeup-source;
+
+        regulators {
+          ldo2: ldo2 {
+            regulator-min-microvolt = <3100000>;
+            regulator-max-microvolt = <3300000>;
+          };
+
+          ldo15: ldo15 {
+            regulator-min-microvolt = <3300000>;
+            regulator-max-microvolt = <3300000>;
+          };
+
+          buck2: buck2 {
+            regulator-min-microvolt = <1800000>;
+            regulator-max-microvolt = <1800000>;
+          };
+        };
+      };
+    };
+...
index c8c4812fffe26381acc0ed957114ff4aa66d78d8..768390b92682765499ffb5c06b561eb650b241d9 100644 (file)
@@ -22,8 +22,10 @@ properties:
           - mediatek,mt8173-scpsys
           - mediatek,mt8183-scpsys
           - mediatek,mt8186-scpsys
+          - mediatek,mt8188-scpsys
           - mediatek,mt8192-scpsys
           - mediatek,mt8195-scpsys
+          - mediatek,mt8365-scpsys
       - const: syscon
       - const: simple-mfd
 
index 336c0495c8a3a21bb33758b4cff3d1d600a9a133..b938fa26d2ce3d6d7bbcb19459082638b9ba138e 100644 (file)
@@ -17,13 +17,14 @@ A typical MFD can be:
 
 Optional properties:
 
-- compatible : "simple-mfd" - this signifies that the operating system should
-  consider all subnodes of the MFD device as separate devices akin to how
-  "simple-bus" indicates when to see subnodes as children for a simple
-  memory-mapped bus. For more complex devices, when the nexus driver has to
-  probe registers to figure out what child devices exist etc, this should not
-  be used. In the latter case the child devices will be determined by the
-  operating system.
+- compatible : "simple-mfd" - this signifies that the operating system
+  should consider all subnodes of the MFD device as separate and independent
+  devices, so not needing any resources to be provided by the parent device.
+  Similarly to how "simple-bus" indicates when to see subnodes as children for
+  a simple memory-mapped bus.
+  For more complex devices, when the nexus driver has to probe registers to
+  figure out what child devices exist etc, this should not be used. In the
+  latter case the child devices will be determined by the operating system.
 
 - ranges: Describes the address mapping relationship to the parent. Should set
   the child's base address to 0, the physical address within parent's address
index 0c75d8bde5688217bdd6d2483e23a56ff77b9b6c..0c6e1870db1dc571af668c37655017cefe82e139 100644 (file)
@@ -19,110 +19,136 @@ properties:
     const: qcom,pm8008
 
   reg:
-    description:
-      I2C slave address.
-
     maxItems: 1
 
   interrupts:
     maxItems: 1
 
-    description: Parent interrupt.
+  reset-gpios:
+    maxItems: 1
+
+  vdd-l1-l2-supply: true
+  vdd-l3-l4-supply: true
+  vdd-l5-supply: true
+  vdd-l6-supply: true
+  vdd-l7-supply: true
 
-  "#interrupt-cells":
+  gpio-controller: true
+
+  "#gpio-cells":
     const: 2
 
-    description: |
-      The first cell is the IRQ number, the second cell is the IRQ trigger
-      flag. All interrupts are listed in include/dt-bindings/mfd/qcom-pm8008.h.
+  gpio-ranges:
+    maxItems: 1
 
   interrupt-controller: true
 
-  "#address-cells":
-    const: 1
+  "#interrupt-cells":
+    const: 2
 
-  "#size-cells":
+  "#thermal-sensor-cells":
     const: 0
 
-patternProperties:
-  "^gpio@[0-9a-f]+$":
+  pinctrl:
     type: object
+    additionalProperties: false
+    patternProperties:
+      "-state$":
+        type: object
 
-    description: |
-      The GPIO peripheral. This node may be specified twice, one for each GPIO.
-
-    properties:
-      compatible:
-        items:
-          - const: qcom,pm8008-gpio
-          - const: qcom,spmi-gpio
-
-      reg:
-        description: Peripheral address of one of the two GPIO peripherals.
-        maxItems: 1
-
-      gpio-controller: true
-
-      gpio-ranges:
-        maxItems: 1
+        allOf:
+          - $ref: /schemas/pinctrl/pinmux-node.yaml
+          - $ref: /schemas/pinctrl/pincfg-node.yaml
 
-      interrupt-controller: true
+        properties:
+          pins:
+            items:
+              pattern: "^gpio[12]$"
 
-      "#interrupt-cells":
-        const: 2
+          function:
+            items:
+              - enum:
+                  - normal
 
-      "#gpio-cells":
-        const: 2
+        required:
+          - pins
+          - function
 
-    required:
-      - compatible
-      - reg
-      - gpio-controller
-      - interrupt-controller
-      - "#gpio-cells"
-      - gpio-ranges
-      - "#interrupt-cells"
+        additionalProperties: false
 
+  regulators:
+    type: object
     additionalProperties: false
+    patternProperties:
+      "^ldo[1-7]$":
+        type: object
+        $ref: /schemas/regulator/regulator.yaml#
+        unevaluatedProperties: false
 
 required:
   - compatible
   - reg
   - interrupts
-  - "#address-cells"
-  - "#size-cells"
+  - vdd-l1-l2-supply
+  - vdd-l3-l4-supply
+  - vdd-l5-supply
+  - vdd-l6-supply
+  - vdd-l7-supply
+  - gpio-controller
+  - "#gpio-cells"
+  - gpio-ranges
+  - interrupt-controller
   - "#interrupt-cells"
+  - "#thermal-sensor-cells"
 
 additionalProperties: false
 
 examples:
   - |
-    #include <dt-bindings/mfd/qcom-pm8008.h>
+    #include <dt-bindings/gpio/gpio.h>
     #include <dt-bindings/interrupt-controller/irq.h>
 
     i2c {
       #address-cells = <1>;
       #size-cells = <0>;
 
-      pmic@8 {
+      pm8008: pmic@8 {
         compatible = "qcom,pm8008";
         reg = <0x8>;
-        #address-cells = <1>;
-        #size-cells = <0>;
-        interrupt-controller;
-        #interrupt-cells = <2>;
 
         interrupt-parent = <&tlmm>;
         interrupts = <32 IRQ_TYPE_EDGE_RISING>;
 
-        pm8008_gpios: gpio@c000 {
-          compatible = "qcom,pm8008-gpio", "qcom,spmi-gpio";
-          reg = <0xc000>;
-          gpio-controller;
-          gpio-ranges = <&pm8008_gpios 0 0 2>;
-          #gpio-cells = <2>;
-          interrupt-controller;
-          #interrupt-cells = <2>;
+        reset-gpios = <&tlmm 42 GPIO_ACTIVE_LOW>;
+
+        vdd-l1-l2-supply = <&vreg_s8b_1p2>;
+        vdd-l3-l4-supply = <&vreg_s1b_1p8>;
+        vdd-l5-supply = <&vreg_bob>;
+        vdd-l6-supply = <&vreg_bob>;
+        vdd-l7-supply = <&vreg_bob>;
+
+        gpio-controller;
+        #gpio-cells = <2>;
+        gpio-ranges = <&pm8008 0 0 2>;
+
+        interrupt-controller;
+        #interrupt-cells = <2>;
+
+        #thermal-sensor-cells = <0>;
+
+        pinctrl {
+          gpio-keys-state {
+            pins = "gpio1";
+            function = "normal";
+          };
+        };
+
+        regulators {
+          ldo1 {
+            regulator-name = "vreg_l1";
+            regulator-min-microvolt = <950000>;
+            regulator-max-microvolt = <1300000>;
+          };
         };
       };
     };
index b7f01cbb8fffa0135bd68b4cc3484bea41c123e0..a2b2fbf77d5cb877297df33cdf659449b2a8cf27 100644 (file)
@@ -75,6 +75,7 @@ properties:
           - qcom,pma8084
           - qcom,pmc8180
           - qcom,pmc8180c
+          - qcom,pmc8380
           - qcom,pmd9635
           - qcom,pmi632
           - qcom,pmi8950
@@ -95,6 +96,7 @@ properties:
           - qcom,pmx65
           - qcom,pmx75
           - qcom,smb2351
+          - qcom,smb2360
       - const: qcom,spmi-pmic
 
   reg:
diff --git a/Bindings/mfd/rockchip,rk809.yaml b/Bindings/mfd/rockchip,rk809.yaml
deleted file mode 100644 (file)
index 839c052..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/mfd/rockchip,rk809.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: RK809 Power Management Integrated Circuit
-
-maintainers:
-  - Chris Zhong <zyw@rock-chips.com>
-  - Zhang Qing <zhangqing@rock-chips.com>
-
-description: |
-  Rockchip RK809 series PMIC. This device consists of an i2c controlled MFD
-  that includes regulators, an RTC, and power button.
-
-properties:
-  compatible:
-    enum:
-      - rockchip,rk809
-
-  reg:
-    maxItems: 1
-
-  interrupts:
-    maxItems: 1
-
-  '#clock-cells':
-    description: |
-      See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
-    minimum: 0
-    maximum: 1
-
-  clock-output-names:
-    description:
-      From common clock binding to override the default output clock name.
-
-  rockchip,system-power-controller:
-    type: boolean
-    deprecated: true
-    description:
-      Telling whether or not this PMIC is controlling the system power.
-
-  system-power-controller: true
-
-  wakeup-source:
-    type: boolean
-    description:
-      Device can be used as a wakeup source.
-
-  vcc1-supply:
-    description:
-      The input supply for DCDC_REG1.
-
-  vcc2-supply:
-    description:
-      The input supply for DCDC_REG2.
-
-  vcc3-supply:
-    description:
-      The input supply for DCDC_REG3.
-
-  vcc4-supply:
-    description:
-      The input supply for DCDC_REG4.
-
-  vcc5-supply:
-    description:
-      The input supply for LDO_REG1, LDO_REG2, and LDO_REG3.
-
-  vcc6-supply:
-    description:
-      The input supply for LDO_REG4, LDO_REG5, and LDO_REG6.
-
-  vcc7-supply:
-    description:
-      The input supply for LDO_REG7, LDO_REG8, and LDO_REG9.
-
-  vcc8-supply:
-    description:
-      The input supply for SWITCH_REG1.
-
-  vcc9-supply:
-    description:
-      The input supply for DCDC_REG5 and SWITCH_REG2.
-
-  regulators:
-    type: object
-    patternProperties:
-      "^(LDO_REG[1-9]|DCDC_REG[1-5]|SWITCH_REG[1-2])$":
-        type: object
-        $ref: /schemas/regulator/regulator.yaml#
-        unevaluatedProperties: false
-    unevaluatedProperties: false
-
-allOf:
-  - if:
-      properties:
-        '#clock-cells':
-          const: 0
-
-    then:
-      properties:
-        clock-output-names:
-          maxItems: 1
-
-    else:
-      properties:
-        clock-output-names:
-          maxItems: 2
-
-required:
-  - compatible
-  - reg
-  - interrupts
-  - "#clock-cells"
-
-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>;
-
-        rk808: pmic@1b {
-            compatible = "rockchip,rk808";
-            reg = <0x1b>;
-            #clock-cells = <1>;
-            clock-output-names = "xin32k", "rk808-clkout2";
-            interrupt-parent = <&gpio3>;
-            interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
-            pinctrl-names = "default";
-            pinctrl-0 = <&pmic_int_l_pin>;
-            rockchip,system-power-controller;
-            wakeup-source;
-
-            vcc1-supply = <&vcc_sysin>;
-            vcc2-supply = <&vcc_sysin>;
-            vcc3-supply = <&vcc_sysin>;
-            vcc4-supply = <&vcc_sysin>;
-            vcc6-supply = <&vcc_sysin>;
-            vcc7-supply = <&vcc_sysin>;
-            vcc8-supply = <&vcc3v3_sys>;
-            vcc9-supply = <&vcc_sysin>;
-            vcc10-supply = <&vcc_sysin>;
-            vcc11-supply = <&vcc_sysin>;
-            vcc12-supply = <&vcc3v3_sys>;
-
-            regulators {
-                vdd_center: DCDC_REG1 {
-                    regulator-name = "vdd_center";
-                    regulator-always-on;
-                    regulator-boot-on;
-                    regulator-min-microvolt = <750000>;
-                    regulator-max-microvolt = <1350000>;
-                    regulator-ramp-delay = <6001>;
-                    regulator-state-mem {
-                        regulator-off-in-suspend;
-                    };
-                };
-
-                vdd_cpu_l: DCDC_REG2 {
-                    regulator-name = "vdd_cpu_l";
-                    regulator-always-on;
-                    regulator-boot-on;
-                    regulator-min-microvolt = <750000>;
-                    regulator-max-microvolt = <1350000>;
-                    regulator-ramp-delay = <6001>;
-                    regulator-state-mem {
-                        regulator-off-in-suspend;
-                    };
-                };
-
-                vcc_ddr: DCDC_REG3 {
-                    regulator-name = "vcc_ddr";
-                    regulator-always-on;
-                    regulator-boot-on;
-                    regulator-state-mem {
-                        regulator-on-in-suspend;
-                    };
-                };
-
-                vcc_1v8: vcc_wl: DCDC_REG4 {
-                    regulator-name = "vcc_1v8";
-                    regulator-always-on;
-                    regulator-boot-on;
-                    regulator-min-microvolt = <1800000>;
-                    regulator-max-microvolt = <1800000>;
-                    regulator-state-mem {
-                        regulator-on-in-suspend;
-                        regulator-suspend-microvolt = <1800000>;
-                    };
-                };
-
-                vcc1v8_pmupll: LDO_REG3 {
-                    regulator-name = "vcc1v8_pmupll";
-                    regulator-always-on;
-                    regulator-boot-on;
-                    regulator-min-microvolt = <1800000>;
-                    regulator-max-microvolt = <1800000>;
-                    regulator-state-mem {
-                        regulator-on-in-suspend;
-                        regulator-suspend-microvolt = <1800000>;
-                    };
-                };
-
-                vcc_sdio: LDO_REG4 {
-                    regulator-name = "vcc_sdio";
-                    regulator-always-on;
-                    regulator-boot-on;
-                    regulator-min-microvolt = <1800000>;
-                    regulator-max-microvolt = <3000000>;
-                    regulator-state-mem {
-                        regulator-on-in-suspend;
-                        regulator-suspend-microvolt = <3000000>;
-                    };
-                };
-
-                vcca3v0_codec: LDO_REG5 {
-                    regulator-name = "vcca3v0_codec";
-                    regulator-always-on;
-                    regulator-boot-on;
-                    regulator-min-microvolt = <3000000>;
-                    regulator-max-microvolt = <3000000>;
-                    regulator-state-mem {
-                        regulator-off-in-suspend;
-                    };
-                };
-
-                vcc_1v5: LDO_REG6 {
-                    regulator-name = "vcc_1v5";
-                    regulator-always-on;
-                    regulator-boot-on;
-                    regulator-min-microvolt = <1500000>;
-                    regulator-max-microvolt = <1500000>;
-                    regulator-state-mem {
-                        regulator-on-in-suspend;
-                        regulator-suspend-microvolt = <1500000>;
-                    };
-                };
-
-                vcca1v8_codec: LDO_REG7 {
-                    regulator-name = "vcca1v8_codec";
-                    regulator-always-on;
-                    regulator-boot-on;
-                    regulator-min-microvolt = <1800000>;
-                    regulator-max-microvolt = <1800000>;
-                    regulator-state-mem {
-                        regulator-off-in-suspend;
-                    };
-                };
-
-                vcc_3v0: LDO_REG8 {
-                    regulator-name = "vcc_3v0";
-                    regulator-always-on;
-                    regulator-boot-on;
-                    regulator-min-microvolt = <3000000>;
-                    regulator-max-microvolt = <3000000>;
-                    regulator-state-mem {
-                        regulator-on-in-suspend;
-                        regulator-suspend-microvolt = <3000000>;
-                    };
-                };
-
-                vcc3v3_s3: SWITCH_REG1 {
-                    regulator-name = "vcc3v3_s3";
-                    regulator-always-on;
-                    regulator-boot-on;
-                    regulator-state-mem {
-                        regulator-off-in-suspend;
-                    };
-                };
-
-                vcc3v3_s0: SWITCH_REG2 {
-                    regulator-name = "vcc3v3_s0";
-                    regulator-always-on;
-                    regulator-boot-on;
-                    regulator-state-mem {
-                        regulator-off-in-suspend;
-                    };
-                };
-            };
-        };
-    };
index 8c2fd0fabb927ecbc312ea93813ffbd398c5568c..2cb6d176a84cfb4c07a17b6390470b0ddb95bea1 100644 (file)
@@ -4,20 +4,21 @@
 $id: http://devicetree.org/schemas/mfd/rockchip,rk817.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: RK817 Power Management Integrated Circuit
+title: RK809/RK817 Power Management Integrated Circuit
 
 maintainers:
   - Chris Zhong <zyw@rock-chips.com>
   - Zhang Qing <zhangqing@rock-chips.com>
 
 description: |
-  Rockchip RK817 series PMIC. This device consists of an i2c controlled MFD
-  that includes regulators, an RTC, a power button, an audio codec, and a
-  battery charger manager.
+  Rockchip RK809/RK817 series PMIC. This device consists of an i2c controlled
+  MFD that includes regulators, an RTC, a power button and an audio codec.
+  The RK817 variant also provides a battery charger manager.
 
 properties:
   compatible:
     enum:
+      - rockchip,rk809
       - rockchip,rk817
 
   reg:
@@ -32,6 +33,13 @@ properties:
     minimum: 0
     maximum: 1
 
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: mclk
+
   clock-output-names:
     description:
       From common clock binding to override the default output clock name.
@@ -42,6 +50,9 @@ properties:
     description:
       Telling whether or not this PMIC is controlling the system power.
 
+  '#sound-dai-cells':
+    const: 0
+
   system-power-controller: true
 
   wakeup-source:
@@ -79,41 +90,22 @@ properties:
 
   vcc8-supply:
     description:
-      The input supply for BOOST.
+      The input supply for BOOST on RK817, or for SWITCH_REG2 on RK809.
 
   vcc9-supply:
     description:
-      The input supply for OTG_SWITCH.
+      The input supply for OTG_SWITCH on RK817,
+      or for DCDC_REG5 and SWITCH_REG1 on RK809.
 
   regulators:
     type: object
     patternProperties:
-      "^(LDO_REG[1-9]|DCDC_REG[1-4]|BOOST|OTG_SWITCH)$":
-        type: object
+      "^(LDO_REG[1-9]|DCDC_REG[1-5]|BOOST|OTG_SWITCH|SWITCH_REG[1-2])$":
+        $ref: /schemas/regulator/regulator.yaml
         unevaluatedProperties: false
-        $ref: /schemas/regulator/regulator.yaml#
-    unevaluatedProperties: false
-
-  clocks:
-    description:
-      The input clock for the audio codec.
-
-  clock-names:
-    description:
-      The clock name for the codec clock.
-    items:
-      - const: mclk
-
-  '#sound-dai-cells':
-    description:
-      Needed for the interpretation of sound dais.
-    const: 0
+    additionalProperties: false
 
   codec:
-    description: |
-      The child node for the codec to hold additional properties. If no
-      additional properties are required for the codec, this node can be
-      omitted.
     type: object
     additionalProperties: false
     properties:
@@ -123,9 +115,6 @@ properties:
           Describes if the microphone uses differential mode.
 
   charger:
-    description: |
-      The child node for the charger to hold additional properties. If a
-      battery is not in use, this node can be omitted.
     type: object
     $ref: /schemas/power/supply/power-supply.yaml
 
@@ -168,6 +157,7 @@ properties:
     additionalProperties: false
 
 allOf:
+  - $ref: /schemas/sound/dai-common.yaml#
   - if:
       properties:
         '#clock-cells':
@@ -183,6 +173,22 @@ allOf:
         clock-output-names:
           maxItems: 2
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: rockchip,rk817
+    then:
+      properties:
+        regulators:
+          patternProperties:
+            "^(DCDC_REG5|SWITCH_REG[1-2])$": false
+    else:
+      properties:
+        regulators:
+          patternProperties:
+            "^(BOOST|OTG_SWITCH)$": false
+
 required:
   - compatible
   - reg
diff --git a/Bindings/mfd/rohm,bd96801-pmic.yaml b/Bindings/mfd/rohm,bd96801-pmic.yaml
new file mode 100644 (file)
index 0000000..d381125
--- /dev/null
@@ -0,0 +1,173 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/rohm,bd96801-pmic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ROHM BD96801 Scalable Power Management Integrated Circuit
+
+maintainers:
+  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
+
+description:
+  BD96801 is an automotive grade single-chip power management IC.
+  It integrates 4 buck converters and 3 LDOs with safety features like
+  over-/under voltage and over current detection and a watchdog.
+
+properties:
+  compatible:
+    const: rohm,bd96801
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description:
+      The PMIC provides intb and errb IRQ lines. The errb IRQ line is used
+      for fatal IRQs which will cause the PMIC to shut down power outputs.
+      In many systems this will shut down the SoC contolling the PMIC and
+      connecting/handling the errb can be omitted. However, there are cases
+      where the SoC is not powered by the PMIC or has a short time backup
+      energy to handle shutdown of critical hardware. In that case it may be
+      useful to connect the errb and handle errb events.
+    minItems: 1
+    maxItems: 2
+
+  interrupt-names:
+    minItems: 1
+    items:
+      - enum: [intb, errb]
+      - const: errb
+
+  rohm,hw-timeout-ms:
+    description:
+      Watchdog timeout value(s). First walue is timeout limit. Second value is
+      optional value for 'too early' watchdog ping if window timeout mode is
+      to be used.
+    minItems: 1
+    maxItems: 2
+
+  rohm,wdg-action:
+    description:
+      Whether the watchdog failure must turn off the regulator power outputs or
+      just toggle the INTB line.
+    enum:
+      - prstb
+      - intb-only
+
+  timeout-sec:
+    maxItems: 2
+
+  regulators:
+    $ref: /schemas/regulator/rohm,bd96801-regulator.yaml
+    description:
+      List of child nodes that specify the regulators.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - interrupt-names
+  - regulators
+
+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@60 {
+            reg = <0x60>;
+            compatible = "rohm,bd96801";
+            interrupt-parent = <&gpio1>;
+            interrupts = <29 IRQ_TYPE_LEVEL_LOW>, <6 IRQ_TYPE_LEVEL_LOW>;
+            interrupt-names = "intb", "errb";
+
+            regulators {
+                buck1 {
+                    regulator-name = "buck1";
+                    regulator-ramp-delay = <1250>;
+                    /* 0.5V min INITIAL - 150 mV tune */
+                    regulator-min-microvolt = <350000>;
+                    /* 3.3V + 150mV tune */
+                    regulator-max-microvolt = <3450000>;
+
+                    /* These can be set only when PMIC is in STBY */
+                    rohm,initial-voltage-microvolt = <500000>;
+                    regulator-ov-error-microvolt = <230000>;
+                    regulator-uv-error-microvolt = <230000>;
+                    regulator-temp-protection-kelvin = <1>;
+                    regulator-temp-warn-kelvin = <0>;
+                };
+                buck2 {
+                    regulator-name = "buck2";
+                    regulator-min-microvolt = <350000>;
+                    regulator-max-microvolt = <3450000>;
+
+                    rohm,initial-voltage-microvolt = <3000000>;
+                    regulator-ov-error-microvolt = <18000>;
+                    regulator-uv-error-microvolt = <18000>;
+                    regulator-temp-protection-kelvin = <1>;
+                    regulator-temp-warn-kelvin = <1>;
+                };
+                buck3 {
+                    regulator-name = "buck3";
+                    regulator-min-microvolt = <350000>;
+                    regulator-max-microvolt = <3450000>;
+
+                    rohm,initial-voltage-microvolt = <600000>;
+                    regulator-ov-warn-microvolt = <18000>;
+                    regulator-uv-warn-microvolt = <18000>;
+                    regulator-temp-protection-kelvin = <1>;
+                    regulator-temp-error-kelvin = <0>;
+                };
+                buck4 {
+                    regulator-name = "buck4";
+                    regulator-min-microvolt = <350000>;
+                    regulator-max-microvolt = <3450000>;
+
+                    rohm,initial-voltage-microvolt = <600000>;
+                    regulator-ov-warn-microvolt = <18000>;
+                    regulator-uv-warn-microvolt = <18000>;
+                    regulator-temp-protection-kelvin = <1>;
+                    regulator-temp-error-kelvin = <0>;
+                };
+                ldo5 {
+                    regulator-name = "ldo5";
+                    regulator-min-microvolt = <300000>;
+                    regulator-max-microvolt = <3300000>;
+
+                    rohm,initial-voltage-microvolt = <500000>;
+                    regulator-ov-error-microvolt = <36000>;
+                    regulator-uv-error-microvolt = <34000>;
+                    regulator-temp-protection-kelvin = <1>;
+                    regulator-temp-warn-kelvin = <0>;
+                };
+                ldo6 {
+                    regulator-name = "ldo6";
+                    regulator-min-microvolt = <300000>;
+                    regulator-max-microvolt = <3300000>;
+
+                    rohm,initial-voltage-microvolt = <300000>;
+                    regulator-ov-error-microvolt = <36000>;
+                    regulator-uv-error-microvolt = <34000>;
+                    regulator-temp-protection-kelvin = <1>;
+                    regulator-temp-warn-kelvin = <0>;
+                };
+                ldo7 {
+                    regulator-name = "ldo7";
+                    regulator-min-microvolt = <300000>;
+                    regulator-max-microvolt = <3300000>;
+
+                    rohm,initial-voltage-microvolt = <500000>;
+                    regulator-ov-error-microvolt = <36000>;
+                    regulator-uv-error-microvolt = <34000>;
+                    regulator-temp-protection-kelvin = <1>;
+                    regulator-temp-warn-kelvin = <0>;
+                };
+            };
+        };
+    };
diff --git a/Bindings/mfd/syscon-common.yaml b/Bindings/mfd/syscon-common.yaml
new file mode 100644 (file)
index 0000000..451cbad
--- /dev/null
@@ -0,0 +1,71 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/syscon-common.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: System Controller Registers R/W Common Properties
+
+description:
+  System controller node represents a register region containing a set
+  of miscellaneous registers. The registers are not cohesive enough to
+  represent as any specific type of device. The typical use-case is
+  for some other node's driver, or platform-specific code, to acquire
+  a reference to the syscon node (e.g. by phandle, node path, or
+  search using a specific compatible value), interrogate the node (or
+  associated OS driver) to determine the location of the registers,
+  and access the registers directly.
+
+maintainers:
+  - Lee Jones <lee@kernel.org>
+
+select:
+  properties:
+    compatible:
+      contains:
+        const: syscon
+
+  required:
+    - compatible
+
+properties:
+  compatible:
+    contains:
+      const: syscon
+    minItems: 2
+    maxItems: 5  # Should be enough
+
+  reg:
+    maxItems: 1
+
+  reg-io-width:
+    description:
+      The size (in bytes) of the IO accesses that should be performed
+      on the device.
+    enum: [1, 2, 4, 8]
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: simple-mfd
+    then:
+      properties:
+        compatible:
+          minItems: 3
+          maxItems: 5
+
+additionalProperties: true
+
+examples:
+  - |
+    syscon: syscon@1c00000 {
+        compatible = "allwinner,sun8i-h3-system-controller", "syscon";
+        reg = <0x01c00000 0x1000>;
+    };
+...
index 7ed12a938baa3e73298188ec3bb1d6c98dac15a2..9dc594ea365452c3b7005e3ee9a6941d56dded08 100644 (file)
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/mfd/syscon.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: System Controller Registers R/W
+title: System Controller Devices
 
 description: |
   System controller node represents a register region containing a set
@@ -19,121 +19,213 @@ description: |
 maintainers:
   - Lee Jones <lee@kernel.org>
 
+# Need a select with all compatibles listed for compatibility with older
+# dtschema (<2024.02), so this will not be selected for other schemas having
+# syscon fallback.
 select:
   properties:
     compatible:
       contains:
         enum:
-          - syscon
-
+          - al,alpine-sysfabric-servic
+          - allwinner,sun8i-a83t-system-controller
+          - allwinner,sun8i-h3-system-controller
+          - allwinner,sun8i-v3s-system-controller
+          - allwinner,sun50i-a64-system-controller
+          - altr,l3regs
+          - altr,sdr-ctl
+          - amd,pensando-elba-syscon
+          - amlogic,meson-mx-assist
+          - amlogic,meson-mx-bootrom
+          - amlogic,meson8-analog-top
+          - amlogic,meson8b-analog-top
+          - amlogic,meson8-pmu
+          - amlogic,meson8b-pmu
+          - apm,merlin-poweroff-mailbox
+          - apm,mustang-poweroff-mailbox
+          - apm,xgene-csw
+          - apm,xgene-efuse
+          - apm,xgene-mcb
+          - apm,xgene-rb
+          - apm,xgene-scu
+          - atmel,sama5d2-sfrbu
+          - atmel,sama5d3-nfc-io
+          - atmel,sama5d3-sfrbu
+          - atmel,sama5d4-sfrbu
+          - axis,artpec6-syscon
+          - brcm,cru-clkset
+          - brcm,sr-cdru
+          - brcm,sr-mhb
+          - cirrus,ep7209-syscon1
+          - cirrus,ep7209-syscon2
+          - cirrus,ep7209-syscon3
+          - cnxt,cx92755-uc
+          - freecom,fsg-cs2-system-controller
+          - fsl,imx93-aonmix-ns-syscfg
+          - fsl,imx93-wakeupmix-syscfg
+          - fsl,ls1088a-reset
+          - fsl,vf610-anatop
+          - fsl,vf610-mscm-cpucfg
+          - hisilicon,dsa-subctrl
+          - hisilicon,hi6220-sramctrl
+          - hisilicon,hip04-ppe
+          - hisilicon,pcie-sas-subctrl
+          - hisilicon,peri-subctrl
+          - hpe,gxp-sysreg
+          - loongson,ls1b-syscon
+          - loongson,ls1c-syscon
+          - lsi,axxia-syscon
+          - marvell,armada-3700-cpu-misc
+          - marvell,armada-3700-nb-pm
+          - marvell,armada-3700-avs
+          - marvell,armada-3700-usb2-host-misc
+          - marvell,dove-global-config
+          - mediatek,mt2701-pctl-a-syscfg
+          - mediatek,mt2712-pctl-a-syscfg
+          - mediatek,mt6397-pctl-pmic-syscfg
+          - mediatek,mt8135-pctl-a-syscfg
+          - mediatek,mt8135-pctl-b-syscfg
+          - mediatek,mt8173-pctl-a-syscfg
+          - mediatek,mt8365-syscfg
+          - microchip,lan966x-cpu-syscon
+          - microchip,sam9x60-sfr
+          - microchip,sama7g5-ddr3phy
+          - mscc,ocelot-cpu-syscon
+          - mstar,msc313-pmsleep
+          - nuvoton,ma35d1-sys
+          - nuvoton,wpcm450-shm
+          - rockchip,px30-qos
+          - rockchip,rk3036-qos
+          - rockchip,rk3066-qos
+          - rockchip,rk3128-qos
+          - rockchip,rk3228-qos
+          - rockchip,rk3288-qos
+          - rockchip,rk3368-qos
+          - rockchip,rk3399-qos
+          - rockchip,rk3568-qos
+          - rockchip,rk3588-qos
+          - rockchip,rv1126-qos
+          - st,spear1340-misc
+          - stericsson,nomadik-pmu
+          - starfive,jh7100-sysmain
+          - ti,am62-opp-efuse-table
+          - ti,am62-usb-phy-ctrl
+          - ti,am625-dss-oldi-io-ctrl
+          - ti,am62p-cpsw-mac-efuse
+          - ti,am654-dss-oldi-io-ctrl
+          - ti,j784s4-pcie-ctrl
+          - ti,keystone-pllctrl
   required:
     - compatible
 
 properties:
   compatible:
-    anyOf:
-      - items:
-          - enum:
-              - allwinner,sun8i-a83t-system-controller
-              - allwinner,sun8i-h3-system-controller
-              - allwinner,sun8i-v3s-system-controller
-              - allwinner,sun50i-a64-system-controller
-              - altr,sdr-ctl
-              - amd,pensando-elba-syscon
-              - apm,xgene-csw
-              - apm,xgene-efuse
-              - apm,xgene-mcb
-              - apm,xgene-rb
-              - apm,xgene-scu
-              - brcm,cru-clkset
-              - brcm,sr-cdru
-              - brcm,sr-mhb
-              - freecom,fsg-cs2-system-controller
-              - fsl,imx93-aonmix-ns-syscfg
-              - fsl,imx93-wakeupmix-syscfg
-              - fsl,ls1088a-reset
-              - hisilicon,dsa-subctrl
-              - hisilicon,hi6220-sramctrl
-              - hisilicon,pcie-sas-subctrl
-              - hisilicon,peri-subctrl
-              - hpe,gxp-sysreg
-              - intel,lgm-syscon
-              - loongson,ls1b-syscon
-              - loongson,ls1c-syscon
-              - marvell,armada-3700-cpu-misc
-              - marvell,armada-3700-nb-pm
-              - marvell,armada-3700-avs
-              - marvell,armada-3700-usb2-host-misc
-              - mediatek,mt2712-pctl-a-syscfg
-              - mediatek,mt6397-pctl-pmic-syscfg
-              - mediatek,mt8135-pctl-a-syscfg
-              - mediatek,mt8135-pctl-b-syscfg
-              - mediatek,mt8173-pctl-a-syscfg
-              - mediatek,mt8365-syscfg
-              - microchip,lan966x-cpu-syscon
-              - microchip,sparx5-cpu-syscon
-              - mstar,msc313-pmsleep
-              - nuvoton,ma35d1-sys
-              - nuvoton,wpcm450-shm
-              - rockchip,px30-qos
-              - rockchip,rk3036-qos
-              - rockchip,rk3066-qos
-              - rockchip,rk3128-qos
-              - rockchip,rk3228-qos
-              - rockchip,rk3288-qos
-              - rockchip,rk3368-qos
-              - rockchip,rk3399-qos
-              - rockchip,rk3568-qos
-              - rockchip,rk3588-qos
-              - rockchip,rv1126-qos
-              - starfive,jh7100-sysmain
-              - ti,am62-usb-phy-ctrl
-              - ti,am62p-cpsw-mac-efuse
-              - ti,am654-dss-oldi-io-ctrl
-              - ti,am654-serdes-ctrl
-              - ti,j784s4-pcie-ctrl
-
-          - const: syscon
-
-      - contains:
-          const: syscon
-        minItems: 2
-        maxItems: 5  # Should be enough
+    items:
+      - enum:
+          - al,alpine-sysfabric-service
+          - allwinner,sun8i-a83t-system-controller
+          - allwinner,sun8i-h3-system-controller
+          - allwinner,sun8i-v3s-system-controller
+          - allwinner,sun50i-a64-system-controller
+          - altr,l3regs
+          - altr,sdr-ctl
+          - amd,pensando-elba-syscon
+          - amlogic,meson-mx-assist
+          - amlogic,meson-mx-bootrom
+          - amlogic,meson8-analog-top
+          - amlogic,meson8b-analog-top
+          - amlogic,meson8-pmu
+          - amlogic,meson8b-pmu
+          - apm,merlin-poweroff-mailbox
+          - apm,mustang-poweroff-mailbox
+          - apm,xgene-csw
+          - apm,xgene-efuse
+          - apm,xgene-mcb
+          - apm,xgene-rb
+          - apm,xgene-scu
+          - atmel,sama5d2-sfrbu
+          - atmel,sama5d3-nfc-io
+          - atmel,sama5d3-sfrbu
+          - atmel,sama5d4-sfrbu
+          - axis,artpec6-syscon
+          - brcm,cru-clkset
+          - brcm,sr-cdru
+          - brcm,sr-mhb
+          - cirrus,ep7209-syscon1
+          - cirrus,ep7209-syscon2
+          - cirrus,ep7209-syscon3
+          - cnxt,cx92755-uc
+          - freecom,fsg-cs2-system-controller
+          - fsl,imx93-aonmix-ns-syscfg
+          - fsl,imx93-wakeupmix-syscfg
+          - fsl,ls1088a-reset
+          - fsl,vf610-anatop
+          - fsl,vf610-mscm-cpucfg
+          - hisilicon,dsa-subctrl
+          - hisilicon,hi6220-sramctrl
+          - hisilicon,hip04-ppe
+          - hisilicon,pcie-sas-subctrl
+          - hisilicon,peri-subctrl
+          - hpe,gxp-sysreg
+          - loongson,ls1b-syscon
+          - loongson,ls1c-syscon
+          - lsi,axxia-syscon
+          - marvell,armada-3700-cpu-misc
+          - marvell,armada-3700-nb-pm
+          - marvell,armada-3700-avs
+          - marvell,armada-3700-usb2-host-misc
+          - marvell,dove-global-config
+          - mediatek,mt2701-pctl-a-syscfg
+          - mediatek,mt2712-pctl-a-syscfg
+          - mediatek,mt6397-pctl-pmic-syscfg
+          - mediatek,mt8135-pctl-a-syscfg
+          - mediatek,mt8135-pctl-b-syscfg
+          - mediatek,mt8173-pctl-a-syscfg
+          - mediatek,mt8365-syscfg
+          - microchip,lan966x-cpu-syscon
+          - microchip,sam9x60-sfr
+          - microchip,sama7g5-ddr3phy
+          - mscc,ocelot-cpu-syscon
+          - mstar,msc313-pmsleep
+          - nuvoton,ma35d1-sys
+          - nuvoton,wpcm450-shm
+          - rockchip,px30-qos
+          - rockchip,rk3036-qos
+          - rockchip,rk3066-qos
+          - rockchip,rk3128-qos
+          - rockchip,rk3228-qos
+          - rockchip,rk3288-qos
+          - rockchip,rk3368-qos
+          - rockchip,rk3399-qos
+          - rockchip,rk3568-qos
+          - rockchip,rk3588-qos
+          - rockchip,rv1126-qos
+          - st,spear1340-misc
+          - stericsson,nomadik-pmu
+          - starfive,jh7100-sysmain
+          - ti,am62-opp-efuse-table
+          - ti,am62-usb-phy-ctrl
+          - ti,am625-dss-oldi-io-ctrl
+          - ti,am62p-cpsw-mac-efuse
+          - ti,am654-dss-oldi-io-ctrl
+          - ti,j784s4-pcie-ctrl
+          - ti,keystone-pllctrl
+      - const: syscon
 
   reg:
     maxItems: 1
 
-  reg-io-width:
-    description: |
-      The size (in bytes) of the IO accesses that should be performed
-      on the device.
-    enum: [1, 2, 4, 8]
-
   resets:
     maxItems: 1
 
-  hwlocks:
-    maxItems: 1
-    description:
-      Reference to a phandle of a hardware spinlock provider node.
-
 required:
   - compatible
   - reg
 
 allOf:
-  - if:
-      properties:
-        compatible:
-          contains:
-            const: simple-mfd
-    then:
-      properties:
-        compatible:
-          minItems: 3
-          maxItems: 5
+  - $ref: syscon-common.yaml#
 
-additionalProperties: true
+unevaluatedProperties: false
 
 examples:
   - |
index c2357fecb56ccd5e0fb0fd0832572f30f29ba63e..e94b0fd7af0f85cf8de0439e11bfcdd4f98f798a 100644 (file)
@@ -22,6 +22,32 @@ allOf:
           contains:
             const: ti,twl4030
     then:
+      patternProperties:
+        "^regulator-":
+          properties:
+            compatible:
+              enum:
+                - ti,twl4030-vaux1
+                - ti,twl4030-vaux2
+                - ti,twl4030-vaux3
+                - ti,twl4030-vaux4
+                - ti,twl4030-vmmc1
+                - ti,twl4030-vmmc2
+                - ti,twl4030-vpll1
+                - ti,twl4030-vpll2
+                - ti,twl4030-vsim
+                - ti,twl4030-vdac
+                - ti,twl4030-vintana2
+                - ti,twl4030-vio
+                - ti,twl4030-vdd1
+                - ti,twl4030-vdd2
+                - ti,twl4030-vintana1
+                - ti,twl4030-vintdig
+                - ti,twl4030-vusb1v5
+                - ti,twl4030-vusb1v8
+                - ti,twl4030-vusb3v1
+            ti,retain-on-reset: false
+
       properties:
         madc:
           type: object
@@ -50,13 +76,34 @@ allOf:
           properties:
             compatible:
               const: ti,twl4030-wdt
-
   - if:
       properties:
         compatible:
           contains:
             const: ti,twl6030
     then:
+      patternProperties:
+        "^regulator-":
+          properties:
+            compatible:
+              enum:
+                - ti,twl6030-vaux1
+                - ti,twl6030-vaux2
+                - ti,twl6030-vaux3
+                - ti,twl6030-vmmc
+                - ti,twl6030-vpp
+                - ti,twl6030-vusim
+                - ti,twl6030-vana
+                - ti,twl6030-vcxio
+                - ti,twl6030-vdac
+                - ti,twl6030-vusb
+                - ti,twl6030-v1v8
+                - ti,twl6030-v2v1
+                - ti,twl6030-vdd1
+                - ti,twl6030-vdd2
+                - ti,twl6030-vdd3
+            regulator-initial-mode: false
+
       properties:
         gpadc:
           type: object
@@ -69,6 +116,25 @@ allOf:
           contains:
             const: ti,twl6032
     then:
+      patternProperties:
+        "^regulator-":
+          properties:
+            compatible:
+              enum:
+                - ti,twl6032-ldo1
+                - ti,twl6032-ldo2
+                - ti,twl6032-ldo3
+                - ti,twl6032-ldo4
+                - ti,twl6032-ldo5
+                - ti,twl6032-ldo6
+                - ti,twl6032-ldo7
+                - ti,twl6032-ldoln
+                - ti,twl6032-ldousb
+                - ti,twl6032-smps3
+                - ti,twl6032-smps4
+                - ti,twl6032-vio
+            regulator-initial-mode: false
+
       properties:
         gpadc:
           type: object
@@ -112,6 +178,27 @@ properties:
       interrupts:
         maxItems: 1
 
+patternProperties:
+  "^regulator-":
+    type: object
+    unevaluatedProperties: false
+    $ref: /schemas/regulator/regulator.yaml
+    properties:
+      compatible: true
+      regulator-initial-mode:
+        enum:
+          - 0x08 # Sleep mode, the nominal output voltage is maintained
+                 # with low power consumption with low load current capability
+          - 0x0e # Active mode, the regulator can deliver its nominal output
+                 # voltage with full-load current capability
+      ti,retain-on-reset:
+        description:
+          Does not turn off the supplies during warm
+          reset. Could be needed for VMMC, as TWL6030
+          reset sequence for this signal does not comply
+          with the SD specification.
+        type: boolean
+
 unevaluatedProperties: false
 
 required:
@@ -131,9 +218,85 @@ examples:
         compatible = "ti,twl6030";
         reg = <0x48>;
         interrupts = <39>; /* IRQ_SYS_1N cascaded to gic */
+        interrupt-parent = <&gic>;
         interrupt-controller;
         #interrupt-cells = <1>;
-        interrupt-parent = <&gic>;
+
+        gpadc {
+          compatible = "ti,twl6030-gpadc";
+          interrupts = <6>;
+          #io-channel-cells = <1>;
+        };
+
+        rtc {
+          compatible = "ti,twl4030-rtc";
+          interrupts = <8>;
+        };
+
+        regulator-vaux1 {
+          compatible = "ti,twl6030-vaux1";
+          regulator-min-microvolt = <1000000>;
+          regulator-max-microvolt = <3000000>;
+        };
+
+        regulator-vmmc1 {
+          compatible = "ti,twl6030-vmmc";
+          ti,retain-on-reset;
+        };
       };
     };
 
+  - |
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      pmic@48 {
+        compatible = "ti,twl4030";
+        reg = <0x48>;
+        interrupts = <7>; /* SYS_NIRQ cascaded to intc */
+        interrupt-parent = <&intc>;
+        interrupt-controller;
+        #interrupt-cells = <1>;
+
+        bci {
+          compatible = "ti,twl4030-bci";
+          interrupts = <9>, <2>;
+          bci3v1-supply = <&vusb3v1>;
+          io-channels = <&twl_madc 11>;
+          io-channel-names = "vac";
+        };
+
+        twl_madc: madc {
+          compatible = "ti,twl4030-madc";
+          interrupts = <3>;
+          #io-channel-cells = <1>;
+        };
+
+        pwrbutton {
+          compatible = "ti,twl4030-pwrbutton";
+          interrupts = <8>;
+        };
+
+        rtc {
+          compatible = "ti,twl4030-rtc";
+          interrupts = <11>;
+        };
+
+        regulator-vaux1 {
+          compatible = "ti,twl4030-vaux1";
+          regulator-min-microvolt = <1000000>;
+          regulator-max-microvolt = <3000000>;
+          regulator-initial-mode = <0xe>;
+        };
+
+        vusb3v1: regulator-vusb3v1 {
+          compatible = "ti,twl4030-vusb3v1";
+        };
+
+        watchdog {
+          compatible = "ti,twl4030-wdt";
+        };
+      };
+    };
+...
index 975945ca28881689cc691497a59cf8d2fa875465..0cc634482a6a8337d6551433029a8721e7be66a4 100644 (file)
@@ -55,6 +55,16 @@ properties:
          under the "cpus" node.
         $ref: /schemas/types.yaml#/definitions/uint32
 
+      brcm,bmips-cbr-reg:
+        description: Reference address of the CBR.
+          Some SoC suffer from a BUG where CBR(Core Base Register)
+          address might be badly or never initialized by the Bootloader
+          or reading it from co-processor registers, if the system boots
+          from secondary CPU, results in invalid address.
+          The CBR address is always the same on the SoC hence it
+          can be provided in DT to handle these broken case.
+        $ref: /schemas/types.yaml#/definitions/uint32
+
     patternProperties:
       "^cpu@[0-9]$":
         type: object
@@ -64,6 +74,20 @@ properties:
     required:
       - mips-hpt-frequency
 
+if:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - brcm,bcm6358
+          - brcm,bcm6368
+
+then:
+  properties:
+    cpus:
+      required:
+        - brcm,bmips-cbr-reg
+
 additionalProperties: true
 
 examples:
index 831975f6b479f6809016297b473c71d0f6194624..d60744550e4661edd84022eb9fc3ce7341892a66 100644 (file)
@@ -26,6 +26,11 @@ properties:
           - enum:
               - mobileye,eyeq5-epm5
           - const: mobileye,eyeq5
+      - description: Boards with Mobileye EyeQ6H SoC
+        items:
+          - enum:
+              - mobileye,eyeq6h-epm6
+          - const: mobileye,eyeq6h
 
 additionalProperties: true
 
index cc916eaeed0a14268190b56d99d2b94bd8000124..e74165696b76ebf433726f8cc961524881ebb6b8 100644 (file)
@@ -25,23 +25,6 @@ Example:
                reg = <0x71070000 0x1c>;
        };
 
-
-o CPU system control:
-
-The SoC has a few registers (ICPU_CFG:CPU_SYSTEM_CTRL) handling configuration of
-the CPU: 8 general purpose registers, reset control, CPU en/disabling, CPU
-endianness, CPU bus control, CPU status.
-
-Required properties:
-- compatible: Should be "mscc,ocelot-cpu-syscon", "syscon"
-- reg : Should contain registers location and length
-
-Example:
-       syscon@70000000 {
-               compatible = "mscc,ocelot-cpu-syscon", "syscon";
-               reg = <0x70000000 0x2c>;
-       };
-
 o HSIO regs:
 
 The SoC has a few registers (HSIO) handling miscellaneous functionalities:
index f8ac309d2994c91240ef390544f5ab173dc1056c..d337655bfbf8e050fbe111cec189a2d88327afcf 100644 (file)
@@ -20,5 +20,9 @@ properties:
           - enum:
               - cisco,sg220-26
           - const: realtek,rtl8382-soc
+      - items:
+          - enum:
+              - cameo,rtl9302c-2x-rtl8224-2xge
+          - const: realtek,rtl9302-soc
 
 additionalProperties: true
diff --git a/Bindings/misc/fsl,qoriq-mc.txt b/Bindings/misc/fsl,qoriq-mc.txt
deleted file mode 100644 (file)
index 7b486d4..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-* Freescale Management Complex
-
-The Freescale Management Complex (fsl-mc) is a hardware resource
-manager that manages specialized hardware objects used in
-network-oriented packet processing applications. After the fsl-mc
-block is enabled, pools of hardware resources are available, such as
-queues, buffer pools, I/O interfaces. These resources are building
-blocks that can be used to create functional hardware objects/devices
-such as network interfaces, crypto accelerator instances, L2 switches,
-etc.
-
-For an overview of the DPAA2 architecture and fsl-mc bus see:
-Documentation/networking/device_drivers/ethernet/freescale/dpaa2/overview.rst
-
-As described in the above overview, all DPAA2 objects in a DPRC share the
-same hardware "isolation context" and a 10-bit value called an ICID
-(isolation context id) is expressed by the hardware to identify
-the requester.
-
-The generic 'iommus' property is insufficient to describe the relationship
-between ICIDs and IOMMUs, so an iommu-map property is used to define
-the set of possible ICIDs under a root DPRC and how they map to
-an IOMMU.
-
-For generic IOMMU bindings, see
-Documentation/devicetree/bindings/iommu/iommu.txt.
-
-For arm-smmu binding, see:
-Documentation/devicetree/bindings/iommu/arm,smmu.yaml.
-
-The MSI writes are accompanied by sideband data which is derived from the ICID.
-The msi-map property is used to associate the devices with both the ITS
-controller and the sideband data which accompanies the writes.
-
-For generic MSI bindings, see
-Documentation/devicetree/bindings/interrupt-controller/msi.txt.
-
-For GICv3 and GIC ITS bindings, see:
-Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml.
-
-Required properties:
-
-    - compatible
-        Value type: <string>
-        Definition: Must be "fsl,qoriq-mc".  A Freescale Management Complex
-                    compatible with this binding must have Block Revision
-                    Registers BRR1 and BRR2 at offset 0x0BF8 and 0x0BFC in
-                    the MC control register region.
-
-    - reg
-        Value type: <prop-encoded-array>
-        Definition: A standard property.  Specifies one or two regions
-                    defining the MC's registers:
-
-                       -the first region is the command portal for the
-                        this machine and must always be present
-
-                       -the second region is the MC control registers. This
-                        region may not be present in some scenarios, such
-                        as in the device tree presented to a virtual machine.
-
-    - ranges
-        Value type: <prop-encoded-array>
-        Definition: A standard property.  Defines the mapping between the child
-                    MC address space and the parent system address space.
-
-                    The MC address space is defined by 3 components:
-                       <region type> <offset hi> <offset lo>
-
-                    Valid values for region type are
-                       0x0 - MC portals
-                       0x1 - QBMAN portals
-
-    - #address-cells
-        Value type: <u32>
-        Definition: Must be 3.  (see definition in 'ranges' property)
-
-    - #size-cells
-        Value type: <u32>
-        Definition: Must be 1.
-
-Sub-nodes:
-
-        The fsl-mc node may optionally have dpmac sub-nodes that describe
-        the relationship between the Ethernet MACs which belong to the MC
-        and the Ethernet PHYs on the system board.
-
-        The dpmac nodes must be under a node named "dpmacs" which contains
-        the following properties:
-
-            - #address-cells
-              Value type: <u32>
-              Definition: Must be present if dpmac sub-nodes are defined and must
-                          have a value of 1.
-
-            - #size-cells
-              Value type: <u32>
-              Definition: Must be present if dpmac sub-nodes are defined and must
-                          have a value of 0.
-
-        These nodes must have the following properties:
-
-            - compatible
-              Value type: <string>
-              Definition: Must be "fsl,qoriq-mc-dpmac".
-
-            - reg
-              Value type: <prop-encoded-array>
-              Definition: Specifies the id of the dpmac.
-
-            - phy-handle
-              Value type: <phandle>
-              Definition: Specifies the phandle to the PHY device node associated
-                          with the this dpmac.
-Optional properties:
-
-- iommu-map: Maps an ICID to an IOMMU and associated iommu-specifier
-  data.
-
-  The property is an arbitrary number of tuples of
-  (icid-base,iommu,iommu-base,length).
-
-  Any ICID i in the interval [icid-base, icid-base + length) is
-  associated with the listed IOMMU, with the iommu-specifier
-  (i - icid-base + iommu-base).
-
-- msi-map: Maps an ICID to a GIC ITS and associated msi-specifier
-  data.
-
-  The property is an arbitrary number of tuples of
-  (icid-base,gic-its,msi-base,length).
-
-  Any ICID in the interval [icid-base, icid-base + length) is
-  associated with the listed GIC ITS, with the msi-specifier
-  (i - icid-base + msi-base).
-
-Deprecated properties:
-
-    - msi-parent
-        Value type: <phandle>
-        Definition: Describes the MSI controller node handling message
-                    interrupts for the MC. When there is no translation
-                    between the ICID and deviceID this property can be used
-                    to describe the MSI controller used by the devices on the
-                    mc-bus.
-                    The use of this property for mc-bus is deprecated. Please
-                    use msi-map.
-
-Example:
-
-        smmu: iommu@5000000 {
-               compatible = "arm,mmu-500";
-               #iommu-cells = <1>;
-               stream-match-mask = <0x7C00>;
-               ...
-        };
-
-        gic: interrupt-controller@6000000 {
-               compatible = "arm,gic-v3";
-               ...
-        }
-        its: gic-its@6020000 {
-               compatible = "arm,gic-v3-its";
-               msi-controller;
-               ...
-        };
-
-        fsl_mc: fsl-mc@80c000000 {
-                compatible = "fsl,qoriq-mc";
-                reg = <0x00000008 0x0c000000 0 0x40>,    /* MC portal base */
-                      <0x00000000 0x08340000 0 0x40000>; /* MC control reg */
-                /* define map for ICIDs 23-64 */
-                iommu-map = <23 &smmu 23 41>;
-                /* define msi map for ICIDs 23-64 */
-                msi-map = <23 &its 23 41>;
-                #address-cells = <3>;
-                #size-cells = <1>;
-
-                /*
-                 * Region type 0x0 - MC portals
-                 * Region type 0x1 - QBMAN portals
-                 */
-                ranges = <0x0 0x0 0x0 0x8 0x0c000000 0x4000000
-                          0x1 0x0 0x0 0x8 0x18000000 0x8000000>;
-
-                dpmacs {
-                    #address-cells = <1>;
-                    #size-cells = <0>;
-
-                    dpmac@1 {
-                        compatible = "fsl,qoriq-mc-dpmac";
-                        reg = <1>;
-                        phy-handle = <&mdio0_phy0>;
-                    }
-                }
-        };
diff --git a/Bindings/misc/fsl,qoriq-mc.yaml b/Bindings/misc/fsl,qoriq-mc.yaml
new file mode 100644 (file)
index 0000000..01b00d8
--- /dev/null
@@ -0,0 +1,187 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/misc/fsl,qoriq-mc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Management Complex
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description: |
+  The Freescale Management Complex (fsl-mc) is a hardware resource
+  manager that manages specialized hardware objects used in
+  network-oriented packet processing applications. After the fsl-mc
+  block is enabled, pools of hardware resources are available, such as
+  queues, buffer pools, I/O interfaces. These resources are building
+  blocks that can be used to create functional hardware objects/devices
+  such as network interfaces, crypto accelerator instances, L2 switches,
+  etc.
+
+  For an overview of the DPAA2 architecture and fsl-mc bus see:
+  Documentation/networking/device_drivers/ethernet/freescale/dpaa2/overview.rst
+
+  As described in the above overview, all DPAA2 objects in a DPRC share the
+  same hardware "isolation context" and a 10-bit value called an ICID
+  (isolation context id) is expressed by the hardware to identify
+  the requester.
+
+  The generic 'iommus' property is insufficient to describe the relationship
+  between ICIDs and IOMMUs, so an iommu-map property is used to define
+  the set of possible ICIDs under a root DPRC and how they map to
+  an IOMMU.
+
+  For generic IOMMU bindings, see
+  Documentation/devicetree/bindings/iommu/iommu.txt.
+
+  For arm-smmu binding, see:
+  Documentation/devicetree/bindings/iommu/arm,smmu.yaml.
+
+  The MSI writes are accompanied by sideband data which is derived from the ICID.
+  The msi-map property is used to associate the devices with both the ITS
+  controller and the sideband data which accompanies the writes.
+
+  For generic MSI bindings, see
+  Documentation/devicetree/bindings/interrupt-controller/msi.txt.
+
+  For GICv3 and GIC ITS bindings, see:
+  Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml.
+
+properties:
+  compatible:
+    enum:
+      - fsl,qoriq-mc
+    description:
+      Must be "fsl,qoriq-mc".  A Freescale Management Complex
+      compatible with this binding must have Block Revision
+      Registers BRR1 and BRR2 at offset 0x0BF8 and 0x0BFC in
+      the MC control register region.
+
+  reg:
+    items:
+      - description:
+          the first region is the command portal for the
+          this machine and must always be present
+
+      - description:
+          the second region is the MC control registers. This
+          region may not be present in some scenarios, such
+          as in the device tree presented to a virtual machine.
+
+  ranges:
+    description: |
+      A standard property.  Defines the mapping between the child
+      MC address space and the parent system address space.
+
+      The MC address space is defined by 3 components:
+        <region type> <offset hi> <offset lo>
+
+      Valid values for region type are
+        0x0 - MC portals
+        0x1 - QBMAN portals
+
+  "#address-cells":
+    const: 3
+
+  "#size-cells":
+    const: 1
+
+  iommu-map:
+    description: |
+      Maps an ICID to an IOMMU and associated iommu-specifier
+      data.
+
+      The property is an arbitrary number of tuples of
+      (icid-base,iommu,iommu-base,length).
+
+      Any ICID i in the interval [icid-base, icid-base + length) is
+      associated with the listed IOMMU, with the iommu-specifier
+      (i - icid-base + iommu-base).
+
+  msi-map:
+    description: |
+      Maps an ICID to a GIC ITS and associated msi-specifier
+      data.
+
+      The property is an arbitrary number of tuples of
+      (icid-base,gic-its,msi-base,length).
+
+      Any ICID in the interval [icid-base, icid-base + length) is
+      associated with the listed GIC ITS, with the msi-specifier
+      (i - icid-base + msi-base).
+
+  msi-parent:
+    deprecated: true
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Describes the MSI controller node handling message
+      interrupts for the MC. When there is no translation
+      between the ICID and deviceID this property can be used
+      to describe the MSI controller used by the devices on the
+      mc-bus.
+      The use of this property for mc-bus is deprecated. Please
+      use msi-map.
+
+  dma-coherent: true
+
+  dpmacs:
+    type: object
+    description:
+      The fsl-mc node may optionally have dpmac sub-nodes that describe
+      the relationship between the Ethernet MACs which belong to the MC
+      and the Ethernet PHYs on the system board.
+
+    properties:
+      "#address-cells":
+        const: 1
+
+      "#size-cells":
+        const: 0
+
+    patternProperties:
+      '^ethernet@[a-f0-9]+$':
+        $ref: /schemas/net/fsl,qoriq-mc-dpmac.yaml
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - ranges
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    fsl-mc@80c000000 {
+        compatible = "fsl,qoriq-mc";
+        reg = <0x0c000000 0x40>,    /* MC portal base */
+              <0x08340000 0x40000>; /* MC control reg */
+        /*
+         * Region type 0x0 - MC portals
+         * Region type 0x1 - QBMAN portals
+         */
+        ranges = <0x0 0x0 0x8 0x0c000000 0x4000000
+                 0x1 0x0 0x8 0x18000000 0x8000000>;
+        
+        /* define map for ICIDs 23-64 */
+        iommu-map = <23 &smmu 23 41>;
+        /* define msi map for ICIDs 23-64 */
+        msi-map = <23 &its 23 41>;
+        #address-cells = <3>;
+        #size-cells = <1>;
+
+        dpmacs {
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            ethernet@1 {
+                compatible = "fsl,qoriq-mc-dpmac";
+                reg = <1>;
+                phy-handle = <&mdio0_phy0>;
+            };
+        };
+    };
index 1aebeb696ee0d68ea8bcf3cbd2039fcd2637801b..e12d80be00cda40b783b3e6443e3ad09fb1d6ffb 100644 (file)
@@ -29,6 +29,9 @@ properties:
       Defaults to 10 if unset.
     default: 10
 
+  interrupts:
+    maxItems: 1
+
   timeout-sec:
     description: |
       The stall detector expiration timeout measured in seconds.
@@ -43,9 +46,12 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
     vmwdt@9030000 {
       compatible = "qemu,vcpu-stall-detector";
       reg = <0x9030000 0x10000>;
       clock-frequency = <10>;
       timeout-sec = <8>;
+      interrupts = <GIC_PPI 15 IRQ_TYPE_EDGE_RISING>;
     };
index bc403ae9e5d9fbb4bd596eab92ceb53efd6bc292..57646575a13f8de40b5259d383299a4c56467145 100644 (file)
@@ -51,6 +51,9 @@ properties:
       set when controller's internal DMA engine cannot access the DRAM memory,
       like on the G12A dedicated SDIO controller.
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
index cbd3d6c6c77f8105b742a0d36ac293f8d8edce25..eee6be7a786752de7211e4c75ab553e367bb76ce 100644 (file)
@@ -20,6 +20,7 @@ properties:
           - const: brcm,sdhci-brcmstb
       - items:
           - enum:
+              - brcm,bcm2712-sdhci
               - brcm,bcm74165b0-sdhci
               - brcm,bcm7445-sdhci
               - brcm,bcm7425-sdhci
diff --git a/Bindings/mmc/fsl,esdhc.yaml b/Bindings/mmc/fsl,esdhc.yaml
new file mode 100644 (file)
index 0000000..b86ffb5
--- /dev/null
@@ -0,0 +1,105 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mmc/fsl,esdhc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Enhanced Secure Digital Host Controller (eSDHC)
+
+description:
+  The Enhanced Secure Digital Host Controller provides an interface
+  for MMC, SD, and SDIO types of memory cards.
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - fsl,mpc8536-esdhc
+          - fsl,mpc8378-esdhc
+          - fsl,p2020-esdhc
+          - fsl,p4080-esdhc
+          - fsl,t1040-esdhc
+          - fsl,t4240-esdhc
+          - fsl,ls1012a-esdhc
+          - fsl,ls1028a-esdhc
+          - fsl,ls1088a-esdhc
+          - fsl,ls1043a-esdhc
+          - fsl,ls1046a-esdhc
+          - fsl,ls2080a-esdhc
+      - const: fsl,esdhc
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-frequency:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: specifies eSDHC base clock frequency.
+
+  sdhci,wp-inverted:
+    $ref: /schemas/types.yaml#/definitions/flag
+    deprecated: true
+    description:
+      specifies that eSDHC controller reports
+      inverted write-protect state; New devices should use the generic
+      "wp-inverted" property.
+
+  sdhci,1-bit-only:
+    $ref: /schemas/types.yaml#/definitions/flag
+    deprecated: true
+    description:
+      specifies that a controller can only handle
+      1-bit data transfers. New devices should use the generic
+      "bus-width = <1>" property.
+
+  sdhci,auto-cmd12:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      specifies that a controller can only handle auto CMD12.
+
+  voltage-ranges:
+    $ref: /schemas/types.yaml#/definitions/uint32-matrix
+    items:
+      items:
+        - description: specifies minimum slot voltage (mV).
+        - description: specifies maximum slot voltage (mV).
+    minItems: 1
+    maxItems: 8
+
+  dma-coherent: true
+
+  little-endian:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      If the host controller is little-endian mode, specify
+      this property. The default endian mode is big-endian.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+allOf:
+  - $ref: sdhci-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    mmc@2e000 {
+        compatible = "fsl,mpc8378-esdhc", "fsl,esdhc";
+        reg = <0x2e000 0x1000>;
+        interrupts = <42 0x8>;
+        interrupt-parent = <&ipic>;
+        /* Filled in by U-Boot */
+        clock-frequency = <100000000>;
+        voltage-ranges = <3300 3300>;
+    };
diff --git a/Bindings/mmc/fsl-esdhc.txt b/Bindings/mmc/fsl-esdhc.txt
deleted file mode 100644 (file)
index edb8cad..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-* Freescale Enhanced Secure Digital Host Controller (eSDHC)
-
-The Enhanced Secure Digital Host Controller provides an interface
-for MMC, SD, and SDIO types of memory cards.
-
-This file documents differences between the core properties described
-by mmc.txt and the properties used by the sdhci-esdhc driver.
-
-Required properties:
-  - compatible : should be "fsl,esdhc", or "fsl,<chip>-esdhc".
-    Possible compatibles for PowerPC:
-       "fsl,mpc8536-esdhc"
-       "fsl,mpc8378-esdhc"
-       "fsl,p2020-esdhc"
-       "fsl,p4080-esdhc"
-       "fsl,t1040-esdhc"
-       "fsl,t4240-esdhc"
-    Possible compatibles for ARM:
-       "fsl,ls1012a-esdhc"
-       "fsl,ls1028a-esdhc"
-       "fsl,ls1088a-esdhc"
-       "fsl,ls1043a-esdhc"
-       "fsl,ls1046a-esdhc"
-       "fsl,ls2080a-esdhc"
-  - clock-frequency : specifies eSDHC base clock frequency.
-
-Optional properties:
-  - sdhci,wp-inverted : specifies that eSDHC controller reports
-    inverted write-protect state; New devices should use the generic
-    "wp-inverted" property.
-  - sdhci,1-bit-only : specifies that a controller can only handle
-    1-bit data transfers. New devices should use the generic
-    "bus-width = <1>" property.
-  - sdhci,auto-cmd12: specifies that a controller can only handle auto
-    CMD12.
-  - voltage-ranges : two cells are required, first cell specifies minimum
-    slot voltage (mV), second cell specifies maximum slot voltage (mV).
-    Several ranges could be specified.
-  - little-endian : If the host controller is little-endian mode, specify
-    this property. The default endian mode is big-endian.
-
-Example:
-
-sdhci@2e000 {
-       compatible = "fsl,mpc8378-esdhc", "fsl,esdhc";
-       reg = <0x2e000 0x1000>;
-       interrupts = <42 0x8>;
-       interrupt-parent = <&ipic>;
-       /* Filled in by U-Boot */
-       clock-frequency = <0>;
-       voltage-ranges = <3300 3300>;
-};
index 36acc40c7d1815aeef2402f559216e5563382b90..6e2cdac6a85dae76a039a1a675a4fae4de094362 100644 (file)
@@ -27,17 +27,19 @@ properties:
     maxItems: 1
 
   voltage-ranges:
-    $ref: /schemas/types.yaml#/definitions/uint32-array
+    $ref: /schemas/types.yaml#/definitions/uint32-matrix
     description: |
       Two cells are required, first cell specifies minimum slot voltage (mV),
       second cell specifies maximum slot voltage (mV).
     items:
-      - description: |
-          value for minimum slot voltage in mV
-        default: 3200
-      - description: |
-          value for maximum slot voltage in mV
-        default: 3400
+      items:
+        - description: |
+            value for minimum slot voltage in mV
+          default: 3200
+        - description: |
+            value for maximum slot voltage in mV
+          default: 3400
+    maxItems: 1
 
   gpios:
     description: |
index c24c537f62b13f876b5468f0371be12b44012337..11979b026d211050270d018c03fa73c107e7c10f 100644 (file)
@@ -51,6 +51,7 @@ properties:
               - qcom,sdm845-sdhci
               - qcom,sdx55-sdhci
               - qcom,sdx65-sdhci
+              - qcom,sdx75-sdhci
               - qcom,sm6115-sdhci
               - qcom,sm6125-sdhci
               - qcom,sm6350-sdhci
diff --git a/Bindings/mmc/sdhci-sprd.txt b/Bindings/mmc/sdhci-sprd.txt
deleted file mode 100644 (file)
index eb7eb1b..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-* Spreadtrum SDHCI controller (sdhci-sprd)
-
-The Secure Digital (SD) Host controller on Spreadtrum SoCs provides an interface
-for MMC, SD and SDIO types of cards.
-
-This file documents differences between the core properties in mmc.txt
-and the properties used by the sdhci-sprd driver.
-
-Required properties:
-- compatible: Should contain "sprd,sdhci-r11".
-- reg: physical base address of the controller and length.
-- interrupts: Interrupts used by the SDHCI controller.
-- clocks: Should contain phandle for the clock feeding the SDHCI controller
-- clock-names: Should contain the following:
-       "sdio" - SDIO source clock (required)
-       "enable" - gate clock which used for enabling/disabling the device (required)
-       "2x_enable" - gate clock controlling the device for some special platforms (optional)
-
-Optional properties:
-- assigned-clocks: the same with "sdio" clock
-- assigned-clock-parents: the default parent of "sdio" clock
-- pinctrl-names: should be "default", "state_uhs"
-- pinctrl-0: should contain default/high speed pin control
-- pinctrl-1: should contain uhs mode pin control
-
-PHY DLL delays are used to delay the data valid window, and align the window
-to sampling clock. PHY DLL delays can be configured by following properties,
-and each property contains 4 cells which are used to configure the clock data
-write line delay value, clock read command line delay value, clock read data
-positive edge delay value and clock read data negative edge delay value.
-Each cell's delay value unit is cycle of the PHY clock.
-
-- sprd,phy-delay-legacy: Delay value for legacy timing.
-- sprd,phy-delay-sd-highspeed: Delay value for SD high-speed timing.
-- sprd,phy-delay-sd-uhs-sdr50: Delay value for SD UHS SDR50 timing.
-- sprd,phy-delay-sd-uhs-sdr104: Delay value for SD UHS SDR50 timing.
-- sprd,phy-delay-mmc-highspeed: Delay value for MMC high-speed timing.
-- sprd,phy-delay-mmc-ddr52: Delay value for MMC DDR52 timing.
-- sprd,phy-delay-mmc-hs200: Delay value for MMC HS200 timing.
-- sprd,phy-delay-mmc-hs400: Delay value for MMC HS400 timing.
-- sprd,phy-delay-mmc-hs400es: Delay value for MMC HS400 enhanced strobe timing.
-
-Examples:
-
-sdio0: sdio@20600000 {
-       compatible  = "sprd,sdhci-r11";
-       reg = <0 0x20600000 0 0x1000>;
-       interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
-
-       clock-names = "sdio", "enable";
-       clocks = <&ap_clk CLK_EMMC_2X>,
-                <&apahb_gate CLK_EMMC_EB>;
-       assigned-clocks = <&ap_clk CLK_EMMC_2X>;
-       assigned-clock-parents = <&rpll CLK_RPLL_390M>;
-
-       pinctrl-names = "default", "state_uhs";
-       pinctrl-0 = <&sd0_pins_default>;
-       pinctrl-1 = <&sd0_pins_uhs>;
-
-       sprd,phy-delay-sd-uhs-sdr104 = <0x3f 0x7f 0x2e 0x2e>;
-       bus-width = <8>;
-       non-removable;
-       no-sdio;
-       no-sd;
-       cap-mmc-hw-reset;
-       status = "okay";
-};
diff --git a/Bindings/mmc/sprd,sdhci-r11.yaml b/Bindings/mmc/sprd,sdhci-r11.yaml
new file mode 100644 (file)
index 0000000..b08081b
--- /dev/null
@@ -0,0 +1,112 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mmc/sprd,sdhci-r11.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Spreadtrum SDHCI controller
+
+maintainers:
+  - Orson Zhai <orsonzhai@gmail.com>
+  - Baolin Wang <baolin.wang7@gmail.com>
+  - Chunyan Zhang <zhang.lyra@gmail.com>
+
+properties:
+  compatible:
+    const: sprd,sdhci-r11
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    minItems: 2
+    items:
+      - description: SDIO source clock
+      - description: gate clock for enabling/disabling the device
+      - description: gate clock controlling the device for some special platforms (optional)
+
+  clock-names:
+    minItems: 2
+    items:
+      - const: sdio
+      - const: enable
+      - const: 2x_enable
+
+  pinctrl-0:
+    description: default/high speed pin control
+    maxItems: 1
+
+  pinctrl-1:
+    description: UHS mode pin control
+    maxItems: 1
+
+  pinctrl-names:
+    minItems: 1
+    items:
+      - const: default
+      - const: state_uhs
+
+patternProperties:
+  "^sprd,phy-delay-(legacy|mmc-(ddr52|highspeed|hs[24]00|hs400es)|sd-(highspeed|uhs-sdr(50|104)))$":
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    items:
+      - description: clock data write line delay value
+      - description: clock read command line delay value
+      - description: clock read data positive edge delay value
+      - description: clock read data negative edge delay value
+    description:
+      PHY DLL delays are used to delay the data valid window, and align
+      the window to the sampling clock. Each cell's delay value unit is
+      cycle of the PHY clock.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - clock-names
+
+allOf:
+  - $ref: sdhci-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/sprd,sc9860-clk.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    mmc@50430000 {
+      compatible = "sprd,sdhci-r11";
+      reg = <0x50430000 0x1000>;
+      interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+
+      clocks = <&aon_prediv CLK_EMMC_2X>,
+               <&apahb_gate CLK_EMMC_EB>,
+               <&aon_gate CLK_EMMC_2X_EN>;
+      clock-names = "sdio", "enable", "2x_enable";
+
+      pinctrl-0 = <&sd0_pins_default>;
+      pinctrl-1 = <&sd0_pins_uhs>;
+      pinctrl-names = "default", "state_uhs";
+
+      bus-width = <8>;
+      cap-mmc-hw-reset;
+      mmc-hs400-enhanced-strobe;
+      mmc-hs400-1_8v;
+      mmc-hs200-1_8v;
+      mmc-ddr-1_8v;
+      non-removable;
+      no-sdio;
+      no-sd;
+
+      sprd,phy-delay-mmc-ddr52 = <0x3f 0x75 0x14 0x14>;
+      sprd,phy-delay-mmc-hs200 = <0x0 0x8c 0x8c 0x8c>;
+      sprd,phy-delay-mmc-hs400 = <0x44 0x7f 0x2e 0x2e>;
+      sprd,phy-delay-mmc-hs400es = <0x3f 0x3f 0x2e 0x2e>;
+    };
+...
index 57b6957c84152c563124929605c60bc04f45ae9d..284f0f882c32df05b327e1052dc62650d1f74d2d 100644 (file)
@@ -64,11 +64,29 @@ patternProperties:
         items:
           maximum: 0
 
+      amlogic,boot-pages:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description:
+          Number of pages starting from offset 0, where a special ECC
+          configuration must be used because it is accessed by the ROM
+          code. This ECC configuration uses 384 bytes data blocks.
+          Also scrambling mode is enabled for such pages.
+
+      amlogic,boot-page-step:
+        $ref: /schemas/types.yaml#/definitions/uint32
+        description:
+          Interval between pages, accessed by the ROM code. For example
+          we have 8 pages [0, 7]. Pages 0,2,4,6 are accessed by the
+          ROM code, so this field will be 2 (e.g. every 2nd page). Rest
+          of pages - 1,3,5,7 are read/written without this mode.
+
     unevaluatedProperties: false
 
     dependencies:
       nand-ecc-strength: [nand-ecc-step-size]
       nand-ecc-step-size: [nand-ecc-strength]
+      amlogic,boot-pages: [nand-is-boot-medium, "amlogic,boot-page-step"]
+      amlogic,boot-page-step: [nand-is-boot-medium, "amlogic,boot-pages"]
 
 
 required:
index 4598930851d94d77d26a828a04aed29ee7327c5a..e36c35b17873281a3be78d720acef647a5c5abd9 100644 (file)
@@ -60,15 +60,6 @@ Required properties:
 - reg: should contain 2 register ranges. The first one is pointing to the PMECC
        block, and the second one to the PMECC_ERRLOC block.
 
-* SAMA5 NFC I/O bindings:
-
-SAMA5 SoCs embed an advanced NAND controller logic to automate READ/WRITE page
-operations. This interface to this logic is placed in a separate I/O range and
-should thus have its own DT node.
-
-- compatible: should be "atmel,sama5d3-nfc-io", "syscon".
-- reg: should contain the I/O range used to interact with the NFC logic.
-
 Example:
 
        nfc_io: nfc-io@70000000 {
index 021c0da0b072ff6c4d71eb58a7319103d59597a8..f9eb1868ca1f4e56c20e6f023e9ed9e52371c9c5 100644 (file)
@@ -24,6 +24,7 @@ properties:
           - fsl,imx6q-gpmi-nand
           - fsl,imx6sx-gpmi-nand
           - fsl,imx7d-gpmi-nand
+          - fsl,imx8qxp-gpmi-nand
       - items:
           - enum:
               - fsl,imx8mm-gpmi-nand
@@ -151,6 +152,27 @@ allOf:
             - const: gpmi_io
             - const: gpmi_bch_apb
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx8qxp-gpmi-nand
+    then:
+      properties:
+        clocks:
+          items:
+            - description: SoC gpmi io clock
+            - description: SoC gpmi apb clock
+            - description: SoC gpmi bch clock
+            - description: SoC gpmi bch apb clock
+        clock-names:
+          items:
+            - const: gpmi_io
+            - const: gpmi_apb
+            - const: gpmi_bch
+            - const: gpmi_bch_apb
+
 examples:
   - |
     nand-controller@8000c000 {
index 4ada60fbf81de40070f4f92838b4dcb4b200a928..35b4206ea9183bc1a254251d551e3bde88ae8658 100644 (file)
@@ -31,6 +31,18 @@ properties:
       - const: core
       - const: aon
 
+  qcom,cmd-crci:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Must contain the ADM command type CRCI block instance number specified for
+      the NAND controller on the given platform
+
+  qcom,data-crci:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Must contain the ADM data type CRCI block instance number specified for
+      the NAND controller on the given platform
+
 patternProperties:
   "^nand@[a-f0-9]$":
     type: object
@@ -83,18 +95,6 @@ allOf:
           items:
             - const: rxtx
 
-        qcom,cmd-crci:
-          $ref: /schemas/types.yaml#/definitions/uint32
-          description:
-            Must contain the ADM command type CRCI block instance number
-            specified for the NAND controller on the given platform
-
-        qcom,data-crci:
-          $ref: /schemas/types.yaml#/definitions/uint32
-          description:
-            Must contain the ADM data type CRCI block instance number
-            specified for the NAND controller on the given platform
-
   - if:
       properties:
         compatible:
@@ -119,19 +119,9 @@ allOf:
             - const: rx
             - const: cmd
 
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - qcom,ipq806x-nand
+        qcom,cmd-crci: false
+        qcom,data-crci: false
 
-    then:
-      patternProperties:
-        "^nand@[a-f0-9]$":
-          properties:
-            qcom,boot-partitions: true
-    else:
       patternProperties:
         "^nand@[a-f0-9]$":
           properties:
diff --git a/Bindings/net/airoha,en7581-eth.yaml b/Bindings/net/airoha,en7581-eth.yaml
new file mode 100644 (file)
index 0000000..c578637
--- /dev/null
@@ -0,0 +1,143 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/airoha,en7581-eth.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Airoha EN7581 Frame Engine Ethernet controller
+
+maintainers:
+  - Lorenzo Bianconi <lorenzo@kernel.org>
+
+description:
+  The frame engine ethernet controller can be found on Airoha SoCs.
+  These SoCs have multi-GMAC ports.
+
+properties:
+  compatible:
+    enum:
+      - airoha,en7581-eth
+
+  reg:
+    items:
+      - description: Frame engine base address
+      - description: QDMA0 base address
+      - description: QDMA1 base address
+
+  reg-names:
+    items:
+      - const: fe
+      - const: qdma0
+      - const: qdma1
+
+  interrupts:
+    items:
+      - description: QDMA lan irq0
+      - description: QDMA lan irq1
+      - description: QDMA lan irq2
+      - description: QDMA lan irq3
+      - description: QDMA wan irq0
+      - description: QDMA wan irq1
+      - description: QDMA wan irq2
+      - description: QDMA wan irq3
+      - description: FE error irq
+      - description: PDMA irq
+
+  resets:
+    maxItems: 8
+
+  reset-names:
+    items:
+      - const: fe
+      - const: pdma
+      - const: qdma
+      - const: xsi-mac
+      - const: hsi0-mac
+      - const: hsi1-mac
+      - const: hsi-mac
+      - const: xfp-mac
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^ethernet@[1-4]$":
+    type: object
+    unevaluatedProperties: false
+    $ref: ethernet-controller.yaml#
+    description:
+      Ethernet GMAC port associated to the MAC controller
+    properties:
+      compatible:
+        const: airoha,eth-mac
+
+      reg:
+        minimum: 1
+        maximum: 4
+        description: GMAC port identifier
+
+    required:
+      - reg
+      - compatible
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - resets
+  - reset-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/clock/en7523-clk.h>
+
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      eth: ethernet@1fb50000 {
+        compatible = "airoha,en7581-eth";
+        reg = <0 0x1fb50000 0 0x2600>,
+              <0 0x1fb54000 0 0x2000>,
+              <0 0x1fb56000 0 0x2000>;
+        reg-names = "fe", "qdma0", "qdma1";
+
+        resets = <&scuclk 44>,
+                 <&scuclk 30>,
+                 <&scuclk 31>,
+                 <&scuclk 6>,
+                 <&scuclk 15>,
+                 <&scuclk 16>,
+                 <&scuclk 17>,
+                 <&scuclk 26>;
+        reset-names = "fe", "pdma", "qdma", "xsi-mac",
+                      "hsi0-mac", "hsi1-mac", "hsi-mac",
+                      "xfp-mac";
+
+        interrupts = <GIC_SPI 37 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 38 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        mac: ethernet@1 {
+          compatible = "airoha,eth-mac";
+          reg = <1>;
+        };
+      };
+    };
diff --git a/Bindings/net/arc_emac.txt b/Bindings/net/arc_emac.txt
deleted file mode 100644 (file)
index c73a0e9..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-* Synopsys ARC EMAC 10/100 Ethernet driver (EMAC)
-
-Required properties:
-- compatible: Should be "snps,arc-emac"
-- reg: Address and length of the register set for the device
-- interrupts: Should contain the EMAC interrupts
-- max-speed: see ethernet.txt file in the same directory.
-- phy: see ethernet.txt file in the same directory.
-
-Optional properties:
-- phy-reset-gpios : Should specify the gpio for phy reset
-- phy-reset-duration : Reset duration in milliseconds.  Should present
-  only if property "phy-reset-gpios" is available.  Missing the property
-  will have the duration be 1 millisecond.  Numbers greater than 1000 are
-  invalid and 1 millisecond will be used instead.
-
-Clock handling:
-The clock frequency is needed to calculate and set polling period of EMAC.
-It must be provided by one of:
-- clock-frequency: CPU frequency.
-- clocks: reference to the clock supplying the EMAC.
-
-Child nodes of the driver are the individual PHY devices connected to the
-MDIO bus. They must have a "reg" property given the PHY address on the MDIO bus.
-
-Examples:
-
-       ethernet@c0fc2000 {
-               compatible = "snps,arc-emac";
-               reg = <0xc0fc2000 0x3c>;
-               interrupts = <6>;
-               mac-address = [ 00 11 22 33 44 55 ];
-
-               clock-frequency = <80000000>;
-               /* or */
-               clocks = <&emac_clock>;
-
-               max-speed = <100>;
-               phy = <&phy0>;
-
-               #address-cells = <1>;
-               #size-cells = <0>;
-               phy0: ethernet-phy@0 {
-                       reg = <1>;
-               };
-       };
diff --git a/Bindings/net/bluetooth/mediatek,mt7622-bluetooth.yaml b/Bindings/net/bluetooth/mediatek,mt7622-bluetooth.yaml
new file mode 100644 (file)
index 0000000..3f9e692
--- /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/net/bluetooth/mediatek,mt7622-bluetooth.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek SoC built-in Bluetooth
+
+description:
+  This device is a serial attached device to BTIF device and thus it must be a
+  child node of the serial node with BTIF. The dt-bindings details for BTIF
+  device can be known via Documentation/devicetree/bindings/serial/8250.yaml.
+
+maintainers:
+  - Sean Wang <sean.wang@mediatek.com>
+
+allOf:
+  - $ref: bluetooth-controller.yaml#
+
+properties:
+  compatible:
+    const: mediatek,mt7622-bluetooth
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: ref
+
+  power-domains:
+    maxItems: 1
+
+required:
+  - clocks
+  - clock-names
+  - power-domains
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/power/mt7622-power.h>
+
+    serial {
+        bluetooth {
+            compatible = "mediatek,mt7622-bluetooth";
+            power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>;
+            clocks = <&clk25m>;
+            clock-names = "ref";
+        };
+    };
index f01a3988538c74daeacd74a8735d57228d46cec5..37a65badb448a16c33ce8e1ade0233187383b0e5 100644 (file)
@@ -31,6 +31,9 @@ properties:
       This property depends on the module vendor's
       configuration.
 
+  firmware-name:
+    maxItems: 1
+
 required:
   - compatible
 
@@ -42,5 +45,6 @@ examples:
         bluetooth {
             compatible = "nxp,88w8987-bt";
             fw-init-baudrate = <3000000>;
+            firmware-name = "uartuart8987_bt_v0.bin";
         };
     };
index 055a3351880bc16d0df6e0f8636ea3f1a47360a4..68c5ed1114178c7b21897ffdafbe8c1df58c0bdd 100644 (file)
@@ -62,6 +62,9 @@ properties:
   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
 
@@ -74,6 +77,9 @@ properties:
   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
 
@@ -86,6 +92,12 @@ properties:
   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:
     description: see Documentation/devicetree/bindings/serial/serial.yaml
 
@@ -176,14 +188,27 @@ allOf:
               - qcom,wcn7850-bt
     then:
       required:
-        - enable-gpios
-        - swctrl-gpios
-        - vddio-supply
+        - 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
-        - vdddig-supply
+        - vddbtcmx-supply
         - vddrfa0p8-supply
         - vddrfa1p2-supply
-        - vddrfa1p9-supply
+        - vddrfa1p7-supply
 
 examples:
   - |
index 8d4e5af6fd6c84ed02728d0267bf0da4ecb0b4b7..40835497050a5effd191a956b41cea7b33ce36a4 100644 (file)
@@ -5,7 +5,7 @@ $id: http://devicetree.org/schemas/net/can/xilinx,can.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title:
-  Xilinx Axi CAN/Zynq CANPS controller
+  Xilinx CAN and CANFD controller
 
 maintainers:
   - Appana Durga Kedareswara rao <appana.durga.rao@xilinx.com>
index 2c71e2cf3a2fd2ed0318fe9f5cfed4fca861e4e6..3c30dd23cd4efa17e14b17bfb41c54de4ebadcaa 100644 (file)
@@ -146,6 +146,7 @@ patternProperties:
 
       magic-packet:
         type: boolean
+        deprecated: true
         description:
           Indicates that the hardware supports waking up via magic packet.
 
diff --git a/Bindings/net/dsa/lantiq,gswip.yaml b/Bindings/net/dsa/lantiq,gswip.yaml
new file mode 100644 (file)
index 0000000..f3154b1
--- /dev/null
@@ -0,0 +1,202 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/dsa/lantiq,gswip.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Lantiq GSWIP Ethernet switches
+
+allOf:
+  - $ref: dsa.yaml#/$defs/ethernet-ports
+
+maintainers:
+  - Hauke Mehrtens <hauke@hauke-m.de>
+
+properties:
+  compatible:
+    enum:
+      - lantiq,xrx200-gswip
+      - lantiq,xrx300-gswip
+      - lantiq,xrx330-gswip
+
+  reg:
+    minItems: 3
+    maxItems: 3
+
+  reg-names:
+    items:
+      - const: switch
+      - const: mdio
+      - const: mii
+
+  mdio:
+    $ref: /schemas/net/mdio.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      compatible:
+        const: lantiq,xrx200-mdio
+
+    required:
+      - compatible
+
+  gphy-fw:
+    type: object
+    properties:
+      '#address-cells':
+        const: 1
+
+      '#size-cells':
+        const: 0
+
+      compatible:
+        items:
+          - enum:
+              - lantiq,xrx200-gphy-fw
+              - lantiq,xrx300-gphy-fw
+              - lantiq,xrx330-gphy-fw
+          - const: lantiq,gphy-fw
+
+      lantiq,rcu:
+        $ref: /schemas/types.yaml#/definitions/phandle
+        description: phandle to the RCU syscon
+
+    patternProperties:
+      "^gphy@[0-9a-f]{1,2}$":
+        type: object
+
+        additionalProperties: false
+
+        properties:
+          reg:
+            minimum: 0
+            maximum: 255
+            description:
+              Offset of the GPHY firmware register in the RCU register range
+
+          resets:
+            items:
+              - description: GPHY reset line
+
+          reset-names:
+            items:
+              - const: gphy
+
+        required:
+          - reg
+
+    required:
+      - compatible
+      - lantiq,rcu
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    switch@e108000 {
+            compatible = "lantiq,xrx200-gswip";
+            reg = <0xe108000 0x3100>,  /* switch */
+                  <0xe10b100 0xd8>,    /* mdio */
+                  <0xe10b1d8 0x130>;   /* mii */
+            dsa,member = <0 0>;
+
+            ports {
+                    #address-cells = <1>;
+                    #size-cells = <0>;
+
+                    port@0 {
+                            reg = <0>;
+                            label = "lan3";
+                            phy-mode = "rgmii";
+                            phy-handle = <&phy0>;
+                    };
+
+                    port@1 {
+                            reg = <1>;
+                            label = "lan4";
+                            phy-mode = "rgmii";
+                            phy-handle = <&phy1>;
+                    };
+
+                    port@2 {
+                            reg = <2>;
+                            label = "lan2";
+                            phy-mode = "internal";
+                            phy-handle = <&phy11>;
+                    };
+
+                    port@4 {
+                            reg = <4>;
+                            label = "lan1";
+                            phy-mode = "internal";
+                            phy-handle = <&phy13>;
+                    };
+
+                    port@5 {
+                            reg = <5>;
+                            label = "wan";
+                            phy-mode = "rgmii";
+                            phy-handle = <&phy5>;
+                    };
+
+                    port@6 {
+                            reg = <0x6>;
+                            phy-mode = "internal";
+                            ethernet = <&eth0>;
+
+                            fixed-link {
+                                    speed = <1000>;
+                                    full-duplex;
+                            };
+                    };
+            };
+
+            mdio {
+                    #address-cells = <1>;
+                    #size-cells = <0>;
+                    compatible = "lantiq,xrx200-mdio";
+
+                    phy0: ethernet-phy@0 {
+                            reg = <0x0>;
+                    };
+                    phy1: ethernet-phy@1 {
+                            reg = <0x1>;
+                    };
+                    phy5: ethernet-phy@5 {
+                            reg = <0x5>;
+                    };
+                    phy11: ethernet-phy@11 {
+                            reg = <0x11>;
+                    };
+                    phy13: ethernet-phy@13 {
+                            reg = <0x13>;
+                    };
+            };
+
+            gphy-fw {
+                    #address-cells = <1>;
+                    #size-cells = <0>;
+                    compatible = "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw";
+                    lantiq,rcu = <&rcu0>;
+
+                    gphy@20 {
+                            reg = <0x20>;
+
+                            resets = <&reset0 31 30>;
+                            reset-names = "gphy";
+                    };
+
+                    gphy@68 {
+                            reg = <0x68>;
+
+                            resets = <&reset0 29 28>;
+                            reset-names = "gphy";
+                    };
+            };
+    };
diff --git a/Bindings/net/dsa/lantiq-gswip.txt b/Bindings/net/dsa/lantiq-gswip.txt
deleted file mode 100644 (file)
index 8bb1eff..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-Lantiq GSWIP Ethernet switches
-==================================
-
-Required properties for GSWIP core:
-
-- compatible   : "lantiq,xrx200-gswip" for the embedded GSWIP in the
-                 xRX200 SoC
-                 "lantiq,xrx300-gswip" for the embedded GSWIP in the
-                 xRX300 SoC
-                 "lantiq,xrx330-gswip" for the embedded GSWIP in the
-                 xRX330 SoC
-- reg          : memory range of the GSWIP core registers
-               : memory range of the GSWIP MDIO registers
-               : memory range of the GSWIP MII registers
-
-See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of
-additional required and optional properties.
-
-
-Required properties for MDIO bus:
-- compatible   : "lantiq,xrx200-mdio" for the MDIO bus inside the GSWIP
-                 core of the xRX200 SoC and the PHYs connected to it.
-
-See Documentation/devicetree/bindings/net/mdio.txt for a list of additional
-required and optional properties.
-
-
-Required properties for GPHY firmware loading:
-- compatible   : "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw"
-                 "lantiq,xrx300-gphy-fw", "lantiq,gphy-fw"
-                 "lantiq,xrx330-gphy-fw", "lantiq,gphy-fw"
-                 for the loading of the firmware into the embedded
-                 GPHY core of the SoC.
-- lantiq,rcu   : reference to the rcu syscon
-
-The GPHY firmware loader has a list of GPHY entries, one for each
-embedded GPHY
-
-- reg          : Offset of the GPHY firmware register in the RCU
-                 register range
-- resets       : list of resets of the embedded GPHY
-- reset-names  : list of names of the resets
-
-Example:
-
-Ethernet switch on the VRX200 SoC:
-
-switch@e108000 {
-       #address-cells = <1>;
-       #size-cells = <0>;
-       compatible = "lantiq,xrx200-gswip";
-       reg = < 0xe108000 0x3100        /* switch */
-               0xe10b100 0xd8          /* mdio */
-               0xe10b1d8 0x130         /* mii */
-               >;
-       dsa,member = <0 0>;
-
-       ports {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               port@0 {
-                       reg = <0>;
-                       label = "lan3";
-                       phy-mode = "rgmii";
-                       phy-handle = <&phy0>;
-               };
-
-               port@1 {
-                       reg = <1>;
-                       label = "lan4";
-                       phy-mode = "rgmii";
-                       phy-handle = <&phy1>;
-               };
-
-               port@2 {
-                       reg = <2>;
-                       label = "lan2";
-                       phy-mode = "internal";
-                       phy-handle = <&phy11>;
-               };
-
-               port@4 {
-                       reg = <4>;
-                       label = "lan1";
-                       phy-mode = "internal";
-                       phy-handle = <&phy13>;
-               };
-
-               port@5 {
-                       reg = <5>;
-                       label = "wan";
-                       phy-mode = "rgmii";
-                       phy-handle = <&phy5>;
-               };
-
-               port@6 {
-                       reg = <0x6>;
-                       ethernet = <&eth0>;
-               };
-       };
-
-       mdio {
-               #address-cells = <1>;
-               #size-cells = <0>;
-               compatible = "lantiq,xrx200-mdio";
-               reg = <0>;
-
-               phy0: ethernet-phy@0 {
-                       reg = <0x0>;
-               };
-               phy1: ethernet-phy@1 {
-                       reg = <0x1>;
-               };
-               phy5: ethernet-phy@5 {
-                       reg = <0x5>;
-               };
-               phy11: ethernet-phy@11 {
-                       reg = <0x11>;
-               };
-               phy13: ethernet-phy@13 {
-                       reg = <0x13>;
-               };
-       };
-
-       gphy-fw {
-               compatible = "lantiq,xrx200-gphy-fw", "lantiq,gphy-fw";
-               lantiq,rcu = <&rcu0>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               gphy@20 {
-                       reg = <0x20>;
-
-                       resets = <&reset0 31 30>;
-                       reset-names = "gphy";
-               };
-
-               gphy@68 {
-                       reg = <0x68>;
-
-                       resets = <&reset0 29 28>;
-                       reset-names = "gphy";
-               };
-       };
-};
index 1c2444121e604a5eaf9e48577266e33a1919d673..7e405ad96eb27cd5398b1c640ad1c74a0bdfd13e 100644 (file)
@@ -22,16 +22,16 @@ description: |
 
   The MT7988 SoC comes with a built-in switch similar to MT7531 as well as four
   Gigabit Ethernet PHYs. The switch registers are directly mapped into the SoC's
-  memory map rather than using MDIO. The switch got an internally connected 10G
+  memory map rather than using MDIO. The switch has an internally connected 10G
   CPU port and 4 user ports connected to the built-in Gigabit Ethernet PHYs.
 
-  MT7530 in MT7620AN, MT7620DA, MT7620DAN and MT7620NN SoCs has got 10/100 PHYs
+  The MT7530 in MT7620AN, MT7620DA, MT7620DAN and MT7620NN SoCs has 10/100 PHYs
   and the switch registers are directly mapped into SoC's memory map rather than
   using MDIO. The DSA driver currently doesn't support MT7620 variants.
 
   There is only the standalone version of MT7531.
 
-  Port 5 on MT7530 has got various ways of configuration:
+  Port 5 on MT7530 supports various configurations:
 
     - Port 5 can be used as a CPU port.
 
diff --git a/Bindings/net/dsa/vitesse,vsc73xx.txt b/Bindings/net/dsa/vitesse,vsc73xx.txt
deleted file mode 100644 (file)
index 258bef4..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-Vitesse VSC73xx Switches
-========================
-
-This defines device tree bindings for the Vitesse VSC73xx switch chips.
-The Vitesse company has been acquired by Microsemi and Microsemi has
-been acquired Microchip but retains this vendor branding.
-
-The currently supported switch chips are:
-Vitesse VSC7385 SparX-G5 5+1-port Integrated Gigabit Ethernet Switch
-Vitesse VSC7388 SparX-G8 8-port Integrated Gigabit Ethernet Switch
-Vitesse VSC7395 SparX-G5e 5+1-port Integrated Gigabit Ethernet Switch
-Vitesse VSC7398 SparX-G8e 8-port Integrated Gigabit Ethernet Switch
-
-This switch could have two different management interface.
-
-If SPI interface is used, the device tree node is an SPI device so it must
-reside inside a SPI bus device tree node, see spi/spi-bus.txt
-
-When the chip is connected to a parallel memory bus and work in memory-mapped
-I/O mode, a platform device is used to represent the vsc73xx. In this case it
-must reside inside a platform bus device tree node.
-
-Required properties:
-
-- compatible: must be exactly one of:
-       "vitesse,vsc7385"
-       "vitesse,vsc7388"
-       "vitesse,vsc7395"
-       "vitesse,vsc7398"
-- gpio-controller: indicates that this switch is also a GPIO controller,
-  see gpio/gpio.txt
-- #gpio-cells: this must be set to <2> and indicates that we are a twocell
-  GPIO controller, see gpio/gpio.txt
-
-Optional properties:
-
-- reset-gpios: a handle to a GPIO line that can issue reset of the chip.
-  It should be tagged as active low.
-
-Required subnodes:
-
-See net/dsa/dsa.txt for a list of additional required and optional properties
-and subnodes of DSA switches.
-
-Examples:
-
-SPI:
-switch@0 {
-       compatible = "vitesse,vsc7395";
-       reg = <0>;
-       /* Specified for 2.5 MHz or below */
-       spi-max-frequency = <2500000>;
-       gpio-controller;
-       #gpio-cells = <2>;
-
-       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@3 {
-                       reg = <3>;
-                       label = "lan4";
-               };
-               vsc: port@6 {
-                       reg = <6>;
-                       ethernet = <&gmac1>;
-                       phy-mode = "rgmii";
-                       fixed-link {
-                               speed = <1000>;
-                               full-duplex;
-                               pause;
-                       };
-               };
-       };
-};
-
-Platform:
-switch@2,0 {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       compatible = "vitesse,vsc7385";
-       reg = <0x2 0x0 0x20000>;
-       reset-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
-
-       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@3 {
-                       reg = <3>;
-                       label = "lan4";
-               };
-               vsc: port@6 {
-                       reg = <6>;
-                       ethernet = <&enet0>;
-                       phy-mode = "rgmii";
-                       fixed-link {
-                               speed = <1000>;
-                               full-duplex;
-                               pause;
-                       };
-               };
-       };
-
-};
diff --git a/Bindings/net/dsa/vitesse,vsc73xx.yaml b/Bindings/net/dsa/vitesse,vsc73xx.yaml
new file mode 100644 (file)
index 0000000..b99d7a6
--- /dev/null
@@ -0,0 +1,162 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/dsa/vitesse,vsc73xx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Vitesse VSC73xx DSA Switches
+
+maintainers:
+  - Linus Walleij <linus.walleij@linaro.org>
+
+description:
+  The Vitesse DSA Switches were produced in the early-to-mid 2000s.
+
+  The Vitesse company has been acquired by Microsemi and Microsemi has
+  been acquired Microchip but the new owner retains this vendor branding.
+
+  The currently supported switch chips are
+  Vitesse VSC7385 SparX-G5 5+1-port Integrated Gigabit Ethernet Switch
+  Vitesse VSC7388 SparX-G8 8-port Integrated Gigabit Ethernet Switch
+  Vitesse VSC7395 SparX-G5e 5+1-port Integrated Gigabit Ethernet Switch
+  Vitesse VSC7398 SparX-G8e 8-port Integrated Gigabit Ethernet Switch
+
+  This switch can use one of two different management interfaces.
+
+  If SPI interface is used, the device tree node is an SPI device so it must
+  reside inside a SPI bus device tree node, see spi/spi-bus.txt
+
+  When the chip is connected to a parallel memory bus and work in memory-mapped
+  I/O mode, a platform device is used to represent the vsc73xx. In this case it
+  must reside inside a platform bus device tree node.
+
+properties:
+  compatible:
+    enum:
+      - vitesse,vsc7385
+      - vitesse,vsc7388
+      - vitesse,vsc7395
+      - vitesse,vsc7398
+
+  reg:
+    maxItems: 1
+
+  gpio-controller: true
+  "#gpio-cells":
+    const: 2
+
+  reset-gpios:
+    description: GPIO to be used to reset the whole device
+    maxItems: 1
+
+allOf:
+  - $ref: dsa.yaml#/$defs/ethernet-ports
+
+# This checks if reg is a chipselect so the device is on an SPI
+# bus, the if-clause will fail if reg is a tuple such as for a
+# platform device.
+if:
+  properties:
+    reg:
+      minimum: 0
+      maximum: 256
+then:
+  $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      ethernet-switch@0 {
+        compatible = "vitesse,vsc7395";
+        reg = <0>;
+        spi-max-frequency = <2500000>;
+        gpio-controller;
+        #gpio-cells = <2>;
+
+        ethernet-ports {
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          ethernet-port@0 {
+            reg = <0>;
+            label = "lan1";
+          };
+          ethernet-port@1 {
+            reg = <1>;
+            label = "lan2";
+          };
+          ethernet-port@2 {
+            reg = <2>;
+            label = "lan3";
+          };
+          ethernet-port@3 {
+            reg = <3>;
+            label = "lan4";
+          };
+          ethernet-port@6 {
+            reg = <6>;
+            ethernet = <&gmac1>;
+            phy-mode = "rgmii";
+            fixed-link {
+              speed = <1000>;
+              full-duplex;
+              pause;
+            };
+          };
+        };
+      };
+    };
+
+    bus {
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      ethernet-switch@10000000 {
+        compatible = "vitesse,vsc7385";
+        reg = <0x10000000 0x20000>;
+        reset-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
+
+        ethernet-ports {
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          ethernet-port@0 {
+            reg = <0>;
+            label = "lan1";
+          };
+          ethernet-port@1 {
+            reg = <1>;
+            label = "lan2";
+          };
+          ethernet-port@2 {
+            reg = <2>;
+            label = "lan3";
+          };
+          ethernet-port@3 {
+            reg = <3>;
+            label = "lan4";
+          };
+          ethernet-port@6 {
+            reg = <6>;
+            ethernet = <&enet0>;
+            phy-mode = "rgmii";
+            fixed-link {
+              speed = <1000>;
+              full-duplex;
+              pause;
+            };
+          };
+        };
+      };
+    };
index b2785b03139f9df9fa54f05f7a56c55a7df6295c..45819b2358002bc75e876eddb4b2ca18017c04bd 100644 (file)
@@ -103,6 +103,7 @@ properties:
       - usxgmii
       - 10gbase-r
       - 25gbase-r
+      - 10g-qxgmii
 
   phy-mode:
     $ref: "#/properties/phy-connection-type"
index 8fb2a6ee7e5b737ab8b323c2a4f35d5ce4f70cd6..d9b62741a2259bd2c10dec78658fbcba0ca6232f 100644 (file)
@@ -93,6 +93,14 @@ properties:
       the turn around line low at end of the control phase of the
       MDIO transaction.
 
+  brr-mode:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      If set, indicates the network cable interface is an alternative one as
+      defined in the BroadR-Reach link mode specification under 1BR-100 and
+      1BR-10 names. The PHY must be configured to operate in BroadR-Reach mode
+      by software.
+
   clocks:
     maxItems: 1
     description:
diff --git a/Bindings/net/fsl,enetc-ierb.yaml b/Bindings/net/fsl,enetc-ierb.yaml
new file mode 100644 (file)
index 0000000..c8a6543
--- /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/net/fsl,enetc-ierb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Integrated Endpoint Register Block
+
+description:
+  The fsl_enetc driver can probe on the Integrated Endpoint Register Block,
+  which preconfigures the FIFO limits for the ENETC ports.
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+  - Vladimir Oltean <vladimir.oltean@nxp.com>
+  - Wei Fang <wei.fang@nxp.com>
+  - Claudiu Manoil <claudiu.manoil@nxp.com>
+
+properties:
+  compatible:
+    enum:
+      - fsl,ls1028a-enetc-ierb
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    endpoint-config@f0800000 {
+        compatible = "fsl,ls1028a-enetc-ierb";
+        reg = <0xf0800000 0x10000>;
+    };
diff --git a/Bindings/net/fsl,enetc-mdio.yaml b/Bindings/net/fsl,enetc-mdio.yaml
new file mode 100644 (file)
index 0000000..c1dd6aa
--- /dev/null
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/fsl,enetc-mdio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ENETC external MDIO PCIe endpoint device
+
+description:
+  NETC provides an external master MDIO interface (EMDIO) for managing external
+  devices (PHYs). EMDIO supports both Clause 22 and 45 protocols. And the EMDIO
+  provides a means for different software modules to share a single set of MDIO
+  signals to access their PHYs.
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+  - Vladimir Oltean <vladimir.oltean@nxp.com>
+  - Wei Fang <wei.fang@nxp.com>
+  - Claudiu Manoil <claudiu.manoil@nxp.com>
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - pci1957,ee01
+      - const: fsl,enetc-mdio
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: mdio.yaml
+  - $ref: /schemas/pci/pci-device.yaml
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    pcie{
+        #address-cells = <3>;
+        #size-cells = <2>;
+
+        mdio@0,3 {
+            compatible = "pci1957,ee01", "fsl,enetc-mdio";
+            reg = <0x000300 0 0 0 0>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            ethernet-phy@2 {
+                reg = <0x2>;
+            };
+        };
+    };
diff --git a/Bindings/net/fsl,enetc.yaml b/Bindings/net/fsl,enetc.yaml
new file mode 100644 (file)
index 0000000..e152c93
--- /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/net/fsl,enetc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: The NIC functionality of NXP NETC
+
+description:
+  The NIC functionality in NETC is known as EtherNET Controller (ENETC). ENETC
+  supports virtualization/isolation based on PCIe Single Root IO Virtualization
+  (SR-IOV), advanced QoS with 8 traffic classes and 4 drop resilience levels,
+  and a full range of TSN standards and NIC offload capabilities
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+  - Vladimir Oltean <vladimir.oltean@nxp.com>
+  - Wei Fang <wei.fang@nxp.com>
+  - Claudiu Manoil <claudiu.manoil@nxp.com>
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - pci1957,e100
+      - const: fsl,enetc
+
+  reg:
+    maxItems: 1
+
+  mdio:
+    $ref: mdio.yaml
+    unevaluatedProperties: false
+    description: Optional child node for ENETC instance, otherwise use NETC EMDIO.
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: /schemas/pci/pci-device.yaml
+  - $ref: ethernet-controller.yaml
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    pcie {
+        #address-cells = <3>;
+        #size-cells = <2>;
+
+        ethernet@0,0 {
+            compatible = "pci1957,e100", "fsl,enetc";
+            reg = <0x000000 0 0 0 0>;
+            phy-handle = <&sgmii_phy0>;
+            phy-connection-type = "sgmii";
+
+            mdio {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                phy@2 {
+                    reg = <0x2>;
+                };
+            };
+        };
+    };
diff --git a/Bindings/net/fsl,fman-mdio.yaml b/Bindings/net/fsl,fman-mdio.yaml
new file mode 100644 (file)
index 0000000..6b2c0aa
--- /dev/null
@@ -0,0 +1,123 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/fsl,fman-mdio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Frame Manager MDIO Device
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description: FMan MDIO Node.
+  The MDIO is a bus to which the PHY devices are connected.
+
+properties:
+  compatible:
+    enum:
+      - fsl,fman-mdio
+      - fsl,fman-xmdio
+      - fsl,fman-memac-mdio
+    description:
+      Must include "fsl,fman-mdio" for 1 Gb/s MDIO from FMan v2.
+      Must include "fsl,fman-xmdio" for 10 Gb/s MDIO from FMan v2.
+      Must include "fsl,fman-memac-mdio" for 1/10 Gb/s MDIO from
+      FMan v3.
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: A reference to the input clock of the controller
+          from which the MDC frequency is derived.
+
+  interrupts:
+    maxItems: 1
+
+  fsl,fman-internal-mdio:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Fman has internal MDIO for internal PCS(Physical
+      Coding Sublayer) PHYs and external MDIO for external PHYs.
+      The settings and programming routines for internal/external
+      MDIO are different. Must be included for internal MDIO.
+
+  fsl,erratum-a009885:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: Indicates the presence of the A009885
+      erratum describing that the contents of MDIO_DATA may
+      become corrupt unless it is read within 16 MDC cycles
+      of MDIO_CFG[BSY] being cleared, when performing an
+      MDIO read operation.
+
+  fsl,erratum-a011043:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Indicates the presence of the A011043 erratum
+      describing that the MDIO_CFG[MDIO_RD_ER] bit may be falsely
+      set when reading internal PCS registers. MDIO reads to
+      internal PCS registers may result in having the
+      MDIO_CFG[MDIO_RD_ER] bit set, even when there is no error and
+      read data (MDIO_DATA[MDIO_DATA]) is correct.
+      Software may get false read error when reading internal
+      PCS registers through MDIO. As a workaround, all internal
+      MDIO accesses should ignore the MDIO_CFG[MDIO_RD_ER] bit.
+
+      For internal PHY device on internal mdio bus, a PHY node should be created.
+      See the definition of the PHY node in booting-without-of.txt for an
+      example of how to define a PHY (Internal PHY has no interrupt line).
+      - For "fsl,fman-mdio" compatible internal mdio bus, the PHY is TBI PHY.
+      - For "fsl,fman-memac-mdio" compatible internal mdio bus, the PHY is PCS PHY.
+        The PCS PHY address should correspond to the value of the appropriate
+        MDEV_PORT.
+
+  little-endian:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      IP block is little-endian mode. The default endian mode is big-endian.
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: mdio.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    mdio@f1000 {
+        compatible = "fsl,fman-xmdio";
+        reg = <0xf1000 0x1000>;
+        interrupts = <101 2 0 0>;
+    };
+
+  - |
+    mdio@e3120 {
+        compatible = "fsl,fman-mdio";
+        reg = <0xe3120 0xee0>;
+        fsl,fman-internal-mdio;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        tbi-phy@8 {
+            reg = <0x8>;
+            device_type = "tbi-phy";
+        };
+    };
+
+  - |
+    mdio@f1000 {
+        compatible = "fsl,fman-memac-mdio";
+        reg = <0xf1000 0x1000>;
+        fsl,fman-internal-mdio;
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pcsphy6: ethernet-phy@0 {
+            reg = <0x0>;
+        };
+    };
+
diff --git a/Bindings/net/fsl,fman-muram.yaml b/Bindings/net/fsl,fman-muram.yaml
new file mode 100644 (file)
index 0000000..aa71acc
--- /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/net/fsl,fman-muram.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Frame Manager MURAM Device
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description: |
+  FMan Internal memory - shared between all the FMan modules.
+  It contains data structures that are common and written to or read by
+  the modules.
+
+  FMan internal memory is split into the following parts:
+    Packet buffering (Tx/Rx FIFOs)
+    Frames internal context
+
+properties:
+  compatible:
+    enum:
+      - fsl,fman-muram
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    muram@0 {
+        compatible = "fsl,fman-muram";
+        reg = <0x0 0x28000>;
+    };
diff --git a/Bindings/net/fsl,fman-port.yaml b/Bindings/net/fsl,fman-port.yaml
new file mode 100644 (file)
index 0000000..9de4453
--- /dev/null
@@ -0,0 +1,75 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/fsl,fman-port.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Frame Manager Port Device
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description: |
+  The Frame Manager (FMan) supports several types of hardware ports:
+    Ethernet receiver (RX)
+    Ethernet transmitter (TX)
+    Offline/Host command (O/H)
+
+properties:
+  compatible:
+    enum:
+      - fsl,fman-v2-port-oh
+      - fsl,fman-v2-port-rx
+      - fsl,fman-v2-port-tx
+      - fsl,fman-v3-port-oh
+      - fsl,fman-v3-port-rx
+      - fsl,fman-v3-port-tx
+
+  cell-index:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Specifies the hardware port id.
+      Each hardware port on the FMan has its own hardware PortID.
+      Super set of all hardware Port IDs available at FMan Reference
+      Manual under "FMan Hardware Ports in Freescale Devices" table.
+
+      Each hardware port is assigned a 4KB, port-specific page in
+      the FMan hardware port memory region (which is part of the
+      FMan memory map). The first 4 KB in the FMan hardware ports
+      memory region is used for what are called common registers.
+      The subsequent 63 4KB pages are allocated to the hardware
+      ports.
+      The page of a specific port is determined by the cell-index.
+
+  reg:
+    items:
+      - description: There is one reg region describing the port
+          configuration registers.
+
+  fsl,fman-10g-port:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: The default port rate is 1G.
+      If this property exists, the port is s 10G port.
+
+  fsl,fman-best-effort-port:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: The default port rate is 1G.
+      Can be defined only if 10G-support is set.
+      This property marks a best-effort 10G port (10G port that
+      may not be capable of line rate).
+
+required:
+  - compatible
+  - reg
+  - cell-index
+
+additionalProperties: false
+
+examples:
+  - |
+    port@a8000 {
+        compatible = "fsl,fman-v2-port-tx";
+        reg = <0xa8000 0x1000>;
+        cell-index = <0x28>;
+    };
+
diff --git a/Bindings/net/fsl,fman.yaml b/Bindings/net/fsl,fman.yaml
new file mode 100644 (file)
index 0000000..9bbf39e
--- /dev/null
@@ -0,0 +1,210 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/fsl,fman.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Frame Manager Device
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description:
+  Due to the fact that the FMan is an aggregation of sub-engines (ports, MACs,
+  etc.) the FMan node will have child nodes for each of them.
+
+properties:
+  compatible:
+    enum:
+      - fsl,fman
+    description:
+      FMan version can be determined via FM_IP_REV_1 register in the
+      FMan block. The offset is 0xc4 from the beginning of the
+      Frame Processing Manager memory map (0xc3000 from the
+      beginning of the FMan node).
+
+  cell-index:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      Specifies the index of the FMan unit.
+
+      The cell-index value may be used by the SoC, to identify the
+      FMan unit in the SoC memory map. In the table below,
+      there's a description of the cell-index use in each SoC:
+
+      - P1023:
+      register[bit]      FMan unit  cell-index
+      ============================================================
+      DEVDISR[1]      1    0
+
+      - P2041, P3041, P4080 P5020, P5040:
+      register[bit]      FMan unit  cell-index
+      ============================================================
+      DCFG_DEVDISR2[6]    1    0
+      DCFG_DEVDISR2[14]    2    1
+        (Second FM available only in P4080 and P5040)
+
+      - B4860, T1040, T2080, T4240:
+      register[bit]      FMan unit  cell-index
+      ============================================================
+      DCFG_CCSR_DEVDISR2[24]    1    0
+      DCFG_CCSR_DEVDISR2[25]    2    1
+        (Second FM available only in T4240)
+
+      DEVDISR, DCFG_DEVDISR2 and DCFG_CCSR_DEVDISR2 are located in
+      the specific SoC "Device Configuration/Pin Control" Memory
+      Map.
+
+  reg:
+    items:
+      - description: BMI configuration registers.
+      - description: QMI configuration registers.
+      - description: DMA configuration registers.
+      - description: FPM configuration registers.
+      - description: FMan controller configuration registers.
+    minItems: 1
+
+  ranges: true
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: fmanclk
+
+  interrupts:
+    items:
+      - description: The first element is associated with the event interrupts.
+      - description: the second element is associated with the error interrupts.
+
+  dma-coherent: true
+
+  ptimer-handle:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: see ptp/fsl,ptp.yaml
+
+  fsl,qman-channel-range:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      Specifies the range of the available dedicated
+      channels in the FMan. The first cell specifies the beginning
+      of the range and the second cell specifies the number of
+      channels
+    items:
+      - description: The first cell specifies the beginning of the range.
+      - description: |
+          The second cell specifies the number of channels.
+          Further information available at:
+          "Work Queue (WQ) Channel Assignments in the QMan" section
+          in DPAA Reference Manual.
+
+  fsl,qman:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: See soc/fsl/qman.txt
+
+  fsl,bman:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: See soc/fsl/bman.txt
+
+  fsl,erratum-a050385:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description: A boolean property. Indicates the presence of the
+      erratum A050385 which indicates that DMA transactions that are
+      split can result in a FMan lock.
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 1
+
+patternProperties:
+  '^muram@[a-f0-9]+$':
+    $ref: fsl,fman-muram.yaml
+
+  '^port@[a-f0-9]+$':
+    $ref: fsl,fman-port.yaml
+
+  '^ethernet@[a-f0-9]+$':
+    $ref: fsl,fman-dtsec.yaml
+
+  '^mdio@[a-f0-9]+$':
+    $ref: fsl,fman-mdio.yaml
+
+  '^phc@[a-f0-9]+$':
+    $ref: /schemas/ptp/fsl,ptp.yaml
+
+required:
+  - compatible
+  - cell-index
+  - reg
+  - ranges
+  - clocks
+  - clock-names
+  - interrupts
+  - fsl,qman-channel-range
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    fman@400000 {
+        compatible = "fsl,fman";
+        reg = <0x400000 0x100000>;
+        ranges = <0 0x400000 0x100000>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+        cell-index = <1>;
+        clocks = <&fman_clk>;
+        clock-names = "fmanclk";
+        interrupts = <96 IRQ_TYPE_EDGE_FALLING>,
+                     <16 IRQ_TYPE_EDGE_FALLING>;
+        fsl,qman-channel-range = <0x40 0xc>;
+
+        muram@0 {
+            compatible = "fsl,fman-muram";
+            reg = <0x0 0x28000>;
+        };
+
+        port@81000 {
+            cell-index = <1>;
+            compatible = "fsl,fman-v2-port-oh";
+            reg = <0x81000 0x1000>;
+        };
+
+        fman1_rx_0x8: port@88000 {
+            cell-index = <0x8>;
+            compatible = "fsl,fman-v2-port-rx";
+            reg = <0x88000 0x1000>;
+        };
+
+        fman1_tx_0x28: port@a8000 {
+            cell-index = <0x28>;
+            compatible = "fsl,fman-v2-port-tx";
+            reg = <0xa8000 0x1000>;
+        };
+
+        ethernet@e0000 {
+            compatible = "fsl,fman-dtsec";
+            cell-index = <0>;
+            reg = <0xe0000 0x1000>;
+            ptp-timer = <&ptp_timer>;
+            fsl,fman-ports = <&fman1_rx_0x8 &fman1_tx_0x28>;
+            tbi-handle = <&tbi5>;
+        };
+
+        ptp_timer: phc@fe000 {
+            compatible = "fsl,fman-ptp-timer";
+            reg = <0xfe000 0x1000>;
+            interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
+        };
+
+        mdio@f1000 {
+            compatible = "fsl,fman-xmdio";
+            reg = <0xf1000 0x1000>;
+            interrupts = <101 IRQ_TYPE_EDGE_FALLING>;
+        };
+    };
index a1b71b35319e70f0b1a12a4c84fa1d95c7b08d76..42f9843d1868ac1177589e396527847e4b04e567 100644 (file)
@@ -38,6 +38,10 @@ properties:
 
   managed: true
 
+  phys:
+    description: A reference to the SerDes lane(s)
+    maxItems: 1
+
 required:
   - reg
 
diff --git a/Bindings/net/fsl-enetc.txt b/Bindings/net/fsl-enetc.txt
deleted file mode 100644 (file)
index 9b9a3f1..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-* ENETC ethernet device tree bindings
-
-Depending on board design and ENETC port type (internal or
-external) there are two supported link modes specified by
-below device tree bindings.
-
-Required properties:
-
-- reg          : Specifies PCIe Device Number and Function
-                 Number of the ENETC endpoint device, according
-                 to parent node bindings.
-- compatible   : Should be "fsl,enetc".
-
-1. The ENETC external port is connected to a MDIO configurable phy
-
-1.1. Using the local ENETC Port MDIO interface
-
-In this case, the ENETC node should include a "mdio" sub-node
-that in turn should contain the "ethernet-phy" node describing the
-external phy.  Below properties are required, their bindings
-already defined in Documentation/devicetree/bindings/net/ethernet.txt or
-Documentation/devicetree/bindings/net/phy.txt.
-
-Required:
-
-- phy-handle           : Phandle to a PHY on the MDIO bus.
-                         Defined in ethernet.txt.
-
-- phy-connection-type  : Defined in ethernet.txt.
-
-- mdio                 : "mdio" node, defined in mdio.txt.
-
-- ethernet-phy         : "ethernet-phy" node, defined in phy.txt.
-
-Example:
-
-       ethernet@0,0 {
-               compatible = "fsl,enetc";
-               reg = <0x000000 0 0 0 0>;
-               phy-handle = <&sgmii_phy0>;
-               phy-connection-type = "sgmii";
-
-               mdio {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       sgmii_phy0: ethernet-phy@2 {
-                               reg = <0x2>;
-                       };
-               };
-       };
-
-1.2. Using the central MDIO PCIe endpoint device
-
-In this case, the mdio node should be defined as another PCIe
-endpoint node, at the same level with the ENETC port nodes.
-
-Required properties:
-
-- reg          : Specifies PCIe Device Number and Function
-                 Number of the ENETC endpoint device, according
-                 to parent node bindings.
-- compatible   : Should be "fsl,enetc-mdio".
-
-The remaining required mdio bus properties are standard, their bindings
-already defined in Documentation/devicetree/bindings/net/mdio.txt.
-
-Example:
-
-       ethernet@0,0 {
-               compatible = "fsl,enetc";
-               reg = <0x000000 0 0 0 0>;
-               phy-handle = <&sgmii_phy0>;
-               phy-connection-type = "sgmii";
-       };
-
-       mdio@0,3 {
-               compatible = "fsl,enetc-mdio";
-               reg = <0x000300 0 0 0 0>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               sgmii_phy0: ethernet-phy@2 {
-                       reg = <0x2>;
-               };
-       };
-
-2. The ENETC port is an internal port or has a fixed-link external
-connection
-
-In this case, the ENETC port node defines a fixed link connection,
-as specified by Documentation/devicetree/bindings/net/fixed-link.txt.
-
-Required:
-
-- fixed-link   : "fixed-link" node, defined in "fixed-link.txt".
-
-Example:
-       ethernet@0,2 {
-               compatible = "fsl,enetc";
-               reg = <0x000200 0 0 0 0>;
-               fixed-link {
-                       speed = <1000>;
-                       full-duplex;
-               };
-       };
-
-* Integrated Endpoint Register Block bindings
-
-Optionally, the fsl_enetc driver can probe on the Integrated Endpoint Register
-Block, which preconfigures the FIFO limits for the ENETC ports. This is a node
-with the following properties:
-
-- reg          : Specifies the address in the SoC memory space.
-- compatible   : Must be "fsl,ls1028a-enetc-ierb".
-
-Example:
-       ierb@1f0800000 {
-               compatible = "fsl,ls1028a-enetc-ierb";
-               reg = <0x01 0xf0800000 0x0 0x10000>;
-       };
diff --git a/Bindings/net/fsl-fman.txt b/Bindings/net/fsl-fman.txt
deleted file mode 100644 (file)
index bda4b41..0000000
+++ /dev/null
@@ -1,548 +0,0 @@
-=============================================================================
-Freescale Frame Manager Device Bindings
-
-CONTENTS
-  - FMan Node
-  - FMan Port Node
-  - FMan MURAM Node
-  - FMan dTSEC/XGEC/mEMAC Node
-  - FMan IEEE 1588 Node
-  - FMan MDIO Node
-  - Example
-
-=============================================================================
-FMan Node
-
-DESCRIPTION
-
-Due to the fact that the FMan is an aggregation of sub-engines (ports, MACs,
-etc.) the FMan node will have child nodes for each of them.
-
-PROPERTIES
-
-- compatible
-               Usage: required
-               Value type: <stringlist>
-               Definition: Must include "fsl,fman"
-               FMan version can be determined via FM_IP_REV_1 register in the
-               FMan block. The offset is 0xc4 from the beginning of the
-               Frame Processing Manager memory map (0xc3000 from the
-               beginning of the FMan node).
-
-- cell-index
-               Usage: required
-               Value type: <u32>
-               Definition: Specifies the index of the FMan unit.
-
-               The cell-index value may be used by the SoC, to identify the
-               FMan unit in the SoC memory map. In the table below,
-               there's a description of the cell-index use in each SoC:
-
-               - P1023:
-               register[bit]                   FMan unit       cell-index
-               ============================================================
-               DEVDISR[1]                      1               0
-
-               - P2041, P3041, P4080 P5020, P5040:
-               register[bit]                   FMan unit       cell-index
-               ============================================================
-               DCFG_DEVDISR2[6]                1               0
-               DCFG_DEVDISR2[14]               2               1
-                       (Second FM available only in P4080 and P5040)
-
-               - B4860, T1040, T2080, T4240:
-               register[bit]                   FMan unit       cell-index
-               ============================================================
-               DCFG_CCSR_DEVDISR2[24]          1               0
-               DCFG_CCSR_DEVDISR2[25]          2               1
-                       (Second FM available only in T4240)
-
-               DEVDISR, DCFG_DEVDISR2 and DCFG_CCSR_DEVDISR2 are located in
-               the specific SoC "Device Configuration/Pin Control" Memory
-               Map.
-
-- reg
-               Usage: required
-               Value type: <prop-encoded-array>
-               Definition: A standard property. Specifies the offset of the
-               following configuration registers:
-               - BMI configuration registers.
-               - QMI configuration registers.
-               - DMA configuration registers.
-               - FPM configuration registers.
-               - FMan controller configuration registers.
-
-- ranges
-               Usage: required
-               Value type: <prop-encoded-array>
-               Definition: A standard property.
-
-- clocks
-               Usage: required
-               Value type: <prop-encoded-array>
-               Definition: phandle for the fman input clock.
-
-- clock-names
-               usage: required
-               Value type: <stringlist>
-               Definition: "fmanclk" for the fman input clock.
-
-- interrupts
-               Usage: required
-               Value type: <prop-encoded-array>
-               Definition: A pair of IRQs are specified in this property.
-               The first element is associated with the event interrupts and
-               the second element is associated with the error interrupts.
-
-- fsl,qman-channel-range
-               Usage: required
-               Value type: <prop-encoded-array>
-               Definition: Specifies the range of the available dedicated
-               channels in the FMan. The first cell specifies the beginning
-               of the range and the second cell specifies the number of
-               channels.
-               Further information available at:
-               "Work Queue (WQ) Channel Assignments in the QMan" section
-               in DPAA Reference Manual.
-
-- fsl,qman
-- fsl,bman
-               Usage: required
-               Definition: See soc/fsl/qman.txt and soc/fsl/bman.txt
-
-- fsl,erratum-a050385
-               Usage: optional
-               Value type: boolean
-               Definition: A boolean property. Indicates the presence of the
-               erratum A050385 which indicates that DMA transactions that are
-               split can result in a FMan lock.
-
-=============================================================================
-FMan MURAM Node
-
-DESCRIPTION
-
-FMan Internal memory - shared between all the FMan modules.
-It contains data structures that are common and written to or read by
-the modules.
-FMan internal memory is split into the following parts:
-       Packet buffering (Tx/Rx FIFOs)
-       Frames internal context
-
-PROPERTIES
-
-- compatible
-               Usage: required
-               Value type: <stringlist>
-               Definition: Must include "fsl,fman-muram"
-
-- ranges
-               Usage: required
-               Value type: <prop-encoded-array>
-               Definition: A standard property.
-               Specifies the multi-user memory offset and the size within
-               the FMan.
-
-EXAMPLE
-
-muram@0 {
-       compatible = "fsl,fman-muram";
-       ranges = <0 0x000000 0x28000>;
-};
-
-=============================================================================
-FMan Port Node
-
-DESCRIPTION
-
-The Frame Manager (FMan) supports several types of hardware ports:
-       Ethernet receiver (RX)
-       Ethernet transmitter (TX)
-       Offline/Host command (O/H)
-
-PROPERTIES
-
-- compatible
-               Usage: required
-               Value type: <stringlist>
-               Definition: A standard property.
-               Must include one of the following:
-                       - "fsl,fman-v2-port-oh" for FManV2 OH ports
-                       - "fsl,fman-v2-port-rx" for FManV2 RX ports
-                       - "fsl,fman-v2-port-tx" for FManV2 TX ports
-                       - "fsl,fman-v3-port-oh" for FManV3 OH ports
-                       - "fsl,fman-v3-port-rx" for FManV3 RX ports
-                       - "fsl,fman-v3-port-tx" for FManV3 TX ports
-
-- cell-index
-               Usage: required
-               Value type: <u32>
-               Definition: Specifies the hardware port id.
-               Each hardware port on the FMan has its own hardware PortID.
-               Super set of all hardware Port IDs available at FMan Reference
-               Manual under "FMan Hardware Ports in Freescale Devices" table.
-
-               Each hardware port is assigned a 4KB, port-specific page in
-               the FMan hardware port memory region (which is part of the
-               FMan memory map). The first 4 KB in the FMan hardware ports
-               memory region is used for what are called common registers.
-               The subsequent 63 4KB pages are allocated to the hardware
-               ports.
-               The page of a specific port is determined by the cell-index.
-
-- reg
-               Usage: required
-               Value type: <prop-encoded-array>
-               Definition: There is one reg region describing the port
-               configuration registers.
-
-- fsl,fman-10g-port
-               Usage: optional
-               Value type: boolean
-               Definition: The default port rate is 1G.
-               If this property exists, the port is s 10G port.
-
-- fsl,fman-best-effort-port
-               Usage: optional
-               Value type: boolean
-               Definition: Can be defined only if 10G-support is set.
-               This property marks a best-effort 10G port (10G port that
-               may not be capable of line rate).
-
-EXAMPLE
-
-port@a8000 {
-       cell-index = <0x28>;
-       compatible = "fsl,fman-v2-port-tx";
-       reg = <0xa8000 0x1000>;
-};
-
-port@88000 {
-       cell-index = <0x8>;
-       compatible = "fsl,fman-v2-port-rx";
-       reg = <0x88000 0x1000>;
-};
-
-port@81000 {
-       cell-index = <0x1>;
-       compatible = "fsl,fman-v2-port-oh";
-       reg = <0x81000 0x1000>;
-};
-
-=============================================================================
-FMan dTSEC/XGEC/mEMAC Node
-
-Refer to Documentation/devicetree/bindings/net/fsl,fman-dtsec.yaml
-
-============================================================================
-FMan IEEE 1588 Node
-
-Refer to Documentation/devicetree/bindings/ptp/ptp-qoriq.txt
-
-=============================================================================
-FMan MDIO Node
-
-DESCRIPTION
-
-The MDIO is a bus to which the PHY devices are connected.
-
-PROPERTIES
-
-- compatible
-               Usage: required
-               Value type: <stringlist>
-               Definition: A standard property.
-               Must include "fsl,fman-mdio" for 1 Gb/s MDIO from FMan v2.
-               Must include "fsl,fman-xmdio" for 10 Gb/s MDIO from FMan v2.
-               Must include "fsl,fman-memac-mdio" for 1/10 Gb/s MDIO from
-               FMan v3.
-
-- reg
-               Usage: required
-               Value type: <prop-encoded-array>
-               Definition: A standard property.
-
-- clocks
-               Usage: optional
-               Value type: <phandle>
-               Definition: A reference to the input clock of the controller
-               from which the MDC frequency is derived.
-
-- clock-frequency
-               Usage: optional
-               Value type: <u32>
-               Definition: Specifies the external MDC frequency, in Hertz, to
-               be used. Requires that the input clock is specified in the
-               "clocks" property. See also: mdio.yaml.
-
-- suppress-preamble
-               Usage: optional
-               Value type: <boolean>
-               Definition: Disable generation of preamble bits. See also:
-               mdio.yaml.
-
-- interrupts
-               Usage: required for external MDIO
-               Value type: <prop-encoded-array>
-               Definition: Event interrupt of external MDIO controller.
-
-- fsl,fman-internal-mdio
-               Usage: required for internal MDIO
-               Value type: boolean
-               Definition: Fman has internal MDIO for internal PCS(Physical
-               Coding Sublayer) PHYs and external MDIO for external PHYs.
-               The settings and programming routines for internal/external
-               MDIO are different. Must be included for internal MDIO.
-
-- fsl,erratum-a009885
-               Usage: optional
-               Value type: <boolean>
-               Definition: Indicates the presence of the A009885
-               erratum describing that the contents of MDIO_DATA may
-               become corrupt unless it is read within 16 MDC cycles
-               of MDIO_CFG[BSY] being cleared, when performing an
-               MDIO read operation.
-
-- fsl,erratum-a011043
-               Usage: optional
-               Value type: <boolean>
-               Definition: Indicates the presence of the A011043 erratum
-               describing that the MDIO_CFG[MDIO_RD_ER] bit may be falsely
-               set when reading internal PCS registers. MDIO reads to
-               internal PCS registers may result in having the
-               MDIO_CFG[MDIO_RD_ER] bit set, even when there is no error and
-               read data (MDIO_DATA[MDIO_DATA]) is correct.
-               Software may get false read error when reading internal
-               PCS registers through MDIO. As a workaround, all internal
-               MDIO accesses should ignore the MDIO_CFG[MDIO_RD_ER] bit.
-
-For internal PHY device on internal mdio bus, a PHY node should be created.
-See the definition of the PHY node in booting-without-of.txt for an
-example of how to define a PHY (Internal PHY has no interrupt line).
-- For "fsl,fman-mdio" compatible internal mdio bus, the PHY is TBI PHY.
-- For "fsl,fman-memac-mdio" compatible internal mdio bus, the PHY is PCS PHY.
-  The PCS PHY address should correspond to the value of the appropriate
-  MDEV_PORT.
-
-EXAMPLE
-
-Example for FMan v2 external MDIO:
-
-mdio@f1000 {
-       compatible = "fsl,fman-xmdio";
-       reg = <0xf1000 0x1000>;
-       interrupts = <101 2 0 0>;
-};
-
-Example for FMan v2 internal MDIO:
-
-mdio@e3120 {
-       compatible = "fsl,fman-mdio";
-       reg = <0xe3120 0xee0>;
-       fsl,fman-internal-mdio;
-
-       tbi1: tbi-phy@8 {
-               reg = <0x8>;
-               device_type = "tbi-phy";
-       };
-};
-
-Example for FMan v3 internal MDIO:
-
-mdio@f1000 {
-       compatible = "fsl,fman-memac-mdio";
-       reg = <0xf1000 0x1000>;
-       fsl,fman-internal-mdio;
-
-       pcsphy6: ethernet-phy@0 {
-               reg = <0x0>;
-       };
-};
-
-=============================================================================
-Example
-
-fman@400000 {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       cell-index = <1>;
-       compatible = "fsl,fman"
-       ranges = <0 0x400000 0x100000>;
-       reg = <0x400000 0x100000>;
-       clocks = <&fman_clk>;
-       clock-names = "fmanclk";
-       interrupts = <
-               96 2 0 0
-               16 2 1 1>;
-       fsl,qman-channel-range = <0x40 0xc>;
-
-       muram@0 {
-               compatible = "fsl,fman-muram";
-               reg = <0x0 0x28000>;
-       };
-
-       port@81000 {
-               cell-index = <1>;
-               compatible = "fsl,fman-v2-port-oh";
-               reg = <0x81000 0x1000>;
-       };
-
-       port@82000 {
-               cell-index = <2>;
-               compatible = "fsl,fman-v2-port-oh";
-               reg = <0x82000 0x1000>;
-       };
-
-       port@83000 {
-               cell-index = <3>;
-               compatible = "fsl,fman-v2-port-oh";
-               reg = <0x83000 0x1000>;
-       };
-
-       port@84000 {
-               cell-index = <4>;
-               compatible = "fsl,fman-v2-port-oh";
-               reg = <0x84000 0x1000>;
-       };
-
-       port@85000 {
-               cell-index = <5>;
-               compatible = "fsl,fman-v2-port-oh";
-               reg = <0x85000 0x1000>;
-       };
-
-       port@86000 {
-               cell-index = <6>;
-               compatible = "fsl,fman-v2-port-oh";
-               reg = <0x86000 0x1000>;
-       };
-
-       fman1_rx_0x8: port@88000 {
-               cell-index = <0x8>;
-               compatible = "fsl,fman-v2-port-rx";
-               reg = <0x88000 0x1000>;
-       };
-
-       fman1_rx_0x9: port@89000 {
-               cell-index = <0x9>;
-               compatible = "fsl,fman-v2-port-rx";
-               reg = <0x89000 0x1000>;
-       };
-
-       fman1_rx_0xa: port@8a000 {
-               cell-index = <0xa>;
-               compatible = "fsl,fman-v2-port-rx";
-               reg = <0x8a000 0x1000>;
-       };
-
-       fman1_rx_0xb: port@8b000 {
-               cell-index = <0xb>;
-               compatible = "fsl,fman-v2-port-rx";
-               reg = <0x8b000 0x1000>;
-       };
-
-       fman1_rx_0xc: port@8c000 {
-               cell-index = <0xc>;
-               compatible = "fsl,fman-v2-port-rx";
-               reg = <0x8c000 0x1000>;
-       };
-
-       fman1_rx_0x10: port@90000 {
-               cell-index = <0x10>;
-               compatible = "fsl,fman-v2-port-rx";
-               reg = <0x90000 0x1000>;
-       };
-
-       fman1_tx_0x28: port@a8000 {
-               cell-index = <0x28>;
-               compatible = "fsl,fman-v2-port-tx";
-               reg = <0xa8000 0x1000>;
-       };
-
-       fman1_tx_0x29: port@a9000 {
-               cell-index = <0x29>;
-               compatible = "fsl,fman-v2-port-tx";
-               reg = <0xa9000 0x1000>;
-       };
-
-       fman1_tx_0x2a: port@aa000 {
-               cell-index = <0x2a>;
-               compatible = "fsl,fman-v2-port-tx";
-               reg = <0xaa000 0x1000>;
-       };
-
-       fman1_tx_0x2b: port@ab000 {
-               cell-index = <0x2b>;
-               compatible = "fsl,fman-v2-port-tx";
-               reg = <0xab000 0x1000>;
-       };
-
-       fman1_tx_0x2c: port@ac0000 {
-               cell-index = <0x2c>;
-               compatible = "fsl,fman-v2-port-tx";
-               reg = <0xac000 0x1000>;
-       };
-
-       fman1_tx_0x30: port@b0000 {
-               cell-index = <0x30>;
-               compatible = "fsl,fman-v2-port-tx";
-               reg = <0xb0000 0x1000>;
-       };
-
-       ethernet@e0000 {
-               compatible = "fsl,fman-dtsec";
-               cell-index = <0>;
-               reg = <0xe0000 0x1000>;
-               fsl,fman-ports = <&fman1_rx_0x8 &fman1_tx_0x28>;
-               tbi-handle = <&tbi5>;
-       };
-
-       ethernet@e2000 {
-               compatible = "fsl,fman-dtsec";
-               cell-index = <1>;
-               reg = <0xe2000 0x1000>;
-               fsl,fman-ports = <&fman1_rx_0x9 &fman1_tx_0x29>;
-               tbi-handle = <&tbi6>;
-       };
-
-       ethernet@e4000 {
-               compatible = "fsl,fman-dtsec";
-               cell-index = <2>;
-               reg = <0xe4000 0x1000>;
-               fsl,fman-ports = <&fman1_rx_0xa &fman1_tx_0x2a>;
-               tbi-handle = <&tbi7>;
-       };
-
-       ethernet@e6000 {
-               compatible = "fsl,fman-dtsec";
-               cell-index = <3>;
-               reg = <0xe6000 0x1000>;
-               fsl,fman-ports = <&fman1_rx_0xb &fman1_tx_0x2b>;
-               tbi-handle = <&tbi8>;
-       };
-
-       ethernet@e8000 {
-               compatible = "fsl,fman-dtsec";
-               cell-index = <4>;
-               reg = <0xf0000 0x1000>;
-               fsl,fman-ports = <&fman1_rx_0xc &fman1_tx_0x2c>;
-               tbi-handle = <&tbi9>;
-
-       ethernet@f0000 {
-               cell-index = <8>;
-               compatible = "fsl,fman-xgec";
-               reg = <0xf0000 0x1000>;
-               fsl,fman-ports = <&fman1_rx_0x10 &fman1_tx_0x30>;
-       };
-
-       ptp-timer@fe000 {
-               compatible = "fsl,fman-ptp-timer";
-               reg = <0xfe000 0x1000>;
-       };
-
-       mdio@f1000 {
-               compatible = "fsl,fman-xmdio";
-               reg = <0xf1000 0x1000>;
-               interrupts = <101 2 0 0>;
-       };
-};
index 047bdf7bdd2fa3e6dfad8ab957f478fbebb794a1..9c9668c1b6a24edff7b7cf625b9f14c3cbc2e0c8 100644 (file)
@@ -86,4 +86,4 @@ Example:
 
 * Gianfar PTP clock nodes
 
-Refer to Documentation/devicetree/bindings/ptp/ptp-qoriq.txt
+Refer to Documentation/devicetree/bindings/ptp/fsl,ptp.yaml
index 464c0dafc617ad68edd386400546f48d413a2e7f..c09eec6422ac6874b62faf5f6a660c26ad9db0a8 100644 (file)
@@ -19,16 +19,6 @@ Optional properties:
 [1] Documentation/devicetree/bindings/net/ethernet.txt
 
 
-* Ethernet ppe node:
-Control rx & tx fifos of all ethernet controllers.
-Have 2048 recv channels shared by all ethernet controllers, only if no overlap.
-Each controller's recv channel start from channel * number (RX_DESC_NUM).
-
-Required properties:
-- compatible: "hisilicon,hip04-ppe", "syscon".
-- reg: address and length of the register set for the device.
-
-
 * MDIO bus node:
 
 Required properties:
index 3202dc7967c5b686d1c74194daca4c315f8d87a7..686b5c2fae402c6457e8fd44354823710fdb5485 100644 (file)
@@ -68,6 +68,17 @@ properties:
       Phandle to the syscon node that handles the path from GMAC to
       PHY variants.
 
+  mediatek,pcie-mirror:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the mediatek pcie-mirror controller.
+
+  mediatek,pctl:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      Phandle to the syscon node that handles the ports slew rate and
+      driver current.
+
   mediatek,sgmiisys:
     $ref: /schemas/types.yaml#/definitions/phandle-array
     minItems: 1
@@ -131,15 +142,12 @@ allOf:
 
         mediatek,infracfg: false
 
-        mediatek,pctl:
-          $ref: /schemas/types.yaml#/definitions/phandle
-          description:
-            Phandle to the syscon node that handles the ports slew rate and
-            driver current.
-
         mediatek,wed: false
 
         mediatek,wed-pcie: false
+    else:
+      properties:
+        mediatek,pctl: false
 
   - if:
       properties:
@@ -201,12 +209,10 @@ allOf:
           minItems: 1
           maxItems: 1
 
-        mediatek,pcie-mirror:
-          $ref: /schemas/types.yaml#/definitions/phandle
-          description:
-            Phandle to the mediatek pcie-mirror controller.
-
         mediatek,wed-pcie: false
+    else:
+      properties:
+        mediatek,pcie-mirror: false
 
   - if:
       properties:
index 9ef5bacda8c18ce4dca582547fada019f00fd794..988c72685cbfd4710547ad7156863b13187a86ef 100644 (file)
@@ -1,39 +1,3 @@
-MediaTek SoC built-in Bluetooth Devices
-==================================
-
-This device is a serial attached device to BTIF device and thus it must be a
-child node of the serial node with BTIF. The dt-bindings details for BTIF
-device can be known via Documentation/devicetree/bindings/serial/8250.yaml.
-
-Required properties:
-
-- compatible:  Must be
-                 "mediatek,mt7622-bluetooth": for MT7622 SoC
-- clocks:      Should be the clock specifiers corresponding to the entry in
-               clock-names property.
-- clock-names: Should contain "ref" entries.
-- power-domains: Phandle to the power domain that the device is part of
-
-Example:
-
-       btif: serial@1100c000 {
-               compatible = "mediatek,mt7622-btif",
-                            "mediatek,mtk-btif";
-               reg = <0 0x1100c000 0 0x1000>;
-               interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_LOW>;
-               clocks = <&pericfg CLK_PERI_BTIF_PD>;
-               clock-names = "main";
-               reg-shift = <2>;
-               reg-io-width = <4>;
-
-               bluetooth {
-                       compatible = "mediatek,mt7622-bluetooth";
-                       power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>;
-                       clocks = <&clk25m>;
-                       clock-names = "ref";
-               };
-       };
-
 MediaTek UART based Bluetooth Devices
 ==================================
 
index 5b292e7c9e4657a19a936e6aea6568e13fd707d6..792f26b06b060e2c8dca64be195c9ad8a97d283a 100644 (file)
@@ -38,6 +38,16 @@ properties:
 
   clock-frequency: true
 
+  resets:
+    items:
+      - description:
+          Reset shared with all blocks attached to the Switch Core Register
+          Bus (CSR) including VRAP slave.
+
+  reset-names:
+    items:
+      - const: switch
+
 required:
   - compatible
   - reg
index 85bfa45f5122c57192ff7ba372d7cc6f075f4986..a754a61adc2df3fcf866cb65306d28d06ab19724 100644 (file)
@@ -14,8 +14,53 @@ maintainers:
 description:
   Bindings for NXP TJA11xx automotive PHYs
 
+properties:
+  compatible:
+    enum:
+      - ethernet-phy-id0180.dc40
+      - ethernet-phy-id0180.dc41
+      - ethernet-phy-id0180.dc48
+      - ethernet-phy-id0180.dd00
+      - ethernet-phy-id0180.dd01
+      - ethernet-phy-id0180.dd02
+      - ethernet-phy-id0180.dc80
+      - ethernet-phy-id0180.dc82
+      - ethernet-phy-id001b.b010
+      - ethernet-phy-id001b.b013
+      - ethernet-phy-id001b.b030
+      - ethernet-phy-id001b.b031
+
 allOf:
   - $ref: ethernet-phy.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - ethernet-phy-id0180.dc40
+              - ethernet-phy-id0180.dc41
+              - ethernet-phy-id0180.dc48
+              - ethernet-phy-id0180.dd00
+              - ethernet-phy-id0180.dd01
+              - ethernet-phy-id0180.dd02
+
+    then:
+      properties:
+        nxp,rmii-refclk-in:
+          type: boolean
+          description: |
+            The REF_CLK is provided for both transmitted and received data
+            in RMII mode. This clock signal is provided by the PHY and is
+            typically derived from an external 25MHz crystal. Alternatively,
+            a 50MHz clock signal generated by an external oscillator can be
+            connected to pin REF_CLK. A third option is to connect a 25MHz
+            clock to pin CLK_IN_OUT. So, the REF_CLK should be configured
+            as input or output according to the actual circuit connection.
+            If present, indicates that the REF_CLK will be configured as
+            interface reference clock input when RMII mode enabled.
+            If not present, the REF_CLK will be configured as interface
+            reference clock output when RMII mode enabled.
+            Only supported on TJA1100 and TJA1101.
 
 patternProperties:
   "^ethernet-phy@[0-9a-f]+$":
@@ -32,22 +77,6 @@ patternProperties:
         description:
           The ID number for the child PHY. Should be +1 of parent PHY.
 
-      nxp,rmii-refclk-in:
-        type: boolean
-        description: |
-          The REF_CLK is provided for both transmitted and received data
-          in RMII mode. This clock signal is provided by the PHY and is
-          typically derived from an external 25MHz crystal. Alternatively,
-          a 50MHz clock signal generated by an external oscillator can be
-          connected to pin REF_CLK. A third option is to connect a 25MHz
-          clock to pin CLK_IN_OUT. So, the REF_CLK should be configured
-          as input or output according to the actual circuit connection.
-          If present, indicates that the REF_CLK will be configured as
-          interface reference clock input when RMII mode enabled.
-          If not present, the REF_CLK will be configured as interface
-          reference clock output when RMII mode enabled.
-          Only supported on TJA1100 and TJA1101.
-
     required:
       - reg
 
@@ -60,6 +89,7 @@ examples:
         #size-cells = <0>;
 
         tja1101_phy0: ethernet-phy@4 {
+            compatible = "ethernet-phy-id0180.dc40";
             reg = <0x4>;
             nxp,rmii-refclk-in;
         };
diff --git a/Bindings/net/pcs/snps,dw-xpcs.yaml b/Bindings/net/pcs/snps,dw-xpcs.yaml
new file mode 100644 (file)
index 0000000..e77eec9
--- /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/net/pcs/snps,dw-xpcs.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Synopsys DesignWare Ethernet PCS
+
+maintainers:
+  - Serge Semin <fancer.lancer@gmail.com>
+
+description:
+  Synopsys DesignWare Ethernet Physical Coding Sublayer provides an interface
+  between Media Access Control and Physical Medium Attachment Sublayer through
+  the Media Independent Interface (XGMII, USXGMII, XLGMII, GMII, etc)
+  controlled by means of the IEEE std. Clause 45 registers set. The PCS can be
+  optionally synthesized with a vendor-specific interface connected to
+  Synopsys PMA (also called DesignWare Consumer/Enterprise PHY) although in
+  general it can be used to communicate with any compatible PHY.
+
+  The PCS CSRs can be accessible either over the Ethernet MDIO bus or directly
+  by means of the APB3/MCI interfaces. In the later case the XPCS can be mapped
+  right to the system IO memory space.
+
+properties:
+  compatible:
+    oneOf:
+      - description: Synopsys DesignWare XPCS with none or unknown PMA
+        const: snps,dw-xpcs
+      - description: Synopsys DesignWare XPCS with Consumer Gen1 3G PMA
+        const: snps,dw-xpcs-gen1-3g
+      - description: Synopsys DesignWare XPCS with Consumer Gen2 3G PMA
+        const: snps,dw-xpcs-gen2-3g
+      - description: Synopsys DesignWare XPCS with Consumer Gen2 6G PMA
+        const: snps,dw-xpcs-gen2-6g
+      - description: Synopsys DesignWare XPCS with Consumer Gen4 3G PMA
+        const: snps,dw-xpcs-gen4-3g
+      - description: Synopsys DesignWare XPCS with Consumer Gen4 6G PMA
+        const: snps,dw-xpcs-gen4-6g
+      - description: Synopsys DesignWare XPCS with Consumer Gen5 10G PMA
+        const: snps,dw-xpcs-gen5-10g
+      - description: Synopsys DesignWare XPCS with Consumer Gen5 12G PMA
+        const: snps,dw-xpcs-gen5-12g
+
+  reg:
+    items:
+      - description:
+          In case of the MDIO management interface this just a 5-bits ID
+          of the MDIO bus device. If DW XPCS CSRs space is accessed over the
+          MCI or APB3 management interfaces, then the space mapping can be
+          either 'direct' or 'indirect'. In the former case all Clause 45
+          registers are contiguously mapped within the address space
+          MMD '[20:16]', Reg '[15:0]'. In the later case the space is divided
+          to the multiple 256 register sets. There is a special viewport CSR
+          which is responsible for the set selection. The upper part of
+          the CSR address MMD+REG[20:8] is supposed to be written in there
+          so the corresponding subset would be mapped to the lowest 255 CSRs.
+
+  reg-names:
+    items:
+      - enum: [ direct, indirect ]
+
+  reg-io-width:
+    description:
+      The way the CSRs are mapped to the memory is platform depended. Since
+      each Clause 45 CSR is of 16-bits wide the access instructions must be
+      two bytes aligned at least.
+    default: 2
+    enum: [ 2, 4 ]
+
+  interrupts:
+    description:
+      System interface interrupt output (sbd_intr_o) indicating Clause 73/37
+      auto-negotiation events':' Page received, AN is completed or incompatible
+      link partner.
+    maxItems: 1
+
+  clocks:
+    description:
+      The MCI and APB3 interfaces are supposed to be equipped with a clock
+      source connected to the clk_csr_i line.
+
+      PCS/PMA layer can be clocked by an internal reference clock source
+      (phyN_core_refclk) or by an externally connected (phyN_pad_refclk) clock
+      generator. Both clocks can be supplied at a time.
+    minItems: 1
+    maxItems: 3
+
+  clock-names:
+    oneOf:
+      - minItems: 1
+        items: # MDIO
+          - enum: [core, pad]
+          - const: pad
+      - minItems: 1
+        items: # MCI or APB
+          - const: csr
+          - enum: [core, pad]
+          - const: pad
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    ethernet-pcs@1f05d000 {
+      compatible = "snps,dw-xpcs";
+      reg = <0x1f05d000 0x1000>;
+      reg-names = "indirect";
+
+      reg-io-width = <4>;
+
+      interrupts = <79 IRQ_TYPE_LEVEL_HIGH>;
+
+      clocks = <&ccu_pclk>, <&ccu_core>, <&ccu_pad>;
+      clock-names = "csr", "core", "pad";
+    };
+  - |
+    mdio-bus {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      ethernet-pcs@0 {
+        compatible = "snps,dw-xpcs";
+        reg = <0>;
+
+        clocks = <&ccu_core>, <&ccu_pad>;
+        clock-names = "core", "pad";
+      };
+    };
+...
index bb94a2388520bb2d28969c506dbcd78cc186a042..d248a08a2136b2fc1c7c20045cf7f7db017bf877 100644 (file)
@@ -14,10 +14,32 @@ maintainers:
 description:
   Bindings for Realtek RTL82xx PHYs
 
-allOf:
-  - $ref: ethernet-phy.yaml#
-
 properties:
+  compatible:
+    enum:
+      - ethernet-phy-id001c.c800
+      - ethernet-phy-id001c.c816
+      - ethernet-phy-id001c.c838
+      - ethernet-phy-id001c.c840
+      - ethernet-phy-id001c.c848
+      - ethernet-phy-id001c.c849
+      - ethernet-phy-id001c.c84a
+      - ethernet-phy-id001c.c862
+      - ethernet-phy-id001c.c878
+      - ethernet-phy-id001c.c880
+      - ethernet-phy-id001c.c910
+      - ethernet-phy-id001c.c912
+      - ethernet-phy-id001c.c913
+      - ethernet-phy-id001c.c914
+      - ethernet-phy-id001c.c915
+      - ethernet-phy-id001c.c916
+      - ethernet-phy-id001c.c942
+      - ethernet-phy-id001c.c961
+      - ethernet-phy-id001c.cad0
+      - ethernet-phy-id001c.cb00
+
+  leds: true
+
   realtek,clkout-disable:
     type: boolean
     description:
@@ -31,6 +53,18 @@ properties:
 
 unevaluatedProperties: false
 
+allOf:
+  - $ref: ethernet-phy.yaml#
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              const: ethernet-phy-id001c.c916
+    then:
+      properties:
+        leds: false
+
 examples:
   - |
     mdio {
index 21cc27e75f50a4a574d6ac483345731f91060040..3eb65e63fdaec9def6b1b66b8f688964594a3626 100644 (file)
@@ -76,6 +76,7 @@ properties:
         - rockchip,rk3128-gmac
         - rockchip,rk3228-gmac
         - rockchip,rk3288-gmac
+        - rockchip,rk3308-gmac
         - rockchip,rk3328-gmac
         - rockchip,rk3366-gmac
         - rockchip,rk3368-gmac
@@ -435,6 +436,32 @@ properties:
     description:
       Use Address-Aligned Beats
 
+  snps,pbl:
+    description:
+      Programmable Burst Length (tx and rx)
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [1, 2, 4, 8, 16, 32]
+
+  snps,txpbl:
+    description:
+      Tx Programmable Burst Length. If set, DMA tx will use this
+      value rather than snps,pbl.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [1, 2, 4, 8, 16, 32]
+
+  snps,rxpbl:
+    description:
+      Rx Programmable Burst Length. If set, DMA rx will use this
+      value rather than snps,pbl.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [1, 2, 4, 8, 16, 32]
+
+  snps,no-pbl-x8:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core
+      rev < 3.50, don\'t multiply the values by 4.
+
   snps,fixed-burst:
     $ref: /schemas/types.yaml#/definitions/flag
     description:
@@ -485,6 +512,12 @@ properties:
     description:
       Frequency division factor for MDC clock.
 
+  snps,tso:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Enables the TSO feature otherwise it will be managed by MAC HW capability
+      register.
+
   mdio:
     $ref: mdio.yaml#
     unevaluatedProperties: false
@@ -568,95 +601,38 @@ allOf:
   - if:
       properties:
         compatible:
-          contains:
-            enum:
-              - allwinner,sun7i-a20-gmac
-              - allwinner,sun8i-a83t-emac
-              - allwinner,sun8i-h3-emac
-              - allwinner,sun8i-r40-gmac
-              - allwinner,sun8i-v3s-emac
-              - allwinner,sun50i-a64-emac
-              - ingenic,jz4775-mac
-              - ingenic,x1000-mac
-              - ingenic,x1600-mac
-              - ingenic,x1830-mac
-              - ingenic,x2000-mac
-              - qcom,sa8775p-ethqos
-              - qcom,sc8280xp-ethqos
-              - snps,dwmac-3.50a
-              - snps,dwmac-4.10a
-              - snps,dwmac-4.20a
-              - snps,dwmac-5.20
-              - snps,dwxgmac
-              - snps,dwxgmac-2.10
-              - st,spear600-gmac
-
-    then:
-      properties:
-        snps,pbl:
-          description:
-            Programmable Burst Length (tx and rx)
-          $ref: /schemas/types.yaml#/definitions/uint32
-          enum: [1, 2, 4, 8, 16, 32]
-
-        snps,txpbl:
-          description:
-            Tx Programmable Burst Length. If set, DMA tx will use this
-            value rather than snps,pbl.
-          $ref: /schemas/types.yaml#/definitions/uint32
-          enum: [1, 2, 4, 8, 16, 32]
-
-        snps,rxpbl:
-          description:
-            Rx Programmable Burst Length. If set, DMA rx will use this
-            value rather than snps,pbl.
-          $ref: /schemas/types.yaml#/definitions/uint32
-          enum: [1, 2, 4, 8, 16, 32]
-
-        snps,no-pbl-x8:
-          $ref: /schemas/types.yaml#/definitions/flag
-          description:
-            Don\'t multiply the pbl/txpbl/rxpbl values by 8. For core
-            rev < 3.50, don\'t multiply the values by 4.
-
-  - if:
-      properties:
-        compatible:
-          contains:
-            enum:
-              - allwinner,sun7i-a20-gmac
-              - allwinner,sun8i-a83t-emac
-              - allwinner,sun8i-h3-emac
-              - allwinner,sun8i-r40-gmac
-              - allwinner,sun8i-v3s-emac
-              - allwinner,sun50i-a64-emac
-              - loongson,ls2k-dwmac
-              - loongson,ls7a-dwmac
-              - ingenic,jz4775-mac
-              - ingenic,x1000-mac
-              - ingenic,x1600-mac
-              - ingenic,x1830-mac
-              - ingenic,x2000-mac
-              - qcom,qcs404-ethqos
-              - qcom,sa8775p-ethqos
-              - qcom,sc8280xp-ethqos
-              - qcom,sm8150-ethqos
-              - snps,dwmac-4.00
-              - snps,dwmac-4.10a
-              - snps,dwmac-4.20a
-              - snps,dwmac-5.10a
-              - snps,dwmac-5.20
-              - snps,dwxgmac
-              - snps,dwxgmac-2.10
-              - st,spear600-gmac
+          not:
+            contains:
+              enum:
+                - allwinner,sun7i-a20-gmac
+                - allwinner,sun8i-a83t-emac
+                - allwinner,sun8i-h3-emac
+                - allwinner,sun8i-r40-gmac
+                - allwinner,sun8i-v3s-emac
+                - allwinner,sun50i-a64-emac
+                - loongson,ls2k-dwmac
+                - loongson,ls7a-dwmac
+                - ingenic,jz4775-mac
+                - ingenic,x1000-mac
+                - ingenic,x1600-mac
+                - ingenic,x1830-mac
+                - ingenic,x2000-mac
+                - qcom,qcs404-ethqos
+                - qcom,sa8775p-ethqos
+                - qcom,sc8280xp-ethqos
+                - qcom,sm8150-ethqos
+                - snps,dwmac-4.00
+                - snps,dwmac-4.10a
+                - snps,dwmac-4.20a
+                - snps,dwmac-5.10a
+                - snps,dwmac-5.20
+                - snps,dwxgmac
+                - snps,dwxgmac-2.10
+                - st,spear600-gmac
 
     then:
       properties:
-        snps,tso:
-          $ref: /schemas/types.yaml#/definitions/flag
-          description:
-            Enables the TSO feature otherwise it will be managed by
-            MAC HW capability register.
+        snps,tso: false
 
 additionalProperties: true
 
index 7ccf75676b6d5544403baff4645c388d44f99c73..bf23838fe6e8bdfcd936868ff83adaeb5f69cd52 100644 (file)
@@ -22,18 +22,22 @@ select:
         enum:
           - st,stm32-dwmac
           - st,stm32mp1-dwmac
+          - st,stm32mp13-dwmac
+          - st,stm32mp25-dwmac
   required:
     - compatible
 
-allOf:
-  - $ref: snps,dwmac.yaml#
-
 properties:
   compatible:
     oneOf:
+      - items:
+          - enum:
+              - st,stm32mp25-dwmac
+          - const: snps,dwmac-5.20
       - items:
           - enum:
               - st,stm32mp1-dwmac
+              - st,stm32mp13-dwmac
           - const: snps,dwmac-4.20a
       - items:
           - enum:
@@ -75,12 +79,15 @@ properties:
   st,syscon:
     $ref: /schemas/types.yaml#/definitions/phandle-array
     items:
-      - items:
+      - minItems: 2
+        items:
           - description: phandle to the syscon node which encompases the glue register
           - description: offset of the control register
+          - description: field to set mask in register
     description:
       Should be phandle/offset pair. The phandle to the syscon node which
-      encompases the glue register, and the offset of the control register
+      encompases the glue register, the offset of the control register and
+      the mask to set bitfield in control register
 
   st,ext-phyclk:
     description:
@@ -112,12 +119,40 @@ required:
 
 unevaluatedProperties: false
 
+allOf:
+  - $ref: snps,dwmac.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - st,stm32-dwmac
+              - st,stm32mp1-dwmac
+              - st,stm32mp25-dwmac
+    then:
+      properties:
+        st,syscon:
+          items:
+            minItems: 2
+            maxItems: 2
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - st,stm32mp13-dwmac
+    then:
+      properties:
+        st,syscon:
+          items:
+            minItems: 3
+            maxItems: 3
+
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
     #include <dt-bindings/clock/stm32mp1-clks.h>
-    #include <dt-bindings/reset/stm32mp1-resets.h>
-    #include <dt-bindings/mfd/stm32h7-rcc.h>
     //Example 1
      ethernet0: ethernet@5800a000 {
            compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
index f5c22d6dcaee177592f04110004a195a51cb6135..e36e3a6229048bba4755e51ac1fd3080664314dd 100644 (file)
@@ -28,6 +28,15 @@ properties:
     maxItems: 1
     description: phandle to the IEP source clock
 
+  interrupts:
+    maxItems: 1
+    description:
+      Interrupt specifier for capture/compare IRQ.
+
+  interrupt-names:
+    items:
+      - const: iep_cap_cmp
+
 required:
   - compatible
   - reg
index e253fa786092220cba4c15be87d5aaa3284ad678..c296e5711848437995016a33e5e580864998a6c4 100644 (file)
@@ -55,6 +55,14 @@ properties:
     description:
       phandle to MII_RT module's syscon regmap
 
+  ti,pa-stats:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      phandle to PA_STATS module's syscon regmap. PA_STATS is a set of
+      registers where different statistics related to ICSSG, are dumped by
+      ICSSG firmware. PA_STATS module's syscon regmap will help the device to
+      access/read/write those statistics.
+
   ti,iep:
     $ref: /schemas/types.yaml#/definitions/phandle-array
     maxItems: 2
@@ -194,6 +202,7 @@ examples:
                     "tx1-0", "tx1-1", "tx1-2", "tx1-3",
                     "rx0", "rx1";
         ti,mii-g-rt = <&icssg2_mii_g_rt>;
+        ti,pa-stats = <&icssg2_pa_stats>;
         ti,iep = <&icssg2_iep0>, <&icssg2_iep1>;
         interrupt-parent = <&icssg2_intc>;
         interrupts = <24 0 2>, <25 1 3>;
index 5c4498b762c89fe6964b7e3d2dba710e925eef51..070c4c9b86437f77f261889aeea98340d8d44b99 100644 (file)
@@ -128,6 +128,11 @@ properties:
       Whether to skip executing an SCM call that reassigns the memory
       region ownership.
 
+  qcom,no-msa-ready-indicator:
+    type: boolean
+    description:
+      Don't wait for MSA_READY indicator to complete init.
+
   qcom,smem-states:
     $ref: /schemas/types.yaml#/definitions/phandle-array
     description: State bits used by the AP to signal the WLAN Q6.
index 41d023797d7d3b5d556a9c255f84f397fc292e10..8675d7d0215cdbe072e7ac88dfdea2316e7cdbde 100644 (file)
@@ -17,6 +17,7 @@ description: |
 properties:
   compatible:
     enum:
+      - pci17cb,1101  # QCA6390
       - pci17cb,1103  # WCN6855
 
   reg:
@@ -28,10 +29,55 @@ properties:
       string to uniquely identify variant of the calibration data for designs
       with colliding bus and device ids
 
+  vddrfacmn-supply:
+    description: VDD_RFA_CMN supply regulator handle
+
+  vddaon-supply:
+    description: VDD_AON supply regulator handle
+
+  vddwlcx-supply:
+    description: VDD_WL_CX supply regulator handle
+
+  vddwlmx-supply:
+    description: VDD_WL_MX 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
+
+  vddpcie0p9-supply:
+    description: VDD_PCIE_0P9 supply regulator handle
+
+  vddpcie1p8-supply:
+    description: VDD_PCIE_1P8 supply regulator handle
+
 required:
   - compatible
   - reg
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: pci17cb,1101
+    then:
+      required:
+        - vddrfacmn-supply
+        - vddaon-supply
+        - vddwlcx-supply
+        - vddwlmx-supply
+        - vddrfa0p8-supply
+        - vddrfa1p2-supply
+        - vddrfa1p7-supply
+        - vddpcie0p9-supply
+        - vddpcie1p8-supply
+
 additionalProperties: false
 
 examples:
index a2d55bf4c7a518a5d81a9a646c70a319a7e9217c..ff5763dc66a88b635b6a358d4dd68c3ff71cea2a 100644 (file)
@@ -265,15 +265,6 @@ allOf:
 
 examples:
   - |
-
-    q6v5_wcss: remoteproc@cd00000 {
-        compatible = "qcom,ipq8074-wcss-pil";
-        reg = <0xcd00000 0x4040>,
-              <0x4ab000 0x20>;
-        reg-names = "qdsp6",
-                    "rmb";
-    };
-
     wifi0: wifi@c000000 {
         compatible = "qcom,ipq8074-wifi";
         reg = <0xc000000 0x2000000>;
diff --git a/Bindings/net/wireless/qcom,ath12k.yaml b/Bindings/net/wireless/qcom,ath12k.yaml
new file mode 100644 (file)
index 0000000..1b58840
--- /dev/null
@@ -0,0 +1,99 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+# Copyright (c) 2024 Linaro Limited
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/wireless/qcom,ath12k.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies ath12k wireless devices (PCIe)
+
+maintainers:
+  - Jeff Johnson <quic_jjohnson@quicinc.com>
+  - Kalle Valo <kvalo@kernel.org>
+
+description:
+  Qualcomm Technologies IEEE 802.11be PCIe devices.
+
+properties:
+  compatible:
+    enum:
+      - pci17cb,1107  # WCN7850
+
+  reg:
+    maxItems: 1
+
+  vddaon-supply:
+    description: VDD_AON supply regulator handle
+
+  vddwlcx-supply:
+    description: VDD_WLCX supply regulator handle
+
+  vddwlmx-supply:
+    description: VDD_WLMX supply regulator handle
+
+  vddrfacmn-supply:
+    description: VDD_RFA_CMN supply regulator handle
+
+  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
+
+  vddpcie0p9-supply:
+    description: VDD_PCIE_0P9 supply regulator handle
+
+  vddpcie1p8-supply:
+    description: VDD_PCIE_1P8 supply regulator handle
+
+required:
+  - compatible
+  - reg
+  - vddaon-supply
+  - vddwlcx-supply
+  - vddwlmx-supply
+  - vddrfacmn-supply
+  - vddrfa0p8-supply
+  - vddrfa1p2-supply
+  - vddrfa1p8-supply
+  - vddpcie0p9-supply
+  - vddpcie1p8-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/gpio/gpio.h>
+    pcie {
+        #address-cells = <3>;
+        #size-cells = <2>;
+
+        pcie@0 {
+            device_type = "pci";
+            reg = <0x0 0x0 0x0 0x0 0x0>;
+            #address-cells = <3>;
+            #size-cells = <2>;
+            ranges;
+
+            bus-range = <0x01 0xff>;
+
+            wifi@0 {
+                compatible = "pci17cb,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>;
+            };
+        };
+    };
index 0f781dac6717c648ad8de5c9dc576b7965c1e2b1..eb803ddd13e0a9f8e85fff1cf35bd0d099ce350f 100644 (file)
@@ -31,6 +31,10 @@ properties:
   phy-handle:
     $ref: ethernet-controller.yaml#/properties/phy-handle
 
+  clocks:
+    items:
+      - description: 200/375 MHz free-running clock is used as input clock.
+
 required:
   - compatible
   - reg
@@ -51,5 +55,6 @@ examples:
             compatible = "xlnx,gmii-to-rgmii-1.0";
             reg = <8>;
             phy-handle = <&phy>;
+            clocks = <&dummy>;
         };
     };
index 9801fe6f91b55fb43740ea28e20a02af0d9627c1..99ddc9a4af0534096f83904cf9c94441bc7202c9 100644 (file)
@@ -28,6 +28,9 @@ properties:
     description: phandle to the secure-monitor node
     $ref: /schemas/types.yaml#/definitions/phandle
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - clocks
index e9d9d8df481182b20358c0cd848a03ce82562595..bb37d72c9eaaccb02ded4eeea7ac44a8d3aca2f7 100644 (file)
@@ -7,7 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale i.MX IC Identification Module (IIM)
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+  - Fabio Estevam <festevam@gmail.com>
 
 description: |
   This binding represents the IC Identification Module (IIM) found on
index be1314454bec3e2cb5a82a3aaf64c7f9bbf5a8ea..e21c06e9a741c84c2287013ed61ddbdb01f798cc 100644 (file)
@@ -7,7 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale i.MX On-Chip OTP Controller (OCOTP)
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+  - Fabio Estevam <festevam@gmail.com>
 
 description: |
   This binding represents the on-chip eFuse OTP controller found on
index cf5f9e22bb7e66ffc0fdf08b78d6372c0b30bdb4..32b8c1eb4e80c2895734df4c3d23d482a4cf5a0a 100644 (file)
@@ -28,7 +28,9 @@ properties:
           - enum:
               - mediatek,mt7622-efuse
               - mediatek,mt7623-efuse
+              - mediatek,mt7981-efuse
               - mediatek,mt7986-efuse
+              - mediatek,mt7988-efuse
               - mediatek,mt8173-efuse
               - mediatek,mt8183-efuse
               - mediatek,mt8186-efuse
index d9287be898772f74a6e476d94c73bb4b3d90aba8..95121dd6311c577890abb2d23f4d680d263cff56 100644 (file)
@@ -7,7 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: On-Chip OTP Memory for Freescale i.MX23/i.MX28
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+  - Fabio Estevam <festevam@gmail.com>
 
 allOf:
   - $ref: nvmem.yaml#
index 917c40d5c382f4b85faabd64c02d59d668730aee..1cbe44ab23b1de7097516fcc0735bd46b3774a29 100644 (file)
@@ -28,7 +28,7 @@ unevaluatedProperties: false
 
 examples:
   - |
-    nvmem {
+    soc-nvmem {
         compatible = "xlnx,zynqmp-nvmem-fw";
         nvmem-layout {
             compatible = "fixed-layout";
index 3484e0b4b412e8e558435d193dd55ce1fad178f1..bcfbaf5582cc9cb6c4d0e2108dcbc688c45b75c0 100644 (file)
@@ -110,6 +110,12 @@ properties:
   iommu-map-mask: true
   msi-parent: true
 
+  ats-supported:
+    description:
+      Indicates that a PCIe host controller supports ATS, and can handle Memory
+      Requests with Address Type (AT).
+    type: boolean
+
 required:
   - compatible
   - reg
index 6fba42156db60895600cdd63498ea199a42fb9c3..c41608863d6cef6a233bf6f64f18ede3864b61ec 100644 (file)
@@ -13,6 +13,35 @@ description: |+
   MediaTek MT7621 PCIe subsys supports a single Root Complex (RC)
   with 3 Root Ports. Each Root Port supports a Gen1 1-lane Link
 
+                          MT7621 PCIe HOST Topology
+
+                                   .-------.
+                                   |       |
+                                   |  CPU  |
+                                   |       |
+                                   '-------'
+                                       |
+                                       |
+                                       |
+                                       v
+                              .------------------.
+                  .-----------|  HOST/PCI Bridge |------------.
+                  |           '------------------'            | Type1
+             BUS0 |                     |                     | Access
+                  v                     v                     v On Bus0
+          .-------------.        .-------------.       .-------------.
+          | VIRTUAL P2P |        | VIRTUAL P2P |       | VIRTUAL P2P |
+          |    BUS0     |        |    BUS0     |       |    BUS0     |
+          |    DEV0     |        |    DEV1     |       |    DEV2     |
+          '-------------'        '-------------'       '-------------'
+    Type0        |          Type0       |         Type0       |
+   Access   BUS1 |         Access   BUS2|        Access   BUS3|
+   On Bus1       v         On Bus2      v        On Bus3      v
+           .----------.           .----------.          .----------.
+           | Device 0 |           | Device 0 |          | Device 0 |
+           |  Func 0  |           |  Func 0  |          |  Func 0  |
+           '----------'           '----------'          '----------'
+
 allOf:
   - $ref: /schemas/pci/pci-host-bridge.yaml#
 
index 5d7aec5f54e71a901a4793daaa0fa7d9caaf9721..612633ba59e2c5b4223af357414a5b2f808bb2a5 100644 (file)
@@ -10,21 +10,13 @@ maintainers:
   - Daire McNamara <daire.mcnamara@microchip.com>
 
 allOf:
-  - $ref: /schemas/pci/pci-host-bridge.yaml#
+  - $ref: plda,xpressrich3-axi-common.yaml#
   - $ref: /schemas/interrupt-controller/msi-controller.yaml#
 
 properties:
   compatible:
     const: microchip,pcie-host-1.0 # PolarFire
 
-  reg:
-    maxItems: 2
-
-  reg-names:
-    items:
-      - const: cfg
-      - const: apb
-
   clocks:
     description:
       Fabric Interface Controllers, FICs, are the interface between the FPGA
@@ -52,18 +44,6 @@ properties:
     items:
       pattern: '^fic[0-3]$'
 
-  interrupts:
-    minItems: 1
-    items:
-      - description: PCIe host controller
-      - description: builtin MSI controller
-
-  interrupt-names:
-    minItems: 1
-    items:
-      - const: pcie
-      - const: msi
-
   ranges:
     minItems: 1
     maxItems: 3
@@ -72,39 +52,6 @@ properties:
     minItems: 1
     maxItems: 6
 
-  msi-controller:
-    description: Identifies the node as an MSI controller.
-
-  msi-parent:
-    description: MSI controller the device is capable of using.
-
-  interrupt-controller:
-    type: object
-    properties:
-      '#address-cells':
-        const: 0
-
-      '#interrupt-cells':
-        const: 1
-
-      interrupt-controller: true
-
-    required:
-      - '#address-cells'
-      - '#interrupt-cells'
-      - interrupt-controller
-
-    additionalProperties: false
-
-required:
-  - reg
-  - reg-names
-  - "#interrupt-cells"
-  - interrupts
-  - interrupt-map-mask
-  - interrupt-map
-  - msi-controller
-
 unevaluatedProperties: false
 
 examples:
diff --git a/Bindings/pci/plda,xpressrich3-axi-common.yaml b/Bindings/pci/plda,xpressrich3-axi-common.yaml
new file mode 100644 (file)
index 0000000..7a57a80
--- /dev/null
@@ -0,0 +1,75 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/plda,xpressrich3-axi-common.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: PLDA XpressRICH PCIe host common properties
+
+maintainers:
+  - Daire McNamara <daire.mcnamara@microchip.com>
+  - Kevin Xie <kevin.xie@starfivetech.com>
+
+description:
+  Generic PLDA XpressRICH PCIe host common properties.
+
+allOf:
+  - $ref: /schemas/pci/pci-host-bridge.yaml#
+
+properties:
+  reg:
+    maxItems: 2
+
+  reg-names:
+    items:
+      - const: cfg
+      - const: apb
+
+  interrupts:
+    minItems: 1
+    items:
+      - description: PCIe host controller
+      - description: builtin MSI controller
+
+  interrupt-names:
+    minItems: 1
+    items:
+      - const: pcie
+      - const: msi
+
+  msi-controller:
+    description: Identifies the node as an MSI controller.
+
+  msi-parent:
+    description: MSI controller the device is capable of using.
+
+  interrupt-controller:
+    type: object
+    properties:
+      '#address-cells':
+        const: 0
+
+      '#interrupt-cells':
+        const: 1
+
+      interrupt-controller: true
+
+    required:
+      - '#address-cells'
+      - '#interrupt-cells'
+      - interrupt-controller
+
+    additionalProperties: false
+
+required:
+  - reg
+  - reg-names
+  - interrupts
+  - msi-controller
+  - "#interrupt-cells"
+  - interrupt-map-mask
+  - interrupt-map
+
+additionalProperties: true
+
+...
index a223ce029cab7ca7683e32013088c3682236f3f3..46802f7d94826d76ce9d765300c076df5e2129c8 100644 (file)
@@ -13,6 +13,7 @@ properties:
   compatible:
     oneOf:
       - enum:
+          - qcom,sa8775p-pcie-ep
           - qcom,sdx55-pcie-ep
           - qcom,sm8450-pcie-ep
       - items:
@@ -20,6 +21,7 @@ properties:
           - const: qcom,sdx55-pcie-ep
 
   reg:
+    minItems: 6
     items:
       - description: Qualcomm-specific PARF configuration registers
       - description: DesignWare PCIe registers
@@ -27,8 +29,10 @@ properties:
       - 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:
+    minItems: 6
     items:
       - const: parf
       - const: dbi
@@ -36,13 +40,14 @@ properties:
       - const: atu
       - const: addr_space
       - const: mmio
+      - const: dma
 
   clocks:
-    minItems: 7
+    minItems: 5
     maxItems: 8
 
   clock-names:
-    minItems: 7
+    minItems: 5
     maxItems: 8
 
   qcom,perst-regs:
@@ -57,14 +62,18 @@ properties:
           - description: Perst separation enable offset
 
   interrupts:
+    minItems: 2
     items:
       - description: PCIe Global interrupt
       - description: PCIe Doorbell interrupt
+      - description: DMA interrupt
 
   interrupt-names:
+    minItems: 2
     items:
       - const: global
       - const: doorbell
+      - const: dma
 
   reset-gpios:
     description: GPIO used as PERST# input signal
@@ -125,6 +134,10 @@ allOf:
               - qcom,sdx55-pcie-ep
     then:
       properties:
+        reg:
+          maxItems: 6
+        reg-names:
+          maxItems: 6
         clocks:
           items:
             - description: PCIe Auxiliary clock
@@ -143,6 +156,10 @@ allOf:
             - const: slave_q2a
             - const: sleep
             - const: ref
+        interrupts:
+          maxItems: 2
+        interrupt-names:
+          maxItems: 2
 
   - if:
       properties:
@@ -152,6 +169,10 @@ allOf:
               - qcom,sm8450-pcie-ep
     then:
       properties:
+        reg:
+          maxItems: 6
+        reg-names:
+          maxItems: 6
         clocks:
           items:
             - description: PCIe Auxiliary clock
@@ -172,6 +193,45 @@ allOf:
             - const: ref
             - const: ddrss_sf_tbu
             - const: aggre_noc_axi
+        interrupts:
+          maxItems: 2
+        interrupt-names:
+          maxItems: 2
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sa8775p-pcie-ep
+    then:
+      properties:
+        reg:
+          minItems: 7
+          maxItems: 7
+        reg-names:
+          minItems: 7
+          maxItems: 7
+        clocks:
+          items:
+            - description: PCIe Auxiliary clock
+            - description: PCIe CFG AHB clock
+            - description: PCIe Master AXI clock
+            - description: PCIe Slave AXI clock
+            - description: PCIe Slave Q2A AXI clock
+        clock-names:
+          items:
+            - const: aux
+            - const: cfg
+            - const: bus_master
+            - const: bus_slave
+            - const: slave_q2a
+        interrupts:
+          minItems: 3
+          maxItems: 3
+        interrupt-names:
+          minItems: 3
+          maxItems: 3
 
 unevaluatedProperties: false
 
index 1496d6993ab489fcbb2265c384242b28127173a1..d8c0afaa4b19227372f67d1e13d883f0a38cddad 100644 (file)
@@ -69,6 +69,10 @@ properties:
       - const: msi6
       - const: msi7
 
+  operating-points-v2: true
+  opp-table:
+    type: object
+
   resets:
     maxItems: 1
 
index 1074310a8e7a2cb6ba9fabdabc61a634234cb29f..a9db0a2315639ecbb90f89aab08167d633091927 100644 (file)
@@ -19,11 +19,10 @@ properties:
     const: qcom,pcie-x1e80100
 
   reg:
-    minItems: 5
+    minItems: 6
     maxItems: 6
 
   reg-names:
-    minItems: 5
     items:
       - const: parf # Qualcomm specific registers
       - const: dbi # DesignWare PCIe registers
diff --git a/Bindings/pci/rockchip-dw-pcie-common.yaml b/Bindings/pci/rockchip-dw-pcie-common.yaml
new file mode 100644 (file)
index 0000000..cc9adfc
--- /dev/null
@@ -0,0 +1,126 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/rockchip-dw-pcie-common.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: DesignWare based PCIe RC/EP controller on Rockchip SoCs
+
+maintainers:
+  - Shawn Lin <shawn.lin@rock-chips.com>
+  - Simon Xue <xxm@rock-chips.com>
+  - Heiko Stuebner <heiko@sntech.de>
+
+description: |+
+  Generic properties for the DesignWare based PCIe RC/EP controller on Rockchip
+  SoCs.
+
+properties:
+  clocks:
+    minItems: 5
+    items:
+      - description: AHB clock for PCIe master
+      - description: AHB clock for PCIe slave
+      - description: AHB clock for PCIe dbi
+      - description: APB clock for PCIe
+      - description: Auxiliary clock for PCIe
+      - description: PIPE clock
+      - description: Reference clock for PCIe
+
+  clock-names:
+    minItems: 5
+    items:
+      - const: aclk_mst
+      - const: aclk_slv
+      - const: aclk_dbi
+      - const: pclk
+      - const: aux
+      - const: pipe
+      - const: ref
+
+  interrupts:
+    minItems: 5
+    items:
+      - description:
+          Combined system interrupt, which is used to signal the following
+          interrupts - phy_link_up, dll_link_up, link_req_rst_not, hp_pme,
+          hp, hp_msi, link_auto_bw, link_auto_bw_msi, bw_mgt, bw_mgt_msi,
+          edma_wr, edma_rd, dpa_sub_upd, rbar_update, link_eq_req, ep_elbi_app
+      - description:
+          Combined PM interrupt, which is used to signal the following
+          interrupts - linkst_in_l1sub, linkst_in_l1, linkst_in_l2,
+          linkst_in_l0s, linkst_out_l1sub, linkst_out_l1, linkst_out_l2,
+          linkst_out_l0s, pm_dstate_update
+      - description:
+          Combined message interrupt, which is used to signal the following
+          interrupts - ven_msg, unlock_msg, ltr_msg, cfg_pme, cfg_pme_msi,
+          pm_pme, pm_to_ack, pm_turnoff, obff_idle, obff_obff, obff_cpu_active
+      - description:
+          Combined legacy interrupt, which is used to signal the following
+          interrupts - inta, intb, intc, intd, tx_inta, tx_intb, tx_intc,
+          tx_intd
+      - description:
+          Combined error interrupt, which is used to signal the following
+          interrupts - aer_rc_err, aer_rc_err_msi, rx_cpl_timeout,
+          tx_cpl_timeout, cor_err_sent, nf_err_sent, f_err_sent, cor_err_rx,
+          nf_err_rx, f_err_rx, radm_qoverflow
+      - description:
+          eDMA write channel 0 interrupt
+      - description:
+          eDMA write channel 1 interrupt
+      - description:
+          eDMA read channel 0 interrupt
+      - description:
+          eDMA read channel 1 interrupt
+
+  interrupt-names:
+    minItems: 5
+    items:
+      - const: sys
+      - const: pmc
+      - const: msg
+      - const: legacy
+      - const: err
+      - const: dma0
+      - const: dma1
+      - const: dma2
+      - const: dma3
+
+  num-lanes: true
+
+  phys:
+    maxItems: 1
+
+  phy-names:
+    const: pcie-phy
+
+  power-domains:
+    maxItems: 1
+
+  resets:
+    minItems: 1
+    maxItems: 2
+
+  reset-names:
+    oneOf:
+      - const: pipe
+      - items:
+          - const: pwr
+          - const: pipe
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - clocks
+  - clock-names
+  - num-lanes
+  - phys
+  - phy-names
+  - power-domains
+  - resets
+  - reset-names
+
+additionalProperties: true
+
+...
diff --git a/Bindings/pci/rockchip-dw-pcie-ep.yaml b/Bindings/pci/rockchip-dw-pcie-ep.yaml
new file mode 100644 (file)
index 0000000..f2d1137
--- /dev/null
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pci/rockchip-dw-pcie-ep.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: DesignWare based PCIe Endpoint controller on Rockchip SoCs
+
+maintainers:
+  - Niklas Cassel <cassel@kernel.org>
+
+description: |+
+  RK3588 SoC PCIe Endpoint controller is based on the Synopsys DesignWare
+  PCIe IP and thus inherits all the common properties defined in
+  snps,dw-pcie-ep.yaml.
+
+allOf:
+  - $ref: /schemas/pci/snps,dw-pcie-ep.yaml#
+  - $ref: /schemas/pci/rockchip-dw-pcie-common.yaml#
+
+properties:
+  compatible:
+    enum:
+      - rockchip,rk3568-pcie-ep
+      - rockchip,rk3588-pcie-ep
+
+  reg:
+    items:
+      - description: Data Bus Interface (DBI) registers
+      - description: Data Bus Interface (DBI) shadow registers
+      - description: Rockchip designed configuration registers
+      - description: Memory region used to map remote RC address space
+      - description: Internal Address Translation Unit (iATU) registers
+
+  reg-names:
+    items:
+      - const: dbi
+      - const: dbi2
+      - const: apb
+      - const: addr_space
+      - const: atu
+
+required:
+  - interrupts
+  - interrupt-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/rockchip,rk3588-cru.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/power/rk3588-power.h>
+    #include <dt-bindings/reset/rockchip,rk3588-cru.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        pcie3x4_ep: pcie-ep@fe150000 {
+            compatible = "rockchip,rk3588-pcie-ep";
+            reg = <0xa 0x40000000 0x0 0x00100000>,
+                  <0xa 0x40100000 0x0 0x00100000>,
+                  <0x0 0xfe150000 0x0 0x00010000>,
+                  <0x9 0x00000000 0x0 0x40000000>,
+                  <0xa 0x40300000 0x0 0x00100000>;
+            reg-names = "dbi", "dbi2", "apb", "addr_space", "atu";
+            clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>,
+                     <&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>,
+                     <&cru CLK_PCIE_AUX0>, <&cru CLK_PCIE4L_PIPE>;
+            clock-names = "aclk_mst", "aclk_slv",
+                          "aclk_dbi", "pclk",
+                          "aux", "pipe";
+            interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH 0>,
+                         <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH 0>,
+                         <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH 0>,
+                         <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH 0>,
+                         <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH 0>,
+                         <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH 0>,
+                         <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH 0>,
+                         <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH 0>,
+                         <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH 0>;
+            interrupt-names = "sys", "pmc", "msg", "legacy", "err",
+                              "dma0", "dma1", "dma2", "dma3";
+            max-link-speed = <3>;
+            num-lanes = <4>;
+            phys = <&pcie30phy>;
+            phy-names = "pcie-phy";
+            power-domains = <&power RK3588_PD_PCIE>;
+            resets = <&cru SRST_PCIE0_POWER_UP>, <&cru SRST_P_PCIE0>;
+            reset-names = "pwr", "pipe";
+        };
+    };
+...
index 5f719218c472c8476ae8fbfb6b65b898fe49ff6b..550d8a684af3fabc173cc6f9fc211688174f6954 100644 (file)
@@ -4,7 +4,7 @@
 $id: http://devicetree.org/schemas/pci/rockchip-dw-pcie.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: DesignWare based PCIe controller on Rockchip SoCs
+title: DesignWare based PCIe Root Complex controller on Rockchip SoCs
 
 maintainers:
   - Shawn Lin <shawn.lin@rock-chips.com>
@@ -12,12 +12,13 @@ maintainers:
   - Heiko Stuebner <heiko@sntech.de>
 
 description: |+
-  RK3568 SoC PCIe host controller is based on the Synopsys DesignWare
+  RK3568 SoC PCIe Root Complex controller is based on the Synopsys DesignWare
   PCIe IP and thus inherits all the common properties defined in
   snps,dw-pcie.yaml.
 
 allOf:
   - $ref: /schemas/pci/snps,dw-pcie.yaml#
+  - $ref: /schemas/pci/rockchip-dw-pcie-common.yaml#
 
 properties:
   compatible:
@@ -40,61 +41,6 @@ properties:
       - const: apb
       - const: config
 
-  clocks:
-    minItems: 5
-    items:
-      - description: AHB clock for PCIe master
-      - description: AHB clock for PCIe slave
-      - description: AHB clock for PCIe dbi
-      - description: APB clock for PCIe
-      - description: Auxiliary clock for PCIe
-      - description: PIPE clock
-      - description: Reference clock for PCIe
-
-  clock-names:
-    minItems: 5
-    items:
-      - const: aclk_mst
-      - const: aclk_slv
-      - const: aclk_dbi
-      - const: pclk
-      - const: aux
-      - const: pipe
-      - const: ref
-
-  interrupts:
-    items:
-      - description:
-          Combined system interrupt, which is used to signal the following
-          interrupts - phy_link_up, dll_link_up, link_req_rst_not, hp_pme,
-          hp, hp_msi, link_auto_bw, link_auto_bw_msi, bw_mgt, bw_mgt_msi,
-          edma_wr, edma_rd, dpa_sub_upd, rbar_update, link_eq_req, ep_elbi_app
-      - description:
-          Combined PM interrupt, which is used to signal the following
-          interrupts - linkst_in_l1sub, linkst_in_l1, linkst_in_l2,
-          linkst_in_l0s, linkst_out_l1sub, linkst_out_l1, linkst_out_l2,
-          linkst_out_l0s, pm_dstate_update
-      - description:
-          Combined message interrupt, which is used to signal the following
-          interrupts - ven_msg, unlock_msg, ltr_msg, cfg_pme, cfg_pme_msi,
-          pm_pme, pm_to_ack, pm_turnoff, obff_idle, obff_obff, obff_cpu_active
-      - description:
-          Combined legacy interrupt, which is used to signal the following
-          interrupts - inta, intb, intc, intd
-      - description:
-          Combined error interrupt, which is used to signal the following
-          interrupts - aer_rc_err, aer_rc_err_msi, rx_cpl_timeout,
-          tx_cpl_timeout, cor_err_sent, nf_err_sent, f_err_sent, cor_err_rx,
-          nf_err_rx, f_err_rx, radm_qoverflow
-
-  interrupt-names:
-    items:
-      - const: sys
-      - const: pmc
-      - const: msg
-      - const: legacy
-      - const: err
-
   legacy-interrupt-controller:
     description: Interrupt controller node for handling legacy PCI interrupts.
     type: object
@@ -119,47 +65,14 @@ properties:
 
   msi-map: true
 
-  num-lanes: true
-
-  phys:
-    maxItems: 1
-
-  phy-names:
-    const: pcie-phy
-
-  power-domains:
-    maxItems: 1
-
   ranges:
     minItems: 2
     maxItems: 3
 
-  resets:
-    minItems: 1
-    maxItems: 2
-
-  reset-names:
-    oneOf:
-      - const: pipe
-      - items:
-          - const: pwr
-          - const: pipe
-
   vpcie3v3-supply: true
 
 required:
-  - compatible
-  - reg
-  - reg-names
-  - clocks
-  - clock-names
   - msi-map
-  - num-lanes
-  - phys
-  - phy-names
-  - power-domains
-  - resets
-  - reset-names
 
 unevaluatedProperties: false
 
index bbdb01d2284838c1f47c73b195c1b533b9f5f8e2..f474b9e3fc7e21d54724bbfaf05a35faeee4fbed 100644 (file)
@@ -100,7 +100,7 @@ properties:
             for new bindings.
           oneOf:
             - description: See native 'elbi/app' CSR region for details.
-              enum: [ link, appl ]
+              enum: [ apb, link, appl ]
             - description: See native 'atu' CSR region for details.
               enum: [ atu_dma ]
     allOf:
@@ -151,12 +151,21 @@ properties:
             Application-specific IRQ raised depending on the vendor-specific
             events basis.
           const: app
+        - description:
+            Interrupts triggered when the controller itself (in Endpoint mode)
+            has sent an Assert_INT{A,B,C,D}/Desassert_INT{A,B,C,D} message to
+            the upstream device.
+          pattern: "^tx_int(a|b|c|d)$"
+        - description:
+            Combined interrupt signal raised when the controller has sent an
+            Assert_INT{A,B,C,D} message. See "^tx_int(a|b|c|d)$" for details.
+          const: legacy
         - description:
             Vendor-specific IRQ names. Consider using the generic names above
             for new bindings.
           oneOf:
             - description: See native "app" IRQ for details
-              enum: [ intr ]
+              enum: [ intr, sys, pmc, msg, err ]
 
   max-functions:
     maximum: 32
diff --git a/Bindings/pci/starfive,jh7110-pcie.yaml b/Bindings/pci/starfive,jh7110-pcie.yaml
new file mode 100644 (file)
index 0000000..67151aa
--- /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/pci/starfive,jh7110-pcie.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: StarFive JH7110 PCIe host controller
+
+maintainers:
+  - Kevin Xie <kevin.xie@starfivetech.com>
+
+allOf:
+  - $ref: plda,xpressrich3-axi-common.yaml#
+
+properties:
+  compatible:
+    const: starfive,jh7110-pcie
+
+  clocks:
+    items:
+      - description: NOC bus clock
+      - description: Transport layer clock
+      - description: AXI MST0 clock
+      - description: APB clock
+
+  clock-names:
+    items:
+      - const: noc
+      - const: tl
+      - const: axi_mst0
+      - const: apb
+
+  resets:
+    items:
+      - description: AXI MST0 reset
+      - description: AXI SLAVE0 reset
+      - description: AXI SLAVE reset
+      - description: PCIE BRIDGE reset
+      - description: PCIE CORE reset
+      - description: PCIE APB reset
+
+  reset-names:
+    items:
+      - const: mst0
+      - const: slv0
+      - const: slv
+      - const: brg
+      - const: core
+      - const: apb
+
+  starfive,stg-syscon:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    description:
+      The phandle to System Register Controller syscon node.
+
+  perst-gpios:
+    description: GPIO controlled connection to PERST# signal
+    maxItems: 1
+
+  phys:
+    description:
+      Specified PHY is attached to PCIe controller.
+    maxItems: 1
+
+required:
+  - clocks
+  - resets
+  - starfive,stg-syscon
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        pcie@940000000 {
+            compatible = "starfive,jh7110-pcie";
+            reg = <0x9 0x40000000 0x0 0x10000000>,
+                  <0x0 0x2b000000 0x0 0x1000000>;
+            reg-names = "cfg", "apb";
+            #address-cells = <3>;
+            #size-cells = <2>;
+            #interrupt-cells = <1>;
+            device_type = "pci";
+            ranges = <0x82000000  0x0 0x30000000  0x0 0x30000000 0x0 0x08000000>,
+                     <0xc3000000  0x9 0x00000000  0x9 0x00000000 0x0 0x40000000>;
+            starfive,stg-syscon = <&stg_syscon>;
+            bus-range = <0x0 0xff>;
+            interrupt-parent = <&plic>;
+            interrupts = <56>;
+            interrupt-map-mask = <0x0 0x0 0x0 0x7>;
+            interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc0 0x1>,
+                            <0x0 0x0 0x0 0x2 &pcie_intc0 0x2>,
+                            <0x0 0x0 0x0 0x3 &pcie_intc0 0x3>,
+                            <0x0 0x0 0x0 0x4 &pcie_intc0 0x4>;
+            msi-controller;
+            clocks = <&syscrg 86>,
+                     <&stgcrg 10>,
+                     <&stgcrg 8>,
+                     <&stgcrg 9>;
+            clock-names = "noc", "tl", "axi_mst0", "apb";
+            resets = <&stgcrg 11>,
+                     <&stgcrg 12>,
+                     <&stgcrg 13>,
+                     <&stgcrg 14>,
+                     <&stgcrg 15>,
+                     <&stgcrg 16>;
+            perst-gpios = <&gpios 26 GPIO_ACTIVE_LOW>;
+            phys = <&pciephy0>;
+
+            pcie_intc0: interrupt-controller {
+                #address-cells = <0>;
+                #interrupt-cells = <1>;
+                interrupt-controller;
+            };
+        };
+    };
index 4770ce02fcc3c595f5861f55df5276f653713cb0..989fb0fa257709ade197943bbc236e8349447896 100644 (file)
@@ -92,7 +92,7 @@ examples:
                                        <0 0 0 3 &pcie_intc_0 2>,
                                        <0 0 0 4 &pcie_intc_0 3>;
                        bus-range = <0x00 0xff>;
-                       ranges = <0x02000000 0x0 0xe0000000 0x0 0xe0000000 0x0 0x10000000>,
+                       ranges = <0x02000000 0x0 0xe0010000 0x0 0xe0010000 0x0 0x10000000>,
                                 <0x43000000 0x80 0x00000000 0x80 0x00000000 0x0 0x80000000>;
                        msi-map = <0x0 &its_gic 0x0 0x10000>;
                        reg = <0x0 0xfca10000 0x0 0x1000>,
index 6c96a4204e5d68f7dc42d7bddd0ef6a28b9edcdd..37e8b98f2cdc10915b9ab91fd202fda73478f9be 100644 (file)
@@ -30,6 +30,9 @@ properties:
       - items:
           - const: fsl,imx8dxl-ddr-pmu
           - const: fsl,imx8-ddr-pmu
+      - items:
+          - const: fsl,imx95-ddr-pmu
+          - const: fsl,imx93-ddr-pmu
 
   reg:
     maxItems: 1
diff --git a/Bindings/phy/airoha,en7581-pcie-phy.yaml b/Bindings/phy/airoha,en7581-pcie-phy.yaml
new file mode 100644 (file)
index 0000000..98fcb1b
--- /dev/null
@@ -0,0 +1,69 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/airoha,en7581-pcie-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Airoha EN7581 PCI-Express PHY
+
+maintainers:
+  - Lorenzo Bianconi <lorenzo@kernel.org>
+
+description:
+  The PCIe PHY supports physical layer functionality for PCIe Gen2/Gen3 port.
+
+properties:
+  compatible:
+    const: airoha,en7581-pcie-phy
+
+  reg:
+    items:
+      - description: PCIE analog base address
+      - description: PCIE lane0 base address
+      - description: PCIE lane1 base address
+      - description: PCIE lane0 detection time base address
+      - description: PCIE lane1 detection time base address
+      - description: PCIE Rx AEQ base address
+
+  reg-names:
+    items:
+      - const: csr-2l
+      - const: pma0
+      - const: pma1
+      - const: p0-xr-dtime
+      - const: p1-xr-dtime
+      - const: rx-aeq
+
+  "#phy-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - "#phy-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/phy/phy.h>
+
+    soc {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        phy@11e80000 {
+            compatible = "airoha,en7581-pcie-phy";
+            #phy-cells = <0>;
+            reg = <0x0 0x1fa5a000 0x0 0xfff>,
+                  <0x0 0x1fa5b000 0x0 0xfff>,
+                  <0x0 0x1fa5c000 0x0 0xfff>,
+                  <0x0 0x1fc10044 0x0 0x4>,
+                  <0x0 0x1fc30044 0x0 0x4>,
+                  <0x0 0x1fc15030 0x0 0x104>;
+            reg-names = "csr-2l", "pma0", "pma1",
+                        "p0-xr-dtime", "p1-xr-dtime",
+                        "rx-aeq";
+        };
+    };
index 0031fb6a4e76c9e45dae38df346585835538e98b..1a0c436b87a099c1343fd7dd8e5e491fa4c08247 100644 (file)
@@ -41,6 +41,9 @@ properties:
       Phandle to a regulator that provides power to the PHY. This
       regulator will be managed during the PHY power on/off sequence.
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
diff --git a/Bindings/phy/fsl,imx8qm-hsio.yaml b/Bindings/phy/fsl,imx8qm-hsio.yaml
new file mode 100644 (file)
index 0000000..147bbfd
--- /dev/null
@@ -0,0 +1,164 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/fsl,imx8qm-hsio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale i.MX8QM SoC series High Speed IO(HSIO) SERDES PHY
+
+maintainers:
+  - Richard Zhu <hongxing.zhu@nxp.com>
+
+properties:
+  compatible:
+    enum:
+      - fsl,imx8qm-hsio
+      - fsl,imx8qxp-hsio
+  reg:
+    items:
+      - description: Base address and length of the PHY block
+      - description: HSIO control and status registers(CSR) of the PHY
+      - description: HSIO CSR of the controller bound to the PHY
+      - description: HSIO CSR for MISC
+
+  reg-names:
+    items:
+      - const: reg
+      - const: phy
+      - const: ctrl
+      - const: misc
+
+  "#phy-cells":
+    const: 3
+    description:
+      The first defines lane index.
+      The second defines the type of the PHY refer to the include phy.h.
+      The third defines the controller index, indicated which controller
+      is bound to the lane.
+
+  clocks:
+    minItems: 5
+    maxItems: 14
+
+  clock-names:
+    minItems: 5
+    maxItems: 14
+
+  fsl,hsio-cfg:
+    description: |
+      Specifies the use case of the HSIO module in the hardware design.
+      Regarding the design of i.MX8QM HSIO subsystem, HSIO module can be
+      confiured as following three use cases.
+      +---------------------------------------+
+      |                  | i.MX8QM            |
+      |------------------|--------------------|
+      |                  | Lane0| Lane1| Lane2|
+      |------------------|------|------|------|
+      | pciea-x2-sata    | PCIEA| PCIEA| SATA |
+      |------------------|------|------|------|
+      | pciea-x2-pcieb   | PCIEA| PCIEA| PCIEB|
+      |------------------|------|------|------|
+      | pciea-pcieb-sata | PCIEA| PCIEB| SATA |
+      +---------------------------------------+
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [ pciea-x2-sata, pciea-x2-pcieb, pciea-pcieb-sata]
+    default: pciea-pcieb-sata
+
+  fsl,refclk-pad-mode:
+    description:
+      Specifies the mode of the refclk pad used. INPUT(PHY refclock is
+      provided externally via the refclk pad) or OUTPUT(PHY refclock is
+      derived from SoC internal source and provided on the refclk pad).
+      This property not exists means unused(PHY refclock is derived from
+      SoC internal source).
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [ input, output, unused ]
+    default: unused
+
+  power-domains:
+    minItems: 1
+    maxItems: 2
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - "#phy-cells"
+  - clocks
+  - clock-names
+  - fsl,hsio-cfg
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx8qxp-hsio
+    then:
+      properties:
+        clock-names:
+          items:
+            - const: pclk0
+            - const: apb_pclk0
+            - const: phy0_crr
+            - const: ctl0_crr
+            - const: misc_crr
+        power-domains:
+          maxItems: 1
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx8qm-hsio
+    then:
+      properties:
+        clock-names:
+          items:
+            - const: pclk0
+            - const: pclk1
+            - const: apb_pclk0
+            - const: apb_pclk1
+            - const: pclk2
+            - const: epcs_tx
+            - const: epcs_rx
+            - const: apb_pclk2
+            - const: phy0_crr
+            - const: phy1_crr
+            - const: ctl0_crr
+            - const: ctl1_crr
+            - const: ctl2_crr
+            - const: misc_crr
+        power-domains:
+          minItems: 2
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/imx8-clock.h>
+    #include <dt-bindings/clock/imx8-lpcg.h>
+    #include <dt-bindings/firmware/imx/rsrc.h>
+    #include <dt-bindings/phy/phy-imx8-pcie.h>
+
+    phy@5f1a0000 {
+        compatible = "fsl,imx8qxp-hsio";
+        reg = <0x5f1a0000 0x10000>,
+              <0x5f120000 0x10000>,
+              <0x5f140000 0x10000>,
+              <0x5f160000 0x10000>;
+        reg-names = "reg", "phy", "ctrl", "misc";
+        clocks = <&phyx1_lpcg IMX_LPCG_CLK_0>,
+                 <&phyx1_lpcg IMX_LPCG_CLK_4>,
+                 <&phyx1_crr1_lpcg IMX_LPCG_CLK_4>,
+                 <&pcieb_crr3_lpcg IMX_LPCG_CLK_4>,
+                 <&misc_crr5_lpcg IMX_LPCG_CLK_4>;
+        clock-names = "pclk0", "apb_pclk0", "phy0_crr", "ctl0_crr", "misc_crr";
+        power-domains = <&pd IMX_SC_R_SERDES_1>;
+        #phy-cells = <3>;
+        fsl,hsio-cfg = "pciea-pcieb-sata";
+        fsl,refclk-pad-mode = "input";
+    };
+...
index 9ce7b4c6d20888f098c249a4a85fdac698a94dfb..2ef02aac042a38aa170b31ac3c5c23a92207c3b1 100644 (file)
@@ -41,6 +41,12 @@ properties:
       Phandle to the system controller node
     $ref: /schemas/types.yaml#/definitions/phandle
 
+  swap-dx-lanes:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description: |
+      Specifies the ports which will swap the differential-pair (D+/D-),
+      default is not-swapped.
+
 # Required child nodes:
 
 patternProperties:
index 634cec5d57ea85b89ba9cafe01ebba3dd5f7c584..58ce2d91d28c7f7776f9d13968b8e22193430055 100644 (file)
@@ -19,6 +19,8 @@ properties:
       - qcom,ipq6018-qmp-pcie-phy
       - qcom,ipq8074-qmp-gen3-pcie-phy
       - qcom,ipq8074-qmp-pcie-phy
+      - qcom,ipq9574-qmp-gen3x1-pcie-phy
+      - qcom,ipq9574-qmp-gen3x2-pcie-phy
 
   reg:
     items:
index 16634f73bdcff362859ca19afa4b57a03724d776..03dbd02cf9e79fa7c604ccea33551e642106514f 100644 (file)
@@ -91,8 +91,7 @@ properties:
   "#clock-cells": true
 
   clock-output-names:
-    minItems: 1
-    maxItems: 2
+    maxItems: 1
 
   "#phy-cells":
     const: 0
@@ -222,14 +221,10 @@ allOf:
               - qcom,sm8650-qmp-gen4x2-pcie-phy
     then:
       properties:
-        clock-output-names:
-          minItems: 2
         "#clock-cells":
           const: 1
     else:
       properties:
-        clock-output-names:
-          maxItems: 1
         "#clock-cells":
           const: 0
 
index 325585bc881bac456875846668aa0c3e2f1c9758..0e0b6cae07bc7cb97542dc810a8792236607252b 100644 (file)
@@ -20,8 +20,9 @@ properties:
       - qcom,ipq8074-qmp-usb3-phy
       - qcom,ipq9574-qmp-usb3-phy
       - qcom,msm8996-qmp-usb3-phy
-      - com,qdu1000-qmp-usb3-uni-phy
+      - qcom,qdu1000-qmp-usb3-uni-phy
       - qcom,sa8775p-qmp-usb3-uni-phy
+      - qcom,sc8180x-qmp-usb3-uni-phy
       - qcom,sc8280xp-qmp-usb3-uni-phy
       - qcom,sdm845-qmp-usb3-uni-phy
       - qcom,sdx55-qmp-usb3-uni-phy
@@ -112,6 +113,7 @@ allOf:
             enum:
               - qcom,qdu1000-qmp-usb3-uni-phy
               - qcom,sa8775p-qmp-usb3-uni-phy
+              - qcom,sc8180x-qmp-usb3-uni-phy
               - qcom,sc8280xp-qmp-usb3-uni-phy
               - qcom,sm8150-qmp-usb3-uni-phy
               - qcom,sm8250-qmp-usb3-uni-phy
@@ -152,6 +154,7 @@ allOf:
           contains:
             enum:
               - qcom,sa8775p-qmp-usb3-uni-phy
+              - qcom,sc8180x-qmp-usb3-uni-phy
               - qcom,sc8280xp-qmp-usb3-uni-phy
               - qcom,x1e80100-qmp-usb3-uni-phy
     then:
index f042d6af15949fb6ab4476d56c0e25c25f9d2c91..e03b516c698ccbdf1a9f7777bf6b792ad69fd202 100644 (file)
@@ -15,6 +15,7 @@ if:
       contains:
         enum:
           - qcom,usb-hs-phy-apq8064
+          - qcom,usb-hs-phy-msm8660
           - qcom,usb-hs-phy-msm8960
 then:
   properties:
@@ -41,6 +42,7 @@ properties:
       - enum:
           - qcom,usb-hs-phy-apq8064
           - qcom,usb-hs-phy-msm8226
+          - qcom,usb-hs-phy-msm8660
           - qcom,usb-hs-phy-msm8916
           - qcom,usb-hs-phy-msm8960
           - qcom,usb-hs-phy-msm8974
diff --git a/Bindings/phy/rockchip,rk3399-emmc-phy.yaml b/Bindings/phy/rockchip,rk3399-emmc-phy.yaml
new file mode 100644 (file)
index 0000000..3e3729b
--- /dev/null
@@ -0,0 +1,64 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/rockchip,rk3399-emmc-phy.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip EMMC PHY
+
+maintainers:
+  - Heiko Stuebner <heiko@sntech.de>
+
+properties:
+  compatible:
+    const: rockchip,rk3399-emmc-phy
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: emmcclk
+
+  drive-impedance-ohm:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Specifies the drive impedance in Ohm.
+    enum: [33, 40, 50, 66, 100]
+    default: 50
+
+  rockchip,enable-strobe-pulldown:
+    type: boolean
+    description: |
+      Enable internal pull-down for the strobe
+      line.  If not set, pull-down is not used.
+
+  rockchip,output-tapdelay-select:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Specifies the phyctrl_otapdlysec register.
+    default: 0x4
+    maximum: 0xf
+
+  "#phy-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - "#phy-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    phy@f780 {
+      compatible = "rockchip,rk3399-emmc-phy";
+      reg = <0xf780 0x20>;
+      clocks = <&sdhci>;
+      clock-names = "emmcclk";
+      drive-impedance-ohm = <50>;
+      #phy-cells = <0>;
+    };
diff --git a/Bindings/phy/rockchip-emmc-phy.txt b/Bindings/phy/rockchip-emmc-phy.txt
deleted file mode 100644 (file)
index 57d28c0..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-Rockchip EMMC PHY
------------------------
-
-Required properties:
- - compatible: rockchip,rk3399-emmc-phy
- - #phy-cells: must be 0
- - reg: PHY register address offset and length in "general
-   register files"
-
-Optional properties:
- - clock-names: Should contain "emmcclk".  Although this is listed as optional
-               (because most boards can get basic functionality without having
-               access to it), it is strongly suggested.
-               See ../clock/clock-bindings.txt for details.
- - clocks: Should have a phandle to the card clock exported by the SDHCI driver.
- - drive-impedance-ohm: Specifies the drive impedance in Ohm.
-                        Possible values are 33, 40, 50, 66 and 100.
-                        If not set, the default value of 50 will be applied.
- - rockchip,enable-strobe-pulldown: Enable internal pull-down for the strobe
-                                    line.  If not set, pull-down is not used.
- - rockchip,output-tapdelay-select: Specifies the phyctrl_otapdlysec register.
-                                    If not set, the register defaults to 0x4.
-                                    Maximum value 0xf.
-
-Example:
-
-
-grf: syscon@ff770000 {
-       compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
-       #address-cells = <1>;
-       #size-cells = <1>;
-
-...
-
-       emmcphy: phy@f780 {
-               compatible = "rockchip,rk3399-emmc-phy";
-               reg = <0xf780 0x20>;
-               clocks = <&sdhci>;
-               clock-names = "emmcclk";
-               drive-impedance-ohm = <50>;
-               #phy-cells = <0>;
-       };
-};
index 452e584d98121fb86c0bed983fe11d97d8c0de68..16321cdd4919cd00228c35e3c1676e7954077591 100644 (file)
@@ -25,6 +25,7 @@ description: |
 properties:
   compatible:
     enum:
+      - google,gs101-usb31drd-phy
       - samsung,exynos5250-usbdrd-phy
       - samsung,exynos5420-usbdrd-phy
       - samsung,exynos5433-usbdrd-phy
@@ -57,7 +58,15 @@ properties:
       the OF graph bindings specified.
 
   reg:
-    maxItems: 1
+    minItems: 1
+    maxItems: 3
+
+  reg-names:
+    minItems: 1
+    items:
+      - const: phy
+      - const: pcs
+      - const: pma
 
   samsung,pmu-syscon:
     $ref: /schemas/types.yaml#/definitions/phandle
@@ -72,6 +81,19 @@ properties:
     description:
       VBUS Boost 5V power source.
 
+  pll-supply:
+    description: Power supply for the USB PLL.
+  dvdd-usb20-supply:
+    description: DVDD power supply for the USB 2.0 phy.
+  vddh-usb20-supply:
+    description: VDDh power supply for the USB 2.0 phy.
+  vdd33-usb20-supply:
+    description: 3.3V power supply for the USB 2.0 phy.
+  vdda-usbdp-supply:
+    description: VDDa power supply for the USB DP phy.
+  vddh-usbdp-supply:
+    description: VDDh power supply for the USB DP phy.
+
 required:
   - compatible
   - clocks
@@ -81,6 +103,40 @@ required:
   - samsung,pmu-syscon
 
 allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: google,gs101-usb31drd-phy
+    then:
+      properties:
+        clocks:
+          items:
+            - description: Gate of main PHY clock
+            - description: Gate of PHY reference clock
+            - description: Gate of control interface AXI clock
+            - description: Gate of control interface APB clock
+            - description: Gate of SCL APB clock
+        clock-names:
+          items:
+            - const: phy
+            - const: ref
+            - const: ctrl_aclk
+            - const: ctrl_pclk
+            - const: scl_pclk
+        reg:
+          minItems: 3
+        reg-names:
+          minItems: 3
+      required:
+        - reg-names
+        - pll-supply
+        - dvdd-usb20-supply
+        - vddh-usb20-supply
+        - vdd33-usb20-supply
+        - vdda-usbdp-supply
+        - vddh-usbdp-supply
+
   - if:
       properties:
         compatible:
@@ -100,7 +156,20 @@ allOf:
             - const: phy_utmi
             - const: phy_pipe
             - const: itp
-    else:
+        reg:
+          maxItems: 1
+        reg-names:
+          maxItems: 1
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - samsung,exynos5250-usbdrd-phy
+              - samsung,exynos5420-usbdrd-phy
+              - samsung,exynos850-usbdrd-phy
+    then:
       properties:
         clocks:
           minItems: 2
@@ -109,6 +178,10 @@ allOf:
           items:
             - const: phy
             - const: ref
+        reg:
+          maxItems: 1
+        reg-names:
+          maxItems: 1
 
 additionalProperties: false
 
diff --git a/Bindings/phy/starfive,jh7110-dphy-tx.yaml b/Bindings/phy/starfive,jh7110-dphy-tx.yaml
new file mode 100644 (file)
index 0000000..4a06a26
--- /dev/null
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/phy/starfive,jh7110-dphy-tx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Starfive SoC MIPI D-PHY Tx Controller
+
+maintainers:
+  - Keith Zhao <keith.zhao@starfivetech.com>
+  - Shengyang Chen <shengyang.chen@starfivetech.com>
+
+description:
+  The Starfive SoC uses the MIPI DSI D-PHY based on M31 IP to transfer
+  DSI data.
+
+properties:
+  compatible:
+    const: starfive,jh7110-dphy-tx
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: txesc
+
+  resets:
+    items:
+      - description: MIPITX_DPHY_SYS reset
+
+  reset-names:
+    items:
+      - const: sys
+
+  power-domains:
+    maxItems: 1
+
+  "#phy-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - resets
+  - reset-names
+  - power-domains
+  - "#phy-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    phy@295e0000 {
+      compatible = "starfive,jh7110-dphy-tx";
+      reg = <0x295e0000 0x10000>;
+      clocks = <&voutcrg 14>;
+      clock-names = "txesc";
+      resets = <&syscrg 10>;
+      reset-names = "sys";
+      power-domains = <&aon_syscon 0>;
+      #phy-cells = <0>;
+    };
index 37c0a74c7c01a3dfa9067c21eb34066ef6956ce7..23ed9a8b6689fbdefa7ecb48252dfcda2217d193 100644 (file)
@@ -35,22 +35,159 @@ additionalProperties:
 
   patternProperties:
     "^function|groups$":
-      enum: [ ACPI, ADC0, ADC1, ADC10, ADC11, ADC12, ADC13, ADC14, ADC15,
-              ADC2, ADC3, ADC4, ADC5, ADC6, ADC7, ADC8, ADC9, BMCINT, DDCCLK, DDCDAT,
-              EXTRST, FLACK, FLBUSY, FLWP, GPID, GPID0, GPID2, GPID4, GPID6, GPIE0,
-              GPIE2, GPIE4, GPIE6, I2C10, I2C11, I2C12, I2C13, I2C14, I2C3, I2C4,
-              I2C5, I2C6, I2C7, I2C8, I2C9, LPCPD, LPCPME, LPCRST, LPCSMI, MAC1LINK,
-              MAC2LINK, MDIO1, MDIO2, NCTS1, NCTS2, NCTS3, NCTS4, NDCD1, NDCD2,
-              NDCD3, NDCD4, NDSR1, NDSR2, NDSR3, NDSR4, NDTR1, NDTR2, NDTR3, NDTR4,
-              NDTS4, NRI1, NRI2, NRI3, NRI4, NRTS1, NRTS2, NRTS3, OSCCLK, PWM0,
-              PWM1, PWM2, PWM3, PWM4, PWM5, PWM6, PWM7, RGMII1, RGMII2, RMII1,
-              RMII2, ROM16, ROM8, ROMCS1, ROMCS2, ROMCS3, ROMCS4, RXD1, RXD2, RXD3,
-              RXD4, SALT1, SALT2, SALT3, SALT4, SD1, SD2, SGPMCK, SGPMI, SGPMLD,
-              SGPMO, SGPSCK, SGPSI0, SGPSI1, SGPSLD, SIOONCTRL, SIOPBI, SIOPBO,
-              SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1DEBUG, SPI1PASSTHRU,
-              SPICS1, TIMER3, TIMER4, TIMER5, TIMER6, TIMER7, TIMER8, TXD1, TXD2,
-              TXD3, TXD4, UART6, USB11D1, USB11H2, USB2D1, USB2H1, USBCKI, VGABIOS_ROM,
-              VGAHS, VGAVS, VPI18, VPI24, VPI30, VPO12, VPO24, WDTRST1, WDTRST2]
+      enum:
+        - ACPI
+        - ADC0
+        - ADC1
+        - ADC10
+        - ADC11
+        - ADC12
+        - ADC13
+        - ADC14
+        - ADC15
+        - ADC2
+        - ADC3
+        - ADC4
+        - ADC5
+        - ADC6
+        - ADC7
+        - ADC8
+        - ADC9
+        - BMCINT
+        - DDCCLK
+        - DDCDAT
+        - EXTRST
+        - FLACK
+        - FLBUSY
+        - FLWP
+        - GPID
+        - GPID0
+        - GPID2
+        - GPID4
+        - GPID6
+        - GPIE0
+        - GPIE2
+        - GPIE4
+        - GPIE6
+        - I2C10
+        - I2C11
+        - I2C12
+        - I2C13
+        - I2C14
+        - I2C3
+        - I2C4
+        - I2C5
+        - I2C6
+        - I2C7
+        - I2C8
+        - I2C9
+        - LPCPD
+        - LPCPME
+        - LPCRST
+        - LPCSMI
+        - MAC1LINK
+        - MAC2LINK
+        - MDIO1
+        - MDIO2
+        - NCTS1
+        - NCTS2
+        - NCTS3
+        - NCTS4
+        - NDCD1
+        - NDCD2
+        - NDCD3
+        - NDCD4
+        - NDSR1
+        - NDSR2
+        - NDSR3
+        - NDSR4
+        - NDTR1
+        - NDTR2
+        - NDTR3
+        - NDTR4
+        - NDTS4
+        - NRI1
+        - NRI2
+        - NRI3
+        - NRI4
+        - NRTS1
+        - NRTS2
+        - NRTS3
+        - OSCCLK
+        - PWM0
+        - PWM1
+        - PWM2
+        - PWM3
+        - PWM4
+        - PWM5
+        - PWM6
+        - PWM7
+        - RGMII1
+        - RGMII2
+        - RMII1
+        - RMII2
+        - ROM16
+        - ROM8
+        - ROMCS1
+        - ROMCS2
+        - ROMCS3
+        - ROMCS4
+        - RXD1
+        - RXD2
+        - RXD3
+        - RXD4
+        - SALT1
+        - SALT2
+        - SALT3
+        - SALT4
+        - SD1
+        - SD2
+        - SGPMCK
+        - SGPMI
+        - SGPMLD
+        - SGPMO
+        - SGPSCK
+        - SGPSI0
+        - SGPSI1
+        - SGPSLD
+        - SIOONCTRL
+        - SIOPBI
+        - SIOPBO
+        - SIOPWREQ
+        - SIOPWRGD
+        - SIOS3
+        - SIOS5
+        - SIOSCI
+        - SPI1
+        - SPI1DEBUG
+        - SPI1PASSTHRU
+        - SPICS1
+        - TIMER3
+        - TIMER4
+        - TIMER5
+        - TIMER6
+        - TIMER7
+        - TIMER8
+        - TXD1
+        - TXD2
+        - TXD3
+        - TXD4
+        - UART6
+        - USB11D1
+        - USB11H2
+        - USB2D1
+        - USB2H1
+        - USBCKI
+        - VGABIOS_ROM
+        - VGAHS
+        - VGAVS
+        - VPI18
+        - VPI24
+        - VPI30
+        - VPO12
+        - VPO24
+        - WDTRST1
+        - WDTRST2
 
 allOf:
   - $ref: pinctrl.yaml#
index 863da5d80826f309e910dd1afced452b64bb2e17..35bd0e1eadae2c86b1510f138cfe9b87d501f665 100644 (file)
@@ -35,7 +35,7 @@ properties:
     description: |
       A cell of phandles to external controller nodes:
       0: compatible with "aspeed,ast2500-gfx", "syscon"
-      1: compatible with "aspeed,ast2500-lhc", "syscon"
+      1: compatible with "aspeed,ast2500-lpc", "syscon"
 
 additionalProperties:
   $ref: pinmux-node.yaml#
@@ -47,24 +47,174 @@ additionalProperties:
 
   patternProperties:
     "^function|groups$":
-      enum: [ ACPI, ADC0, ADC1, ADC10, ADC11, ADC12, ADC13, ADC14, ADC15,
-              ADC2, ADC3, ADC4, ADC5, ADC6, ADC7, ADC8, ADC9, BMCINT, DDCCLK, DDCDAT,
-              ESPI, FWSPICS1, FWSPICS2, GPID0, GPID2, GPID4, GPID6, GPIE0, GPIE2,
-              GPIE4, GPIE6, I2C10, I2C11, I2C12, I2C13, I2C14, I2C3, I2C4, I2C5,
-              I2C6, I2C7, I2C8, I2C9, LAD0, LAD1, LAD2, LAD3, LCLK, LFRAME, LPCHC,
-              LPCPD, LPCPLUS, LPCPME, LPCRST, LPCSMI, LSIRQ, MAC1LINK, MAC2LINK,
-              MDIO1, MDIO2, NCTS1, NCTS2, NCTS3, NCTS4, NDCD1, NDCD2, NDCD3, NDCD4,
-              NDSR1, NDSR2, NDSR3, NDSR4, NDTR1, NDTR2, NDTR3, NDTR4, NRI1, NRI2,
-              NRI3, NRI4, NRTS1, NRTS2, NRTS3, NRTS4, OSCCLK, PEWAKE, PNOR, PWM0,
-              PWM1, PWM2, PWM3, PWM4, PWM5, PWM6, PWM7, RGMII1, RGMII2, RMII1,
-              RMII2, RXD1, RXD2, RXD3, RXD4, SALT1, SALT10, SALT11, SALT12, SALT13,
-              SALT14, SALT2, SALT3, SALT4, SALT5, SALT6, SALT7, SALT8, SALT9, SCL1,
-              SCL2, SD1, SD2, SDA1, SDA2, SGPS1, SGPS2, SIOONCTRL, SIOPBI, SIOPBO,
-              SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1CS1, SPI1DEBUG,
-              SPI1PASSTHRU, SPI2CK, SPI2CS0, SPI2CS1, SPI2MISO, SPI2MOSI, TIMER3,
-              TIMER4, TIMER5, TIMER6, TIMER7, TIMER8, TXD1, TXD2, TXD3, TXD4, UART6,
-              USB11BHID, USB2AD, USB2AH, USB2BD, USB2BH, USBCKI, VGABIOSROM, VGAHS,
-              VGAVS, VPI24, VPO, WDTRST1, WDTRST2]
+      enum:
+        - ACPI
+        - ADC0
+        - ADC1
+        - ADC10
+        - ADC11
+        - ADC12
+        - ADC13
+        - ADC14
+        - ADC15
+        - ADC2
+        - ADC3
+        - ADC4
+        - ADC5
+        - ADC6
+        - ADC7
+        - ADC8
+        - ADC9
+        - BMCINT
+        - DDCCLK
+        - DDCDAT
+        - ESPI
+        - FWSPICS1
+        - FWSPICS2
+        - GPID0
+        - GPID2
+        - GPID4
+        - GPID6
+        - GPIE0
+        - GPIE2
+        - GPIE4
+        - GPIE6
+        - I2C10
+        - I2C11
+        - I2C12
+        - I2C13
+        - I2C14
+        - I2C3
+        - I2C4
+        - I2C5
+        - I2C6
+        - I2C7
+        - I2C8
+        - I2C9
+        - LAD0
+        - LAD1
+        - LAD2
+        - LAD3
+        - LCLK
+        - LFRAME
+        - LPCHC
+        - LPCPD
+        - LPCPLUS
+        - LPCPME
+        - LPCRST
+        - LPCSMI
+        - LSIRQ
+        - MAC1LINK
+        - MAC2LINK
+        - MDIO1
+        - MDIO2
+        - NCTS1
+        - NCTS2
+        - NCTS3
+        - NCTS4
+        - NDCD1
+        - NDCD2
+        - NDCD3
+        - NDCD4
+        - NDSR1
+        - NDSR2
+        - NDSR3
+        - NDSR4
+        - NDTR1
+        - NDTR2
+        - NDTR3
+        - NDTR4
+        - NRI1
+        - NRI2
+        - NRI3
+        - NRI4
+        - NRTS1
+        - NRTS2
+        - NRTS3
+        - NRTS4
+        - OSCCLK
+        - PEWAKE
+        - PNOR
+        - PWM0
+        - PWM1
+        - PWM2
+        - PWM3
+        - PWM4
+        - PWM5
+        - PWM6
+        - PWM7
+        - RGMII1
+        - RGMII2
+        - RMII1
+        - RMII2
+        - RXD1
+        - RXD2
+        - RXD3
+        - RXD4
+        - SALT1
+        - SALT10
+        - SALT11
+        - SALT12
+        - SALT13
+        - SALT14
+        - SALT2
+        - SALT3
+        - SALT4
+        - SALT5
+        - SALT6
+        - SALT7
+        - SALT8
+        - SALT9
+        - SCL1
+        - SCL2
+        - SD1
+        - SD2
+        - SDA1
+        - SDA2
+        - SGPM
+        - SGPS1
+        - SGPS2
+        - SIOONCTRL
+        - SIOPBI
+        - SIOPBO
+        - SIOPWREQ
+        - SIOPWRGD
+        - SIOS3
+        - SIOS5
+        - SIOSCI
+        - SPI1
+        - SPI1CS1
+        - SPI1DEBUG
+        - SPI1PASSTHRU
+        - SPI2CK
+        - SPI2CS0
+        - SPI2CS1
+        - SPI2MISO
+        - SPI2MOSI
+        - TIMER3
+        - TIMER4
+        - TIMER5
+        - TIMER6
+        - TIMER7
+        - TIMER8
+        - TXD1
+        - TXD2
+        - TXD3
+        - TXD4
+        - UART6
+        - USB11BHID
+        - USB2AD
+        - USB2AH
+        - USB2BD
+        - USB2BH
+        - USBCKI
+        - VGABIOSROM
+        - VGAHS
+        - VGAVS
+        - VPI24
+        - VPO
+        - WDTRST1
+        - WDTRST2
 
 allOf:
   - $ref: pinctrl.yaml#
index 612464aef98bf25152cc66067f8d8ab1c6b6c6fb..80974c46f3ef9e838135ab5ea884a0df2764f371 100644 (file)
@@ -19,6 +19,11 @@ description: |+
   Refer to the bindings described in
   Documentation/devicetree/bindings/mfd/syscon.yaml
 
+  Note: According to the NCSI specification, the reference clock output pin
+  (RMIIXRCLKO) is not required on the management controller side. To optimize
+  pin usage, add "NCSI" pin groups that are equivalent to the RMII pin groups,
+  but without the RMIIXRCLKO pin.
+
 properties:
   compatible:
     const: aspeed,ast2600-pinctrl
@@ -29,56 +34,469 @@ additionalProperties:
 
   properties:
     function:
-      enum: [ ADC0, ADC1, ADC10, ADC11, ADC12, ADC13, ADC14, ADC15, ADC2,
-              ADC3, ADC4, ADC5, ADC6, ADC7, ADC8, ADC9, BMCINT, EMMC, ESPI, ESPIALT,
-              FSI1, FSI2, FWQSPI, FWSPIABR, FWSPID, FWSPIWP, GPIT0, GPIT1, GPIT2, GPIT3,
-              GPIT4, GPIT5, GPIT6, GPIT7, GPIU0, GPIU1, GPIU2, GPIU3, GPIU4, GPIU5,
-              GPIU6, GPIU7, I2C1, I2C10, I2C11, I2C12, I2C13, I2C14, I2C15, I2C16,
-              I2C2, I2C3, I2C4, I2C5, I2C6, I2C7, I2C8, I2C9, I3C3, I3C4, I3C5,
-              I3C6, JTAGM, LHPD, LHSIRQ, LPC, LPCHC, LPCPD, LPCPME, LPCSMI, LSIRQ,
-              MACLINK1, MACLINK2, MACLINK3, MACLINK4, MDIO1, MDIO2, MDIO3, MDIO4,
-              NCTS1, NCTS2, NCTS3, NCTS4, NDCD1, NDCD2, NDCD3, NDCD4, NDSR1, NDSR2,
-              NDSR3, NDSR4, NDTR1, NDTR2, NDTR3, NDTR4, NRI1, NRI2, NRI3, NRI4,
-              NRTS1, NRTS2, NRTS3, NRTS4, OSCCLK, PEWAKE, PWM0, PWM1, PWM10, PWM11,
-              PWM12, PWM13, PWM14, PWM15, PWM2, PWM3, PWM4, PWM5, PWM6, PWM7, PWM8,
-              PWM9, RGMII1, RGMII2, RGMII3, RGMII4, RMII1, RMII2, RMII3, RMII4,
-              RXD1, RXD2, RXD3, RXD4, SALT1, SALT10, SALT11, SALT12, SALT13, SALT14,
-              SALT15, SALT16, SALT2, SALT3, SALT4, SALT5, SALT6, SALT7, SALT8,
-              SALT9, SD1, SD2, SGPM1, SGPM2, SGPS1, SGPS2, SIOONCTRL, SIOPBI, SIOPBO,
-              SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1, SPI1ABR, SPI1CS1, SPI1WP, SPI2,
-              SPI2CS1, SPI2CS2, TACH0, TACH1, TACH10, TACH11, TACH12, TACH13, TACH14,
-              TACH15, TACH2, TACH3, TACH4, TACH5, TACH6, TACH7, TACH8, TACH9, THRU0,
-              THRU1, THRU2, THRU3, TXD1, TXD2, TXD3, TXD4, UART10, UART11, UART12,
-              UART13, UART6, UART7, UART8, UART9, USBAD, USBADP, USB2AH, USB2AHP,
-              USB2BD, USB2BH, VB, VGAHS, VGAVS, WDTRST1, WDTRST2, WDTRST3, WDTRST4 ]
+      enum:
+        - ADC0
+        - ADC1
+        - ADC10
+        - ADC11
+        - ADC12
+        - ADC13
+        - ADC14
+        - ADC15
+        - ADC2
+        - ADC3
+        - ADC4
+        - ADC5
+        - ADC6
+        - ADC7
+        - ADC8
+        - ADC9
+        - BMCINT
+        - EMMC
+        - ESPI
+        - ESPIALT
+        - FSI1
+        - FSI2
+        - FWQSPI
+        - FWSPIABR
+        - FWSPID
+        - FWSPIWP
+        - GPIT0
+        - GPIT1
+        - GPIT2
+        - GPIT3
+        - GPIT4
+        - GPIT5
+        - GPIT6
+        - GPIT7
+        - GPIU0
+        - GPIU1
+        - GPIU2
+        - GPIU3
+        - GPIU4
+        - GPIU5
+        - GPIU6
+        - GPIU7
+        - I2C1
+        - I2C10
+        - I2C11
+        - I2C12
+        - I2C13
+        - I2C14
+        - I2C15
+        - I2C16
+        - I2C2
+        - I2C3
+        - I2C4
+        - I2C5
+        - I2C6
+        - I2C7
+        - I2C8
+        - I2C9
+        - I3C1
+        - I3C2
+        - I3C3
+        - I3C4
+        - I3C5
+        - I3C6
+        - JTAGM
+        - LHPD
+        - LHSIRQ
+        - LPC
+        - LPCHC
+        - LPCPD
+        - LPCPME
+        - LPCSMI
+        - LSIRQ
+        - MACLINK1
+        - MACLINK2
+        - MACLINK3
+        - MACLINK4
+        - MDIO1
+        - MDIO2
+        - MDIO3
+        - MDIO4
+        - NCTS1
+        - NCTS2
+        - NCTS3
+        - NCTS4
+        - NDCD1
+        - NDCD2
+        - NDCD3
+        - NDCD4
+        - NDSR1
+        - NDSR2
+        - NDSR3
+        - NDSR4
+        - NDTR1
+        - NDTR2
+        - NDTR3
+        - NDTR4
+        - NRI1
+        - NRI2
+        - NRI3
+        - NRI4
+        - NRTS1
+        - NRTS2
+        - NRTS3
+        - NRTS4
+        - OSCCLK
+        - PEWAKE
+        - PWM0
+        - PWM1
+        - PWM10
+        - PWM11
+        - PWM12
+        - PWM13
+        - PWM14
+        - PWM15
+        - PWM2
+        - PWM3
+        - PWM4
+        - PWM5
+        - PWM6
+        - PWM7
+        - PWM8
+        - PWM9
+        - RGMII1
+        - RGMII2
+        - RGMII3
+        - RGMII4
+        - RMII1
+        - RMII2
+        - RMII3
+        - RMII4
+        - RXD1
+        - RXD2
+        - RXD3
+        - RXD4
+        - SALT1
+        - SALT10
+        - SALT11
+        - SALT12
+        - SALT13
+        - SALT14
+        - SALT15
+        - SALT16
+        - SALT2
+        - SALT3
+        - SALT4
+        - SALT5
+        - SALT6
+        - SALT7
+        - SALT8
+        - SALT9
+        - SD1
+        - SD2
+        - SGPM1
+        - SGPM2
+        - SGPS1
+        - SGPS2
+        - SIOONCTRL
+        - SIOPBI
+        - SIOPBO
+        - SIOPWREQ
+        - SIOPWRGD
+        - SIOS3
+        - SIOS5
+        - SIOSCI
+        - SPI1
+        - SPI1ABR
+        - SPI1CS1
+        - SPI1WP
+        - SPI2
+        - SPI2CS1
+        - SPI2CS2
+        - TACH0
+        - TACH1
+        - TACH10
+        - TACH11
+        - TACH12
+        - TACH13
+        - TACH14
+        - TACH15
+        - TACH2
+        - TACH3
+        - TACH4
+        - TACH5
+        - TACH6
+        - TACH7
+        - TACH8
+        - TACH9
+        - THRU0
+        - THRU1
+        - THRU2
+        - THRU3
+        - TXD1
+        - TXD2
+        - TXD3
+        - TXD4
+        - UART10
+        - UART11
+        - UART12
+        - UART13
+        - UART6
+        - UART7
+        - UART8
+        - UART9
+        - USB11BHID
+        - USB2AD
+        - USB2AH
+        - USB2AHP
+        - USB2BD
+        - USB2BH
+        - USBAD
+        - USBADP
+        - VB
+        - VGAHS
+        - VGAVS
+        - WDTRST1
+        - WDTRST2
+        - WDTRST3
+        - WDTRST4
 
     groups:
-      enum: [ ADC0, ADC1, ADC10, ADC11, ADC12, ADC13, ADC14, ADC15, ADC2,
-              ADC3, ADC4, ADC5, ADC6, ADC7, ADC8, ADC9, BMCINT, EMMCG1, EMMCG4,
-              EMMCG8, ESPI, ESPIALT, FSI1, FSI2, FWQSPI, FWSPIABR, FWSPID, FWSPIWP,
-              GPIT0, GPIT1, GPIT2, GPIT3, GPIT4, GPIT5, GPIT6, GPIT7, GPIU0, GPIU1,
-              GPIU2, GPIU3, GPIU4, GPIU5, GPIU6, GPIU7, HVI3C3, HVI3C4, I2C1, I2C10,
-              I2C11, I2C12, I2C13, I2C14, I2C15, I2C16, I2C2, I2C3, I2C4, I2C5,
-              I2C6, I2C7, I2C8, I2C9, I3C3, I3C4, I3C5, I3C6, JTAGM, LHPD, LHSIRQ,
-              LPC, LPCHC, LPCPD, LPCPME, LPCSMI, LSIRQ, MACLINK1, MACLINK2, MACLINK3,
-              MACLINK4, MDIO1, MDIO2, MDIO3, MDIO4, NCTS1, NCTS2, NCTS3, NCTS4,
-              NDCD1, NDCD2, NDCD3, NDCD4, NDSR1, NDSR2, NDSR3, NDSR4, NDTR1, NDTR2,
-              NDTR3, NDTR4, NRI1, NRI2, NRI3, NRI4, NRTS1, NRTS2, NRTS3, NRTS4,
-              OSCCLK, PEWAKE, PWM0, PWM1, PWM10G0, PWM10G1, PWM11G0, PWM11G1, PWM12G0,
-              PWM12G1, PWM13G0, PWM13G1, PWM14G0, PWM14G1, PWM15G0, PWM15G1, PWM2,
-              PWM3, PWM4, PWM5, PWM6, PWM7, PWM8G0, PWM8G1, PWM9G0, PWM9G1, QSPI1,
-              QSPI2, RGMII1, RGMII2, RGMII3, RGMII4, RMII1, RMII2, RMII3, RMII4,
-              RXD1, RXD2, RXD3, RXD4, SALT1, SALT10G0, SALT10G1, SALT11G0, SALT11G1,
-              SALT12G0, SALT12G1, SALT13G0, SALT13G1, SALT14G0, SALT14G1, SALT15G0,
-              SALT15G1, SALT16G0, SALT16G1, SALT2, SALT3, SALT4, SALT5, SALT6,
-              SALT7, SALT8, SALT9G0, SALT9G1, SD1, SD2, SD3, SGPM1, SGPM2, SGPS1, SGPS2,
-              SIOONCTRL, SIOPBI, SIOPBO, SIOPWREQ, SIOPWRGD, SIOS3, SIOS5, SIOSCI, SPI1,
-              SPI1ABR, SPI1CS1, SPI1WP, SPI2, SPI2CS1, SPI2CS2, TACH0, TACH1, TACH10, TACH11,
-              TACH12, TACH13, TACH14, TACH15, TACH2, TACH3, TACH4, TACH5, TACH6,
-              TACH7, TACH8, TACH9, THRU0, THRU1, THRU2, THRU3, TXD1, TXD2, TXD3,
-              TXD4, UART10, UART11, UART12G0, UART12G1, UART13G0, UART13G1, UART6,
-              UART7, UART8, UART9, USBA, USBB, VB, VGAHS, VGAVS, WDTRST1, WDTRST2,
-              WDTRST3, WDTRST4]
+      enum:
+        - ADC0
+        - ADC1
+        - ADC10
+        - ADC11
+        - ADC12
+        - ADC13
+        - ADC14
+        - ADC15
+        - ADC2
+        - ADC3
+        - ADC4
+        - ADC5
+        - ADC6
+        - ADC7
+        - ADC8
+        - ADC9
+        - BMCINT
+        - EMMCG1
+        - EMMCG4
+        - EMMCG8
+        - ESPI
+        - ESPIALT
+        - FSI1
+        - FSI2
+        - FWQSPI
+        - FWSPIABR
+        - FWSPID
+        - FWSPIWP
+        - GPIT0
+        - GPIT1
+        - GPIT2
+        - GPIT3
+        - GPIT4
+        - GPIT5
+        - GPIT6
+        - GPIT7
+        - GPIU0
+        - GPIU1
+        - GPIU2
+        - GPIU3
+        - GPIU4
+        - GPIU5
+        - GPIU6
+        - GPIU7
+        - HVI3C3
+        - HVI3C4
+        - I2C1
+        - I2C10
+        - I2C11
+        - I2C12
+        - I2C13
+        - I2C14
+        - I2C15
+        - I2C16
+        - I2C2
+        - I2C3
+        - I2C4
+        - I2C5
+        - I2C6
+        - I2C7
+        - I2C8
+        - I2C9
+        - I3C1
+        - I3C2
+        - I3C3
+        - I3C4
+        - I3C5
+        - I3C6
+        - JTAGM
+        - LHPD
+        - LHSIRQ
+        - LPC
+        - LPCHC
+        - LPCPD
+        - LPCPME
+        - LPCSMI
+        - LSIRQ
+        - MACLINK1
+        - MACLINK2
+        - MACLINK3
+        - MACLINK4
+        - MDIO1
+        - MDIO2
+        - MDIO3
+        - MDIO4
+        - NCSI3
+        - NCSI4
+        - NCTS1
+        - NCTS2
+        - NCTS3
+        - NCTS4
+        - NDCD1
+        - NDCD2
+        - NDCD3
+        - NDCD4
+        - NDSR1
+        - NDSR2
+        - NDSR3
+        - NDSR4
+        - NDTR1
+        - NDTR2
+        - NDTR3
+        - NDTR4
+        - NRI1
+        - NRI2
+        - NRI3
+        - NRI4
+        - NRTS1
+        - NRTS2
+        - NRTS3
+        - NRTS4
+        - OSCCLK
+        - PEWAKE
+        - PWM0
+        - PWM1
+        - PWM10G0
+        - PWM10G1
+        - PWM11G0
+        - PWM11G1
+        - PWM12G0
+        - PWM12G1
+        - PWM13G0
+        - PWM13G1
+        - PWM14G0
+        - PWM14G1
+        - PWM15G0
+        - PWM15G1
+        - PWM2
+        - PWM3
+        - PWM4
+        - PWM5
+        - PWM6
+        - PWM7
+        - PWM8G0
+        - PWM8G1
+        - PWM9G0
+        - PWM9G1
+        - QSPI1
+        - QSPI2
+        - RGMII1
+        - RGMII2
+        - RGMII3
+        - RGMII4
+        - RMII1
+        - RMII2
+        - RMII3
+        - RMII4
+        - RXD1
+        - RXD2
+        - RXD3
+        - RXD4
+        - SALT1
+        - SALT10G0
+        - SALT10G1
+        - SALT11G0
+        - SALT11G1
+        - SALT12G0
+        - SALT12G1
+        - SALT13G0
+        - SALT13G1
+        - SALT14G0
+        - SALT14G1
+        - SALT15G0
+        - SALT15G1
+        - SALT16G0
+        - SALT16G1
+        - SALT2
+        - SALT3
+        - SALT4
+        - SALT5
+        - SALT6
+        - SALT7
+        - SALT8
+        - SALT9G0
+        - SALT9G1
+        - SD1
+        - SD2
+        - SD3
+        - SGPM1
+        - SGPM2
+        - SGPS1
+        - SGPS2
+        - SIOONCTRL
+        - SIOPBI
+        - SIOPBO
+        - SIOPWREQ
+        - SIOPWRGD
+        - SIOS3
+        - SIOS5
+        - SIOSCI
+        - SPI1
+        - SPI1ABR
+        - SPI1CS1
+        - SPI1WP
+        - SPI2
+        - SPI2CS1
+        - SPI2CS2
+        - TACH0
+        - TACH1
+        - TACH10
+        - TACH11
+        - TACH12
+        - TACH13
+        - TACH14
+        - TACH15
+        - TACH2
+        - TACH3
+        - TACH4
+        - TACH5
+        - TACH6
+        - TACH7
+        - TACH8
+        - TACH9
+        - THRU0
+        - THRU1
+        - THRU2
+        - THRU3
+        - TXD1
+        - TXD2
+        - TXD3
+        - TXD4
+        - UART10
+        - UART11
+        - UART12G0
+        - UART12G1
+        - UART13G0
+        - UART13G1
+        - UART6
+        - UART7
+        - UART8
+        - UART9
+        - USBA
+        - USBB
+        - VB
+        - VGAHS
+        - VGAVS
+        - WDTRST1
+        - WDTRST2
+        - WDTRST3
+        - WDTRST4
 
     pins: true
     bias-disable: true
similarity index 93%
rename from Bindings/pinctrl/fsl,imx93-pinctrl.yaml
rename to Bindings/pinctrl/fsl,imx9-pinctrl.yaml
index 2f2405102996d819034f2c45b8ab52ddca48e8ce..a438db8884f2dd293db79c0834e1eb4b23ae8c4a 100644 (file)
@@ -1,10 +1,10 @@
 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/pinctrl/fsl,imx93-pinctrl.yaml#
+$id: http://devicetree.org/schemas/pinctrl/fsl,imx9-pinctrl.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Freescale IMX93 IOMUX Controller
+title: Freescale IMX9 IOMUX Controller
 
 maintainers:
   - Peng Fan <peng.fan@nxp.com>
@@ -18,7 +18,9 @@ allOf:
 
 properties:
   compatible:
-    const: fsl,imx93-iomuxc
+    enum:
+      - fsl,imx91-iomuxc
+      - fsl,imx93-iomuxc
 
   reg:
     maxItems: 1
diff --git a/Bindings/pinctrl/nuvoton,ma35d1-pinctrl.yaml b/Bindings/pinctrl/nuvoton,ma35d1-pinctrl.yaml
new file mode 100644 (file)
index 0000000..763a49b
--- /dev/null
@@ -0,0 +1,178 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/nuvoton,ma35d1-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Nuvoton MA35D1 pin control and GPIO
+
+maintainers:
+  - Shan-Chun Hung <schung@nuvoton.com>
+  - Jacky Huang <ychuang3@nuvoton.com>
+
+allOf:
+  - $ref: pinctrl.yaml#
+
+properties:
+  compatible:
+    enum:
+      - nuvoton,ma35d1-pinctrl
+
+  reg:
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 1
+
+  nuvoton,sys:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      phandle of the system-management node.
+
+  ranges: true
+
+patternProperties:
+  "^gpio@[0-9a-f]+$":
+    type: object
+    properties:
+      gpio-controller: true
+
+      '#gpio-cells':
+        const: 2
+
+      reg:
+        maxItems: 1
+
+      clocks:
+        maxItems: 1
+
+      interrupt-controller: true
+
+      '#interrupt-cells':
+        const: 2
+
+      interrupts:
+        description:
+          The interrupt outputs to sysirq.
+        maxItems: 1
+
+    required:
+      - gpio-controller
+      - '#gpio-cells'
+      - reg
+      - clocks
+      - interrupt-controller
+      - '#interrupt-cells'
+      - interrupts
+
+    additionalProperties: false
+
+  "-grp$":
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+    patternProperties:
+      "-pins$":
+        type: object
+        description:
+          A pinctrl node should contain at least one subnodes representing the
+          pinctrl groups available on the machine. Each subnode will list the
+          pins it needs, and how they should be configured, with regard to muxer
+          configuration, pullups, drive strength, input enable/disable and input
+          schmitt.
+        $ref: /schemas/pinctrl/pincfg-node.yaml
+
+        properties:
+          nuvoton,pins:
+            description:
+              Each entry consists of 4 parameters and represents the mux and config
+              setting for one pin.
+            $ref: /schemas/types.yaml#/definitions/uint32-matrix
+            minItems: 1
+            items:
+              items:
+                - minimum: 0
+                  maximum: 13
+                  description:
+                    Pin bank.
+                - minimum: 0
+                  maximum: 15
+                  description:
+                    Pin bank index.
+                - minimum: 0
+                  maximum: 15
+                  description:
+                    Mux 0 means GPIO and mux 1 to 15 means the specific device function.
+
+          power-source:
+            description: |
+              Valid arguments are described as below:
+              0: power supply of 1.8V
+              1: power supply of 3.3V
+            enum: [0, 1]
+
+          drive-strength-microamp:
+            oneOf:
+              - enum: [ 2900, 4400, 5800, 7300, 8600, 10100, 11500, 13000 ]
+                description: 1.8V I/O driving strength
+              - enum: [ 17100, 25600, 34100, 42800, 48000, 56000, 77000, 82000 ]
+                description: 3.3V I/O driving strength
+
+          bias-disable: true
+
+          bias-pull-up: true
+
+          bias-pull-down: true
+
+          input-schmitt-disable: true
+
+        additionalProperties: false
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - reg
+  - nuvoton,sys
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/clock/nuvoton,ma35d1-clk.h>
+
+    pinctrl@40040000 {
+        compatible = "nuvoton,ma35d1-pinctrl";
+        reg = <0x40040000 0xc00>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+        nuvoton,sys = <&sys>;
+        ranges = <0x0 0x40040000 0x400>;
+
+        gpio@0 {
+            reg = <0x0 0x40>;
+            interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+            clocks = <&clk GPA_GATE>;
+            gpio-controller;
+            #gpio-cells = <2>;
+            interrupt-controller;
+            #interrupt-cells = <2>;
+        };
+
+        uart-grp {
+            uart11-pins {
+                nuvoton,pins = <11 0 2>,
+                               <11 1 2>,
+                               <11 2 2>,
+                               <11 3 2>;
+                power-source = <1>;
+                bias-disable;
+            };
+        };
+    };
index b55d9c3166598dcd680ab057e1d6d05e2ae909fc..814b9598edd183dc95cc223f93e3dab1b461fc90 100644 (file)
@@ -85,11 +85,12 @@ patternProperties:
                   smb2c, smb2b, smb1c, smb1b, smb8, smb9, smb10, smb11, sd1,
                   sd1pwr, pwm4, pwm5, pwm6, pwm7, pwm8, pwm9, pwm10, pwm11,
                   mmc8, mmc, mmcwp, mmccd, mmcrst, clkout, serirq, lpcclk,
-                  scipme, smi, smb6, smb7, spi1, faninx, r1, spi3, spi3cs1,
-                  spi3quad, spi3cs2, spi3cs3, nprd_smi, smb0b, smb0c, smb0den,
-                  smb0d, ddc, rg2mdio, wdog1, wdog2, smb12, smb13, spix,
-                  spixcs1, clkreq, hgpio0, hgpio1, hgpio2, hgpio3, hgpio4,
-                  hgpio5, hgpio6, hgpio7 ]
+                  scipme, smi, smb6, smb6b, smb6c, smb6d, smb7, smb7b, smb7c,
+                  smb7d, spi1, faninx, r1, spi3, spi3cs1, spi3quad, spi3cs2,
+                  spi3cs3, nprd_smi, smb0b, smb0c, smb0den, smb0d, ddc, rg2mdio,
+                  wdog1, wdog2, smb12, smb13, spix, spixcs1, clkreq, hgpio0,
+                  hgpio1, hgpio2, hgpio3, hgpio4, hgpio5, hgpio6, hgpio7, bu4,
+                  bu4b, bu5, bu5b, bu6, gpo187 ]
 
       function:
         description:
@@ -109,11 +110,12 @@ patternProperties:
                 smb2c, smb2b, smb1c, smb1b, smb8, smb9, smb10, smb11, sd1,
                 sd1pwr, pwm4, pwm5, pwm6, pwm7, pwm8, pwm9, pwm10, pwm11,
                 mmc8, mmc, mmcwp, mmccd, mmcrst, clkout, serirq, lpcclk,
-                scipme, smi, smb6, smb7, spi1, faninx, r1, spi3, spi3cs1,
-                spi3quad, spi3cs2, spi3cs3, nprd_smi, smb0b, smb0c, smb0den,
-                smb0d, ddc, rg2mdio, wdog1, wdog2, smb12, smb13, spix,
-                spixcs1, clkreq, hgpio0, hgpio1, hgpio2, hgpio3, hgpio4,
-                hgpio5, hgpio6, hgpio7 ]
+                scipme, smi, smb6, smb6b, smb6c, smb6d, smb7, smb7b, smb7c,
+                smb7d, spi1, faninx, r1, spi3, spi3cs1, spi3quad, spi3cs2,
+                spi3cs3, nprd_smi, smb0b, smb0c, smb0den, smb0d, ddc, rg2mdio,
+                wdog1, wdog2, smb12, smb13, spix, spixcs1, clkreq, hgpio0,
+                hgpio1, hgpio2, hgpio3, hgpio4, hgpio5, hgpio6, hgpio7, bu4,
+                bu4b, bu5, bu5b, bu6, gpo187 ]
 
     dependencies:
       groups: [ function ]
index c11495524dd2672d2d5c3595726f4026e153ead6..e02595316c9f4939ca5a7c61115f23ca4dc5e1b8 100644 (file)
@@ -75,11 +75,11 @@ properties:
     description: Optional list of pin base, nr pins & gpio function
     $ref: /schemas/types.yaml#/definitions/phandle-array
     items:
-      items:
-          - description: phandle of a gpio-range node
-          - description: pin base
-          - description: number of pins
-          - description: gpio function
+      items:
+        - description: phandle of a gpio-range node
+        - description: pin base
+        - description: number of pins
+        - description: gpio function
 
   '#gpio-range-cells':
     description: No longer needed, may exist in older files for gpio-ranges
@@ -144,6 +144,13 @@ patternProperties:
           - description: drive strength mask
 
       pinctrl-single,input-schmitt:
+        description: Optional schmitt strength configuration
+        $ref: /schemas/types.yaml#/definitions/uint32-array
+        items:
+          - description: schmitt strength current
+          - description: schmitt strength mask
+
+      pinctrl-single,input-schmitt-enable:
         description: Optional input schmitt configuration
         $ref: /schemas/types.yaml#/definitions/uint32-array
         items:
index bd3cbb44c99a4638e9b9aa57c95c8b3def7171e6..e75393b3d196c58f13c7c2f0eb47ac5ab69e250a 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Technologies, Inc. MDM9607 TLMM block
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@somainline.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description:
   Top Level Mode Multiplexer pin controller in Qualcomm MDM9607 SoC.
index 0bf2d9f093b5c0406f7181ba0763adcd9874fe2f..2784d32fdde23711dbb4c835b1ee9980290fc6f1 100644 (file)
@@ -56,6 +56,7 @@ properties:
           - qcom,pma8084-gpio
           - qcom,pmc8180-gpio
           - qcom,pmc8180c-gpio
+          - qcom,pmc8380-gpio
           - qcom,pmd8028-gpio
           - qcom,pmi632-gpio
           - qcom,pmi8950-gpio
@@ -223,6 +224,7 @@ allOf:
               - qcom,pm8150-gpio
               - qcom,pm8350-gpio
               - qcom,pmc8180-gpio
+              - qcom,pmc8380-gpio
               - qcom,pmi8994-gpio
               - qcom,pmm8155au-gpio
     then:
diff --git a/Bindings/pinctrl/qcom,sm4250-lpass-lpi-pinctrl.yaml b/Bindings/pinctrl/qcom,sm4250-lpass-lpi-pinctrl.yaml
new file mode 100644 (file)
index 0000000..9612e21
--- /dev/null
@@ -0,0 +1,118 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/qcom,sm4250-lpass-lpi-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SM4250 SoC LPASS LPI TLMM
+
+maintainers:
+  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+
+description:
+  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
+  (LPASS) Low Power Island (LPI) of Qualcomm SM4250 SoC.
+
+properties:
+  compatible:
+    const: qcom,sm4250-lpass-lpi-pinctrl
+
+  reg:
+    items:
+      - description: LPASS LPI TLMM Control and Status registers
+      - description: LPASS LPI MCC registers
+
+  clocks:
+    items:
+      - description: LPASS Audio voting clock
+
+  clock-names:
+    items:
+      - const: audio
+
+patternProperties:
+  "-state$":
+    oneOf:
+      - $ref: "#/$defs/qcom-sm4250-lpass-state"
+      - patternProperties:
+          "-pins$":
+            $ref: "#/$defs/qcom-sm4250-lpass-state"
+        additionalProperties: false
+
+$defs:
+  qcom-sm4250-lpass-state:
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
+
+    properties:
+      pins:
+        description:
+          List of gpio pins affected by the properties specified in this
+          subnode.
+        items:
+          pattern: "^gpio([0-9]|1[0-9]|2[0-6])$"
+
+      function:
+        enum: [ gpio, dmic01_clk, dmic01_data, dmic23_clk, dmic23_data,
+                dmic4_clk, dmic4_data, ext_mclk0_a, ext_mclk0_b, ext_mclk1_a,
+                ext_mclk1_b, ext_mclk1_c, i2s1_clk, i2s1_data, i2s1_ws,
+                i2s2_clk, i2s2_data, i2s2_ws, i2s3_clk, i2s3_data, i2s3_ws,
+                qua_mi2s_data, qua_mi2s_sclk, qua_mi2s_ws, slim_clk, slim_data,
+                swr_rx_clk, swr_rx_data, swr_tx_clk, swr_tx_data, swr_wsa_clk,
+                swr_wsa_data ]
+        description:
+          Specify the alternative function to be configured for the specified
+          pins.
+
+allOf:
+  - $ref: qcom,lpass-lpi-common.yaml#
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/sound/qcom,q6afe.h>
+    lpi_tlmm: pinctrl@a7c0000 {
+        compatible = "qcom,sm4250-lpass-lpi-pinctrl";
+        reg = <0xa7c0000 0x20000>,
+              <0xa950000 0x10000>;
+        clocks = <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
+        clock-names = "audio";
+        gpio-controller;
+        #gpio-cells = <2>;
+        gpio-ranges = <&lpi_tlmm 0 0 19>;
+
+        i2s2-active-state {
+            clk-pins {
+                pins = "gpio10";
+                function = "i2s2_clk";
+                drive-strength = <2>;
+                slew-rate = <1>;
+                bias-disable;
+            };
+
+            data-pins {
+                pins = "gpio12";
+                function = "i2s2_data";
+                drive-strength = <2>;
+                slew-rate = <1>;
+            };
+        };
+
+        i2s2-sleep-clk-state {
+            pins = "gpio10";
+            function = "i2s2_clk";
+            drive-strength = <2>;
+            bias-pull-down;
+        };
+    };
index a4771f87d93645549d9cfbb8b39315065d0b8cf6..b262af6be97da3207e2711a1367e400b2a25adae 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Technologies, Inc. SM6350 TLMM block
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@somainline.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description:
   Top Level Mode Multiplexer pin controller in Qualcomm SM6350 SoC.
index 047f82863f9bbfdfcd870a35656d0b56e6c018ba..c11af09c3f5b89e19e82d6f77cd72a69dc3a6afd 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Technologies, Inc. SM6375 TLMM block
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@somainline.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description:
   Top Level Mode Multiplexer pin controller in Qualcomm SM6375 SoC.
index 4d5a957fa232eb55d0bd71ea887eefec35b60063..56d90c8e1fa3f99e1416e92f7d2247879127c1f0 100644 (file)
@@ -26,6 +26,7 @@ properties:
               - renesas,r9a07g043-pinctrl # RZ/G2UL{Type-1,Type-2} and RZ/Five
               - renesas,r9a07g044-pinctrl # RZ/G2{L,LC}
               - renesas,r9a08g045-pinctrl # RZ/G3S
+              - renesas,r9a09g057-pinctrl # RZ/V2H(P)
 
       - items:
           - enum:
@@ -66,10 +67,14 @@ properties:
     maxItems: 1
 
   resets:
-    items:
-      - description: GPIO_RSTN signal
-      - description: GPIO_PORT_RESETN signal
-      - description: GPIO_SPARE_RESETN signal
+    oneOf:
+      - items:
+          - description: GPIO_RSTN signal
+          - description: GPIO_PORT_RESETN signal
+          - description: GPIO_SPARE_RESETN signal
+      - items:
+          - description: PFC main reset
+          - description: Reset for the control register related to WDTUDFCA and WDTUDFFCM pins
 
 additionalProperties:
   anyOf:
@@ -79,21 +84,6 @@ additionalProperties:
         - $ref: pincfg-node.yaml#
         - $ref: pinmux-node.yaml#
 
-        - if:
-            properties:
-              compatible:
-                contains:
-                  enum:
-                    - renesas,r9a08g045-pinctrl
-          then:
-            properties:
-              drive-strength: false
-              output-impedance-ohms: false
-              slew-rate: false
-          else:
-            properties:
-              drive-strength-microamp: false
-
       description:
         Pin controller client devices use pin configuration subnodes (children
         and grandchildren) for desired pin configuration.
@@ -126,6 +116,16 @@ additionalProperties:
         output-high: true
         output-low: true
         line-name: true
+        bias-disable: true
+        bias-pull-down: true
+        bias-pull-up: true
+        renesas,output-impedance:
+          description:
+            Output impedance for pins on the RZ/V2H(P) SoC. The value provided by this
+            property corresponds to register bit values that can be set in the PFC_IOLH_mn
+            register, which adjusts the drive strength value and is pin-dependent.
+          $ref: /schemas/types.yaml#/definitions/uint32
+          enum: [0, 1, 2, 3]
 
     - type: object
       additionalProperties:
@@ -134,6 +134,20 @@ additionalProperties:
 allOf:
   - $ref: pinctrl.yaml#
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a09g057-pinctrl
+    then:
+      properties:
+        resets:
+          maxItems: 2
+    else:
+      properties:
+        resets:
+          minItems: 3
+
 required:
   - compatible
   - reg
index f13d315b5d5e8ed98513fd85bef314b7b66b80d2..ce66fd15ff9c30afa4cac91bd7e1bf682f3792a7 100644 (file)
@@ -42,179 +42,187 @@ patternProperties:
         $ref: pinmux-node.yaml#
 
         properties:
+          pins:
+            description:
+              List of pins to select (either this or "groups" must be specified)
+            items:
+              pattern: '^MIO([0-9]|[1-6][0-9]|7[0-7])$'
+
           groups:
             description:
               List of groups to select (either this or "pins" must be
               specified), available groups for this subnode.
             items:
-              enum: [ethernet0_0_grp, ethernet1_0_grp, ethernet2_0_grp,
-                     ethernet3_0_grp, gemtsu0_0_grp, gemtsu0_1_grp,
-                     gemtsu0_2_grp, mdio0_0_grp, mdio1_0_grp,
-                     mdio1_1_grp, mdio2_0_grp, mdio3_0_grp,
-                     qspi0_0_grp, qspi_ss_0_grp, qspi_fbclk_0_grp,
-                     spi0_0_grp, spi0_ss_0_grp, spi0_ss_1_grp,
-                     spi0_ss_2_grp, spi0_1_grp, spi0_ss_3_grp,
-                     spi0_ss_4_grp, spi0_ss_5_grp, spi0_2_grp,
-                     spi0_ss_6_grp, spi0_ss_7_grp, spi0_ss_8_grp,
-                     spi0_3_grp, spi0_ss_9_grp, spi0_ss_10_grp,
-                     spi0_ss_11_grp, spi0_4_grp, spi0_ss_12_grp,
-                     spi0_ss_13_grp, spi0_ss_14_grp, spi0_5_grp,
-                     spi0_ss_15_grp, spi0_ss_16_grp, spi0_ss_17_grp,
-                     spi1_0_grp, spi1_ss_0_grp, spi1_ss_1_grp,
-                     spi1_ss_2_grp, spi1_1_grp, spi1_ss_3_grp,
-                     spi1_ss_4_grp, spi1_ss_5_grp, spi1_2_grp,
-                     spi1_ss_6_grp, spi1_ss_7_grp, spi1_ss_8_grp,
-                     spi1_3_grp, spi1_ss_9_grp, spi1_ss_10_grp,
-                     spi1_ss_11_grp, spi1_4_grp, spi1_ss_12_grp,
-                     spi1_ss_13_grp, spi1_ss_14_grp, spi1_5_grp,
-                     spi1_ss_15_grp, spi1_ss_16_grp, spi1_ss_17_grp,
-                     sdio0_0_grp, sdio0_1_grp, sdio0_2_grp,
-                     sdio0_3_grp, sdio0_4_grp, sdio0_5_grp,
-                     sdio0_6_grp, sdio0_7_grp, sdio0_8_grp,
-                     sdio0_9_grp, sdio0_10_grp, sdio0_11_grp,
-                     sdio0_12_grp, sdio0_13_grp, sdio0_14_grp,
-                     sdio0_15_grp, sdio0_16_grp, sdio0_17_grp,
-                     sdio0_18_grp, sdio0_19_grp, sdio0_20_grp,
-                     sdio0_21_grp, sdio0_22_grp, sdio0_23_grp,
-                     sdio0_24_grp, sdio0_25_grp, sdio0_26_grp,
-                     sdio0_27_grp, sdio0_28_grp, sdio0_29_grp,
-                     sdio0_30_grp, sdio0_31_grp, sdio0_32_grp,
-                     sdio0_pc_0_grp, sdio0_cd_0_grp, sdio0_wp_0_grp,
-                     sdio0_pc_1_grp, sdio0_cd_1_grp, sdio0_wp_1_grp,
-                     sdio0_pc_2_grp, sdio0_cd_2_grp, sdio0_wp_2_grp,
-                     sdio1_0_grp, sdio1_1_grp, sdio1_2_grp,
-                     sdio1_3_grp, sdio1_4_grp, sdio1_5_grp,
-                     sdio1_6_grp, sdio1_7_grp, sdio1_8_grp,
-                     sdio1_9_grp, sdio1_10_grp, sdio1_11_grp,
-                     sdio1_12_grp, sdio1_13_grp, sdio1_14_grp,
-                     sdio1_15_grp, sdio1_pc_0_grp, sdio1_cd_0_grp,
-                     sdio1_wp_0_grp, sdio1_pc_1_grp, sdio1_cd_1_grp,
-                     sdio1_wp_1_grp, nand0_0_grp, nand0_ce_0_grp,
-                     nand0_rb_0_grp, nand0_dqs_0_grp, nand0_ce_1_grp,
-                     nand0_rb_1_grp, nand0_dqs_1_grp, can0_0_grp,
-                     can0_1_grp, can0_2_grp, can0_3_grp,
-                     can0_4_grp, can0_5_grp, can0_6_grp,
-                     can0_7_grp, can0_8_grp, can0_9_grp,
-                     can0_10_grp, can0_11_grp, can0_12_grp,
-                     can0_13_grp, can0_14_grp, can0_15_grp,
-                     can0_16_grp, can0_17_grp, can0_18_grp,
-                     can1_0_grp, can1_1_grp, can1_2_grp,
-                     can1_3_grp, can1_4_grp, can1_5_grp,
-                     can1_6_grp, can1_7_grp, can1_8_grp,
-                     can1_9_grp, can1_10_grp, can1_11_grp,
-                     can1_12_grp, can1_13_grp, can1_14_grp,
-                     can1_15_grp, can1_16_grp, can1_17_grp,
-                     can1_18_grp, can1_19_grp, uart0_0_grp,
-                     uart0_1_grp, uart0_2_grp, uart0_3_grp,
-                     uart0_4_grp, uart0_5_grp, uart0_6_grp,
-                     uart0_7_grp, uart0_8_grp, uart0_9_grp,
-                     uart0_10_grp, uart0_11_grp, uart0_12_grp,
-                     uart0_13_grp, uart0_14_grp, uart0_15_grp,
-                     uart0_16_grp, uart0_17_grp, uart0_18_grp,
-                     uart1_0_grp, uart1_1_grp, uart1_2_grp,
-                     uart1_3_grp, uart1_4_grp, uart1_5_grp,
-                     uart1_6_grp, uart1_7_grp, uart1_8_grp,
-                     uart1_9_grp, uart1_10_grp, uart1_11_grp,
-                     uart1_12_grp, uart1_13_grp, uart1_14_grp,
-                     uart1_15_grp, uart1_16_grp, uart1_17_grp,
-                     uart1_18_grp, i2c0_0_grp, i2c0_1_grp,
-                     i2c0_2_grp, i2c0_3_grp, i2c0_4_grp,
-                     i2c0_5_grp, i2c0_6_grp, i2c0_7_grp,
-                     i2c0_8_grp, i2c0_9_grp, i2c0_10_grp,
-                     i2c0_11_grp, i2c0_12_grp, i2c0_13_grp,
-                     i2c0_14_grp, i2c0_15_grp, i2c0_16_grp,
-                     i2c0_17_grp, i2c0_18_grp, i2c1_0_grp,
-                     i2c1_1_grp, i2c1_2_grp, i2c1_3_grp,
-                     i2c1_4_grp, i2c1_5_grp, i2c1_6_grp,
-                     i2c1_7_grp, i2c1_8_grp, i2c1_9_grp,
-                     i2c1_10_grp, i2c1_11_grp, i2c1_12_grp,
-                     i2c1_13_grp, i2c1_14_grp, i2c1_15_grp,
-                     i2c1_16_grp, i2c1_17_grp, i2c1_18_grp,
-                     i2c1_19_grp, ttc0_clk_0_grp, ttc0_wav_0_grp,
-                     ttc0_clk_1_grp, ttc0_wav_1_grp, ttc0_clk_2_grp,
-                     ttc0_wav_2_grp, ttc0_clk_3_grp, ttc0_wav_3_grp,
-                     ttc0_clk_4_grp, ttc0_wav_4_grp, ttc0_clk_5_grp,
-                     ttc0_wav_5_grp, ttc0_clk_6_grp, ttc0_wav_6_grp,
-                     ttc0_clk_7_grp, ttc0_wav_7_grp, ttc0_clk_8_grp,
-                     ttc0_wav_8_grp, ttc1_clk_0_grp, ttc1_wav_0_grp,
-                     ttc1_clk_1_grp, ttc1_wav_1_grp, ttc1_clk_2_grp,
-                     ttc1_wav_2_grp, ttc1_clk_3_grp, ttc1_wav_3_grp,
-                     ttc1_clk_4_grp, ttc1_wav_4_grp, ttc1_clk_5_grp,
-                     ttc1_wav_5_grp, ttc1_clk_6_grp, ttc1_wav_6_grp,
-                     ttc1_clk_7_grp, ttc1_wav_7_grp, ttc1_clk_8_grp,
-                     ttc1_wav_8_grp, ttc2_clk_0_grp, ttc2_wav_0_grp,
-                     ttc2_clk_1_grp, ttc2_wav_1_grp, ttc2_clk_2_grp,
-                     ttc2_wav_2_grp, ttc2_clk_3_grp, ttc2_wav_3_grp,
-                     ttc2_clk_4_grp, ttc2_wav_4_grp, ttc2_clk_5_grp,
-                     ttc2_wav_5_grp, ttc2_clk_6_grp, ttc2_wav_6_grp,
-                     ttc2_clk_7_grp, ttc2_wav_7_grp, ttc2_clk_8_grp,
-                     ttc2_wav_8_grp, ttc3_clk_0_grp, ttc3_wav_0_grp,
-                     ttc3_clk_1_grp, ttc3_wav_1_grp, ttc3_clk_2_grp,
-                     ttc3_wav_2_grp, ttc3_clk_3_grp, ttc3_wav_3_grp,
-                     ttc3_clk_4_grp, ttc3_wav_4_grp, ttc3_clk_5_grp,
-                     ttc3_wav_5_grp, ttc3_clk_6_grp, ttc3_wav_6_grp,
-                     ttc3_clk_7_grp, ttc3_wav_7_grp, ttc3_clk_8_grp,
-                     ttc3_wav_8_grp, swdt0_clk_0_grp, swdt0_rst_0_grp,
-                     swdt0_clk_1_grp, swdt0_rst_1_grp, swdt0_clk_2_grp,
-                     swdt0_rst_2_grp, swdt0_clk_3_grp, swdt0_rst_3_grp,
-                     swdt0_clk_4_grp, swdt0_rst_4_grp, swdt0_clk_5_grp,
-                     swdt0_rst_5_grp, swdt0_clk_6_grp, swdt0_rst_6_grp,
-                     swdt0_clk_7_grp, swdt0_rst_7_grp, swdt0_clk_8_grp,
-                     swdt0_rst_8_grp, swdt0_clk_9_grp, swdt0_rst_9_grp,
-                     swdt0_clk_10_grp, swdt0_rst_10_grp, swdt0_clk_11_grp,
-                     swdt0_rst_11_grp, swdt0_clk_12_grp, swdt0_rst_12_grp,
-                     swdt1_clk_0_grp, swdt1_rst_0_grp, swdt1_clk_1_grp,
-                     swdt1_rst_1_grp, swdt1_clk_2_grp, swdt1_rst_2_grp,
-                     swdt1_clk_3_grp, swdt1_rst_3_grp, swdt1_clk_4_grp,
-                     swdt1_rst_4_grp, swdt1_clk_5_grp, swdt1_rst_5_grp,
-                     swdt1_clk_6_grp, swdt1_rst_6_grp, swdt1_clk_7_grp,
-                     swdt1_rst_7_grp, swdt1_clk_8_grp, swdt1_rst_8_grp,
-                     swdt1_clk_9_grp, swdt1_rst_9_grp, swdt1_clk_10_grp,
-                     swdt1_rst_10_grp, swdt1_clk_11_grp, swdt1_rst_11_grp,
-                     swdt1_clk_12_grp, swdt1_rst_12_grp, gpio0_0_grp,
-                     gpio0_1_grp, gpio0_2_grp, gpio0_3_grp,
-                     gpio0_4_grp, gpio0_5_grp, gpio0_6_grp,
-                     gpio0_7_grp, gpio0_8_grp, gpio0_9_grp,
-                     gpio0_10_grp, gpio0_11_grp, gpio0_12_grp,
-                     gpio0_13_grp, gpio0_14_grp, gpio0_15_grp,
-                     gpio0_16_grp, gpio0_17_grp, gpio0_18_grp,
-                     gpio0_19_grp, gpio0_20_grp, gpio0_21_grp,
-                     gpio0_22_grp, gpio0_23_grp, gpio0_24_grp,
-                     gpio0_25_grp, gpio0_26_grp, gpio0_27_grp,
-                     gpio0_28_grp, gpio0_29_grp, gpio0_30_grp,
-                     gpio0_31_grp, gpio0_32_grp, gpio0_33_grp,
-                     gpio0_34_grp, gpio0_35_grp, gpio0_36_grp,
-                     gpio0_37_grp, gpio0_38_grp, gpio0_39_grp,
-                     gpio0_40_grp, gpio0_41_grp, gpio0_42_grp,
-                     gpio0_43_grp, gpio0_44_grp, gpio0_45_grp,
-                     gpio0_46_grp, gpio0_47_grp, gpio0_48_grp,
-                     gpio0_49_grp, gpio0_50_grp, gpio0_51_grp,
-                     gpio0_52_grp, gpio0_53_grp, gpio0_54_grp,
-                     gpio0_55_grp, gpio0_56_grp, gpio0_57_grp,
-                     gpio0_58_grp, gpio0_59_grp, gpio0_60_grp,
-                     gpio0_61_grp, gpio0_62_grp, gpio0_63_grp,
-                     gpio0_64_grp, gpio0_65_grp, gpio0_66_grp,
-                     gpio0_67_grp, gpio0_68_grp, gpio0_69_grp,
-                     gpio0_70_grp, gpio0_71_grp, gpio0_72_grp,
-                     gpio0_73_grp, gpio0_74_grp, gpio0_75_grp,
-                     gpio0_76_grp, gpio0_77_grp, usb0_0_grp,
-                     usb1_0_grp, pmu0_0_grp, pmu0_1_grp,
-                     pmu0_2_grp, pmu0_3_grp, pmu0_4_grp,
-                     pmu0_5_grp, pmu0_6_grp, pmu0_7_grp,
-                     pmu0_8_grp, pmu0_9_grp, pmu0_10_grp,
-                     pmu0_11_grp, pcie0_0_grp, pcie0_1_grp,
-                     pcie0_2_grp, pcie0_3_grp, pcie0_4_grp,
-                     pcie0_5_grp, pcie0_6_grp, pcie0_7_grp,
-                     csu0_0_grp, csu0_1_grp, csu0_2_grp,
-                     csu0_3_grp, csu0_4_grp, csu0_5_grp,
-                     csu0_6_grp, csu0_7_grp, csu0_8_grp,
-                     csu0_9_grp, csu0_10_grp, csu0_11_grp,
-                     dpaux0_0_grp, dpaux0_1_grp, dpaux0_2_grp,
-                     dpaux0_3_grp, pjtag0_0_grp, pjtag0_1_grp,
-                     pjtag0_2_grp, pjtag0_3_grp, pjtag0_4_grp,
-                     pjtag0_5_grp, trace0_0_grp, trace0_clk_0_grp,
-                     trace0_1_grp, trace0_clk_1_grp, trace0_2_grp,
-                     trace0_clk_2_grp, testscan0_0_grp]
+              anyOf:
+                - pattern: '^MIO([0-9]|[1-6][0-9]|7[0-7])$'
+                - enum: [ethernet0_0_grp, ethernet1_0_grp, ethernet2_0_grp,
+                         ethernet3_0_grp, gemtsu0_0_grp, gemtsu0_1_grp,
+                         gemtsu0_2_grp, mdio0_0_grp, mdio1_0_grp,
+                         mdio1_1_grp, mdio2_0_grp, mdio3_0_grp,
+                         qspi0_0_grp, qspi_ss_0_grp, qspi_fbclk_0_grp,
+                         spi0_0_grp, spi0_ss_0_grp, spi0_ss_1_grp,
+                         spi0_ss_2_grp, spi0_1_grp, spi0_ss_3_grp,
+                         spi0_ss_4_grp, spi0_ss_5_grp, spi0_2_grp,
+                         spi0_ss_6_grp, spi0_ss_7_grp, spi0_ss_8_grp,
+                         spi0_3_grp, spi0_ss_9_grp, spi0_ss_10_grp,
+                         spi0_ss_11_grp, spi0_4_grp, spi0_ss_12_grp,
+                         spi0_ss_13_grp, spi0_ss_14_grp, spi0_5_grp,
+                         spi0_ss_15_grp, spi0_ss_16_grp, spi0_ss_17_grp,
+                         spi1_0_grp, spi1_ss_0_grp, spi1_ss_1_grp,
+                         spi1_ss_2_grp, spi1_1_grp, spi1_ss_3_grp,
+                         spi1_ss_4_grp, spi1_ss_5_grp, spi1_2_grp,
+                         spi1_ss_6_grp, spi1_ss_7_grp, spi1_ss_8_grp,
+                         spi1_3_grp, spi1_ss_9_grp, spi1_ss_10_grp,
+                         spi1_ss_11_grp, spi1_4_grp, spi1_ss_12_grp,
+                         spi1_ss_13_grp, spi1_ss_14_grp, spi1_5_grp,
+                         spi1_ss_15_grp, spi1_ss_16_grp, spi1_ss_17_grp,
+                         sdio0_0_grp, sdio0_1_grp, sdio0_2_grp,
+                         sdio0_3_grp, sdio0_4_grp, sdio0_5_grp,
+                         sdio0_6_grp, sdio0_7_grp, sdio0_8_grp,
+                         sdio0_9_grp, sdio0_10_grp, sdio0_11_grp,
+                         sdio0_12_grp, sdio0_13_grp, sdio0_14_grp,
+                         sdio0_15_grp, sdio0_16_grp, sdio0_17_grp,
+                         sdio0_18_grp, sdio0_19_grp, sdio0_20_grp,
+                         sdio0_21_grp, sdio0_22_grp, sdio0_23_grp,
+                         sdio0_24_grp, sdio0_25_grp, sdio0_26_grp,
+                         sdio0_27_grp, sdio0_28_grp, sdio0_29_grp,
+                         sdio0_30_grp, sdio0_31_grp, sdio0_32_grp,
+                         sdio0_pc_0_grp, sdio0_cd_0_grp, sdio0_wp_0_grp,
+                         sdio0_pc_1_grp, sdio0_cd_1_grp, sdio0_wp_1_grp,
+                         sdio0_pc_2_grp, sdio0_cd_2_grp, sdio0_wp_2_grp,
+                         sdio1_0_grp, sdio1_1_grp, sdio1_2_grp,
+                         sdio1_3_grp, sdio1_4_grp, sdio1_5_grp,
+                         sdio1_6_grp, sdio1_7_grp, sdio1_8_grp,
+                         sdio1_9_grp, sdio1_10_grp, sdio1_11_grp,
+                         sdio1_12_grp, sdio1_13_grp, sdio1_14_grp,
+                         sdio1_15_grp, sdio1_pc_0_grp, sdio1_cd_0_grp,
+                         sdio1_wp_0_grp, sdio1_pc_1_grp, sdio1_cd_1_grp,
+                         sdio1_wp_1_grp, nand0_0_grp, nand0_ce_0_grp,
+                         nand0_rb_0_grp, nand0_dqs_0_grp, nand0_ce_1_grp,
+                         nand0_rb_1_grp, nand0_dqs_1_grp, can0_0_grp,
+                         can0_1_grp, can0_2_grp, can0_3_grp,
+                         can0_4_grp, can0_5_grp, can0_6_grp,
+                         can0_7_grp, can0_8_grp, can0_9_grp,
+                         can0_10_grp, can0_11_grp, can0_12_grp,
+                         can0_13_grp, can0_14_grp, can0_15_grp,
+                         can0_16_grp, can0_17_grp, can0_18_grp,
+                         can1_0_grp, can1_1_grp, can1_2_grp,
+                         can1_3_grp, can1_4_grp, can1_5_grp,
+                         can1_6_grp, can1_7_grp, can1_8_grp,
+                         can1_9_grp, can1_10_grp, can1_11_grp,
+                         can1_12_grp, can1_13_grp, can1_14_grp,
+                         can1_15_grp, can1_16_grp, can1_17_grp,
+                         can1_18_grp, can1_19_grp, uart0_0_grp,
+                         uart0_1_grp, uart0_2_grp, uart0_3_grp,
+                         uart0_4_grp, uart0_5_grp, uart0_6_grp,
+                         uart0_7_grp, uart0_8_grp, uart0_9_grp,
+                         uart0_10_grp, uart0_11_grp, uart0_12_grp,
+                         uart0_13_grp, uart0_14_grp, uart0_15_grp,
+                         uart0_16_grp, uart0_17_grp, uart0_18_grp,
+                         uart1_0_grp, uart1_1_grp, uart1_2_grp,
+                         uart1_3_grp, uart1_4_grp, uart1_5_grp,
+                         uart1_6_grp, uart1_7_grp, uart1_8_grp,
+                         uart1_9_grp, uart1_10_grp, uart1_11_grp,
+                         uart1_12_grp, uart1_13_grp, uart1_14_grp,
+                         uart1_15_grp, uart1_16_grp, uart1_17_grp,
+                         uart1_18_grp, i2c0_0_grp, i2c0_1_grp,
+                         i2c0_2_grp, i2c0_3_grp, i2c0_4_grp,
+                         i2c0_5_grp, i2c0_6_grp, i2c0_7_grp,
+                         i2c0_8_grp, i2c0_9_grp, i2c0_10_grp,
+                         i2c0_11_grp, i2c0_12_grp, i2c0_13_grp,
+                         i2c0_14_grp, i2c0_15_grp, i2c0_16_grp,
+                         i2c0_17_grp, i2c0_18_grp, i2c1_0_grp,
+                         i2c1_1_grp, i2c1_2_grp, i2c1_3_grp,
+                         i2c1_4_grp, i2c1_5_grp, i2c1_6_grp,
+                         i2c1_7_grp, i2c1_8_grp, i2c1_9_grp,
+                         i2c1_10_grp, i2c1_11_grp, i2c1_12_grp,
+                         i2c1_13_grp, i2c1_14_grp, i2c1_15_grp,
+                         i2c1_16_grp, i2c1_17_grp, i2c1_18_grp,
+                         i2c1_19_grp, ttc0_clk_0_grp, ttc0_wav_0_grp,
+                         ttc0_clk_1_grp, ttc0_wav_1_grp, ttc0_clk_2_grp,
+                         ttc0_wav_2_grp, ttc0_clk_3_grp, ttc0_wav_3_grp,
+                         ttc0_clk_4_grp, ttc0_wav_4_grp, ttc0_clk_5_grp,
+                         ttc0_wav_5_grp, ttc0_clk_6_grp, ttc0_wav_6_grp,
+                         ttc0_clk_7_grp, ttc0_wav_7_grp, ttc0_clk_8_grp,
+                         ttc0_wav_8_grp, ttc1_clk_0_grp, ttc1_wav_0_grp,
+                         ttc1_clk_1_grp, ttc1_wav_1_grp, ttc1_clk_2_grp,
+                         ttc1_wav_2_grp, ttc1_clk_3_grp, ttc1_wav_3_grp,
+                         ttc1_clk_4_grp, ttc1_wav_4_grp, ttc1_clk_5_grp,
+                         ttc1_wav_5_grp, ttc1_clk_6_grp, ttc1_wav_6_grp,
+                         ttc1_clk_7_grp, ttc1_wav_7_grp, ttc1_clk_8_grp,
+                         ttc1_wav_8_grp, ttc2_clk_0_grp, ttc2_wav_0_grp,
+                         ttc2_clk_1_grp, ttc2_wav_1_grp, ttc2_clk_2_grp,
+                         ttc2_wav_2_grp, ttc2_clk_3_grp, ttc2_wav_3_grp,
+                         ttc2_clk_4_grp, ttc2_wav_4_grp, ttc2_clk_5_grp,
+                         ttc2_wav_5_grp, ttc2_clk_6_grp, ttc2_wav_6_grp,
+                         ttc2_clk_7_grp, ttc2_wav_7_grp, ttc2_clk_8_grp,
+                         ttc2_wav_8_grp, ttc3_clk_0_grp, ttc3_wav_0_grp,
+                         ttc3_clk_1_grp, ttc3_wav_1_grp, ttc3_clk_2_grp,
+                         ttc3_wav_2_grp, ttc3_clk_3_grp, ttc3_wav_3_grp,
+                         ttc3_clk_4_grp, ttc3_wav_4_grp, ttc3_clk_5_grp,
+                         ttc3_wav_5_grp, ttc3_clk_6_grp, ttc3_wav_6_grp,
+                         ttc3_clk_7_grp, ttc3_wav_7_grp, ttc3_clk_8_grp,
+                         ttc3_wav_8_grp, swdt0_clk_0_grp, swdt0_rst_0_grp,
+                         swdt0_clk_1_grp, swdt0_rst_1_grp, swdt0_clk_2_grp,
+                         swdt0_rst_2_grp, swdt0_clk_3_grp, swdt0_rst_3_grp,
+                         swdt0_clk_4_grp, swdt0_rst_4_grp, swdt0_clk_5_grp,
+                         swdt0_rst_5_grp, swdt0_clk_6_grp, swdt0_rst_6_grp,
+                         swdt0_clk_7_grp, swdt0_rst_7_grp, swdt0_clk_8_grp,
+                         swdt0_rst_8_grp, swdt0_clk_9_grp, swdt0_rst_9_grp,
+                         swdt0_clk_10_grp, swdt0_rst_10_grp, swdt0_clk_11_grp,
+                         swdt0_rst_11_grp, swdt0_clk_12_grp, swdt0_rst_12_grp,
+                         swdt1_clk_0_grp, swdt1_rst_0_grp, swdt1_clk_1_grp,
+                         swdt1_rst_1_grp, swdt1_clk_2_grp, swdt1_rst_2_grp,
+                         swdt1_clk_3_grp, swdt1_rst_3_grp, swdt1_clk_4_grp,
+                         swdt1_rst_4_grp, swdt1_clk_5_grp, swdt1_rst_5_grp,
+                         swdt1_clk_6_grp, swdt1_rst_6_grp, swdt1_clk_7_grp,
+                         swdt1_rst_7_grp, swdt1_clk_8_grp, swdt1_rst_8_grp,
+                         swdt1_clk_9_grp, swdt1_rst_9_grp, swdt1_clk_10_grp,
+                         swdt1_rst_10_grp, swdt1_clk_11_grp, swdt1_rst_11_grp,
+                         swdt1_clk_12_grp, swdt1_rst_12_grp, gpio0_0_grp,
+                         gpio0_1_grp, gpio0_2_grp, gpio0_3_grp,
+                         gpio0_4_grp, gpio0_5_grp, gpio0_6_grp,
+                         gpio0_7_grp, gpio0_8_grp, gpio0_9_grp,
+                         gpio0_10_grp, gpio0_11_grp, gpio0_12_grp,
+                         gpio0_13_grp, gpio0_14_grp, gpio0_15_grp,
+                         gpio0_16_grp, gpio0_17_grp, gpio0_18_grp,
+                         gpio0_19_grp, gpio0_20_grp, gpio0_21_grp,
+                         gpio0_22_grp, gpio0_23_grp, gpio0_24_grp,
+                         gpio0_25_grp, gpio0_26_grp, gpio0_27_grp,
+                         gpio0_28_grp, gpio0_29_grp, gpio0_30_grp,
+                         gpio0_31_grp, gpio0_32_grp, gpio0_33_grp,
+                         gpio0_34_grp, gpio0_35_grp, gpio0_36_grp,
+                         gpio0_37_grp, gpio0_38_grp, gpio0_39_grp,
+                         gpio0_40_grp, gpio0_41_grp, gpio0_42_grp,
+                         gpio0_43_grp, gpio0_44_grp, gpio0_45_grp,
+                         gpio0_46_grp, gpio0_47_grp, gpio0_48_grp,
+                         gpio0_49_grp, gpio0_50_grp, gpio0_51_grp,
+                         gpio0_52_grp, gpio0_53_grp, gpio0_54_grp,
+                         gpio0_55_grp, gpio0_56_grp, gpio0_57_grp,
+                         gpio0_58_grp, gpio0_59_grp, gpio0_60_grp,
+                         gpio0_61_grp, gpio0_62_grp, gpio0_63_grp,
+                         gpio0_64_grp, gpio0_65_grp, gpio0_66_grp,
+                         gpio0_67_grp, gpio0_68_grp, gpio0_69_grp,
+                         gpio0_70_grp, gpio0_71_grp, gpio0_72_grp,
+                         gpio0_73_grp, gpio0_74_grp, gpio0_75_grp,
+                         gpio0_76_grp, gpio0_77_grp, usb0_0_grp,
+                         usb1_0_grp, pmu0_0_grp, pmu0_1_grp,
+                         pmu0_2_grp, pmu0_3_grp, pmu0_4_grp,
+                         pmu0_5_grp, pmu0_6_grp, pmu0_7_grp,
+                         pmu0_8_grp, pmu0_9_grp, pmu0_10_grp,
+                         pmu0_11_grp, pcie0_0_grp, pcie0_1_grp,
+                         pcie0_2_grp, pcie0_3_grp, pcie0_4_grp,
+                         pcie0_5_grp, pcie0_6_grp, pcie0_7_grp,
+                         csu0_0_grp, csu0_1_grp, csu0_2_grp,
+                         csu0_3_grp, csu0_4_grp, csu0_5_grp,
+                         csu0_6_grp, csu0_7_grp, csu0_8_grp,
+                         csu0_9_grp, csu0_10_grp, csu0_11_grp,
+                         dpaux0_0_grp, dpaux0_1_grp, dpaux0_2_grp,
+                         dpaux0_3_grp, pjtag0_0_grp, pjtag0_1_grp,
+                         pjtag0_2_grp, pjtag0_3_grp, pjtag0_4_grp,
+                         pjtag0_5_grp, trace0_0_grp, trace0_clk_0_grp,
+                         trace0_1_grp, trace0_clk_1_grp, trace0_2_grp,
+                         trace0_clk_2_grp, testscan0_0_grp]
             maxItems: 78
 
           function:
@@ -230,9 +238,12 @@ patternProperties:
                    pcie0, csu0, dpaux0, pjtag0, trace0, trace0_clk, testscan0]
 
         required:
-          - groups
           - function
 
+        oneOf:
+          - required: [ groups ]
+          - required: [ pins ]
+
         additionalProperties: false
 
       '^conf':
diff --git a/Bindings/platform/lenovo,yoga-c630-ec.yaml b/Bindings/platform/lenovo,yoga-c630-ec.yaml
new file mode 100644 (file)
index 0000000..3180ce1
--- /dev/null
@@ -0,0 +1,83 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/platform/lenovo,yoga-c630-ec.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Lenovo Yoga C630 Embedded Controller.
+
+maintainers:
+  - Bjorn Andersson <andersson@kernel.org>
+
+description:
+  The Qualcomm Snapdragon-based Lenovo Yoga C630 has an Embedded Controller
+  (EC) which handles things such as battery and USB Type-C. This binding
+  describes the interface, on an I2C bus, to this EC.
+
+properties:
+  compatible:
+    const: lenovo,yoga-c630-ec
+
+  reg:
+    const: 0x70
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+  interrupts:
+    maxItems: 1
+
+patternProperties:
+  '^connector@[01]$':
+    $ref: /schemas/connector/usb-connector.yaml#
+
+    properties:
+      reg:
+        maxItems: 1
+
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |+
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c1 {
+        clock-frequency = <400000>;
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        embedded-controller@70 {
+            compatible = "lenovo,yoga-c630-ec";
+            reg = <0x70>;
+
+            interrupts-extended = <&tlmm 20 IRQ_TYPE_LEVEL_HIGH>;
+
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            connector@0 {
+                compatible = "usb-c-connector";
+                reg = <0>;
+                power-role = "source";
+                data-role = "host";
+            };
+
+            connector@1 {
+                compatible = "usb-c-connector";
+                reg = <1>;
+                power-role = "source";
+                data-role = "host";
+            };
+        };
+    };
+...
index dab3d92bc27301f6c3dcbd2ab092a466d1f34973..15d74138baa343b142be48bc96701d3280fd83d0 100644 (file)
@@ -20,6 +20,8 @@ properties:
     enum:
       - amlogic,meson-a1-pwrc
       - amlogic,meson-s4-pwrc
+      - amlogic,a4-pwrc
+      - amlogic,a5-pwrc
       - amlogic,c3-pwrc
       - amlogic,t7-pwrc
 
diff --git a/Bindings/power/supply/maxim,max17201.yaml b/Bindings/power/supply/maxim,max17201.yaml
new file mode 100644 (file)
index 0000000..fe3dd9b
--- /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/power/supply/maxim,max17201.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Maxim MAX17201 fuel gauge
+
+maintainers:
+  - Dimitri Fedrau <dima.fedrau@gmail.com>
+
+allOf:
+  - $ref: power-supply.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: maxim,max17201
+      - items:
+          - enum:
+              - maxim,max17205
+          - const: maxim,max17201
+
+  reg:
+    items:
+      - description: ModelGauge m5 registers
+      - description: Nonvolatile registers
+
+  reg-names:
+    items:
+      - const: m5
+      - const: nvmem
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - reg-names
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      fuel-gauge@36 {
+        compatible = "maxim,max17201";
+        reg = <0x36>, <0xb>;
+        reg-names = "m5", "nvmem";
+        interrupt-parent = <&gpio0>;
+        interrupts = <31 IRQ_TYPE_LEVEL_LOW>;
+      };
+    };
diff --git a/Bindings/ptp/fsl,ptp.yaml b/Bindings/ptp/fsl,ptp.yaml
new file mode 100644 (file)
index 0000000..3bb8615
--- /dev/null
@@ -0,0 +1,144 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/ptp/fsl,ptp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale QorIQ 1588 timer based PTP clock
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    enum:
+      - fsl,etsec-ptp
+      - fsl,fman-ptp-timer
+      - fsl,dpaa2-ptp
+      - fsl,enetc-ptp
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  fsl,cksel:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      Timer reference clock source.
+
+      Reference clock source is determined by the value, which is holded
+      in CKSEL bits in TMR_CTRL register. "fsl,cksel" property keeps the
+      value, which will be directly written in those bits, that is why,
+      according to reference manual, the next clock sources can be used:
+
+      For eTSEC,
+      <0> - external high precision timer reference clock (TSEC_TMR_CLK
+            input is used for this purpose);
+      <1> - eTSEC system clock;
+      <2> - eTSEC1 transmit clock;
+      <3> - RTC clock input.
+
+      For DPAA FMan,
+      <0> - external high precision timer reference clock (TMR_1588_CLK)
+      <1> - MAC system clock (1/2 FMan clock)
+      <2> - reserved
+      <3> - RTC clock oscillator
+
+  fsl,tclk-period:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Timer reference clock period in nanoseconds.
+
+  fsl,tmr-prsc:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Prescaler, divides the output clock.
+
+  fsl,tmr-add:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Frequency compensation value.
+
+  fsl,tmr-fiper1:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Fixed interval period pulse generator.
+
+  fsl,tmr-fiper2:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: Fixed interval period pulse generator.
+
+  fsl,tmr-fiper3:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      Fixed interval period pulse generator.
+      Supported only on DPAA2 and ENETC hardware.
+
+  fsl,max-adj:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      Maximum frequency adjustment in parts per billion.
+
+      These properties set the operational parameters for the PTP
+      clock. You must choose these carefully for the clock to work right.
+      Here is how to figure good values:
+
+      TimerOsc     = selected reference clock   MHz
+      tclk_period  = desired clock period       nanoseconds
+      NominalFreq  = 1000 / tclk_period         MHz
+      FreqDivRatio = TimerOsc / NominalFreq     (must be greater that 1.0)
+      tmr_add      = ceil(2^32 / FreqDivRatio)
+      OutputClock  = NominalFreq / tmr_prsc     MHz
+      PulseWidth   = 1 / OutputClock            microseconds
+      FiperFreq1   = desired frequency in Hz
+      FiperDiv1    = 1000000 * OutputClock / FiperFreq1
+      tmr_fiper1   = tmr_prsc * tclk_period * FiperDiv1 - tclk_period
+      max_adj      = 1000000000 * (FreqDivRatio - 1.0) - 1
+
+      The calculation for tmr_fiper2 is the same as for tmr_fiper1. The
+      driver expects that tmr_fiper1 will be correctly set to produce a 1
+      Pulse Per Second (PPS) signal, since this will be offered to the PPS
+      subsystem to synchronize the Linux clock.
+
+      When this attribute is not used, the IEEE 1588 timer reference clock
+      will use the eTSEC system clock (for Gianfar) or the MAC system
+      clock (for DPAA).
+
+  fsl,extts-fifo:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      The presence of this property indicates hardware
+      support for the external trigger stamp FIFO
+
+  little-endian:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      The presence of this property indicates the 1588 timer
+      support for the external trigger stamp FIFO.
+      IP block is little-endian mode. The default endian mode
+      is big-endian.
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    phc@24e00 {
+        compatible = "fsl,etsec-ptp";
+        reg = <0x24e00 0xb0>;
+        interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
+        interrupt-parent = <&ipic>;
+        fsl,cksel       = <1>;
+        fsl,tclk-period = <10>;
+        fsl,tmr-prsc    = <100>;
+        fsl,tmr-add     = <0x999999a4>;
+        fsl,tmr-fiper1  = <0x3b9ac9f6>;
+        fsl,tmr-fiper2  = <0x00018696>;
+        fsl,max-adj     = <659999998>;
+    };
diff --git a/Bindings/ptp/ptp-qoriq.txt b/Bindings/ptp/ptp-qoriq.txt
deleted file mode 100644 (file)
index 743eda7..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-* Freescale QorIQ 1588 timer based PTP clock
-
-General Properties:
-
-  - compatible   Should be "fsl,etsec-ptp" for eTSEC
-                 Should be "fsl,fman-ptp-timer" for DPAA FMan
-                 Should be "fsl,dpaa2-ptp" for DPAA2
-                 Should be "fsl,enetc-ptp" for ENETC
-  - reg          Offset and length of the register set for the device
-  - interrupts   There should be at least two interrupts. Some devices
-                 have as many as four PTP related interrupts.
-
-Clock Properties:
-
-  - fsl,cksel        Timer reference clock source.
-  - fsl,tclk-period  Timer reference clock period in nanoseconds.
-  - fsl,tmr-prsc     Prescaler, divides the output clock.
-  - fsl,tmr-add      Frequency compensation value.
-  - fsl,tmr-fiper1   Fixed interval period pulse generator.
-  - fsl,tmr-fiper2   Fixed interval period pulse generator.
-  - fsl,tmr-fiper3   Fixed interval period pulse generator.
-                     Supported only on DPAA2 and ENETC hardware.
-  - fsl,max-adj      Maximum frequency adjustment in parts per billion.
-  - fsl,extts-fifo   The presence of this property indicates hardware
-                    support for the external trigger stamp FIFO.
-  - little-endian    The presence of this property indicates the 1588 timer
-                    IP block is little-endian mode. The default endian mode
-                    is big-endian.
-
-  These properties set the operational parameters for the PTP
-  clock. You must choose these carefully for the clock to work right.
-  Here is how to figure good values:
-
-  TimerOsc     = selected reference clock   MHz
-  tclk_period  = desired clock period       nanoseconds
-  NominalFreq  = 1000 / tclk_period         MHz
-  FreqDivRatio = TimerOsc / NominalFreq     (must be greater that 1.0)
-  tmr_add      = ceil(2^32 / FreqDivRatio)
-  OutputClock  = NominalFreq / tmr_prsc     MHz
-  PulseWidth   = 1 / OutputClock            microseconds
-  FiperFreq1   = desired frequency in Hz
-  FiperDiv1    = 1000000 * OutputClock / FiperFreq1
-  tmr_fiper1   = tmr_prsc * tclk_period * FiperDiv1 - tclk_period
-  max_adj      = 1000000000 * (FreqDivRatio - 1.0) - 1
-
-  The calculation for tmr_fiper2 is the same as for tmr_fiper1. The
-  driver expects that tmr_fiper1 will be correctly set to produce a 1
-  Pulse Per Second (PPS) signal, since this will be offered to the PPS
-  subsystem to synchronize the Linux clock.
-
-  Reference clock source is determined by the value, which is holded
-  in CKSEL bits in TMR_CTRL register. "fsl,cksel" property keeps the
-  value, which will be directly written in those bits, that is why,
-  according to reference manual, the next clock sources can be used:
-
-  For eTSEC,
-  <0> - external high precision timer reference clock (TSEC_TMR_CLK
-        input is used for this purpose);
-  <1> - eTSEC system clock;
-  <2> - eTSEC1 transmit clock;
-  <3> - RTC clock input.
-
-  For DPAA FMan,
-  <0> - external high precision timer reference clock (TMR_1588_CLK)
-  <1> - MAC system clock (1/2 FMan clock)
-  <2> - reserved
-  <3> - RTC clock oscillator
-
-  When this attribute is not used, the IEEE 1588 timer reference clock
-  will use the eTSEC system clock (for Gianfar) or the MAC system
-  clock (for DPAA).
-
-Example:
-
-       ptp_clock@24e00 {
-               compatible = "fsl,etsec-ptp";
-               reg = <0x24E00 0xB0>;
-               interrupts = <12 0x8 13 0x8>;
-               interrupt-parent = < &ipic >;
-               fsl,cksel       = <1>;
-               fsl,tclk-period = <10>;
-               fsl,tmr-prsc    = <100>;
-               fsl,tmr-add     = <0x999999A4>;
-               fsl,tmr-fiper1  = <0x3B9AC9F6>;
-               fsl,tmr-fiper2  = <0x00018696>;
-               fsl,max-adj     = <659999998>;
-       };
diff --git a/Bindings/pwm/adi,axi-pwmgen.yaml b/Bindings/pwm/adi,axi-pwmgen.yaml
new file mode 100644 (file)
index 0000000..ec6115d
--- /dev/null
@@ -0,0 +1,48 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pwm/adi,axi-pwmgen.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AXI PWM generator
+
+maintainers:
+  - Michael Hennerich <Michael.Hennerich@analog.com>
+  - Nuno Sá <nuno.sa@analog.com>
+
+description:
+  The Analog Devices AXI PWM generator can generate PWM signals
+  with variable pulse width and period.
+
+  https://wiki.analog.com/resources/fpga/docs/axi_pwm_gen
+
+allOf:
+  - $ref: pwm.yaml#
+
+properties:
+  compatible:
+    const: adi,axi-pwmgen-2.00.a
+
+  reg:
+    maxItems: 1
+
+  "#pwm-cells":
+    const: 2
+
+  clocks:
+    maxItems: 1
+
+required:
+  - reg
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    pwm@44b00000 {
+       compatible = "adi,axi-pwmgen-2.00.a";
+       reg = <0x44b00000 0x1000>;
+       clocks = <&spi_clk>;
+       #pwm-cells = <2>;
+    };
index 96cd6f3c3546ffc7a94becc2397d5e4d363e4600..d20ad27657aa8c7b47802d677a396700aebb8c08 100644 (file)
@@ -23,7 +23,9 @@ properties:
               - atmel,sama5d2-pwm
               - microchip,sam9x60-pwm
       - items:
-          - const: microchip,sama7g5-pwm
+          - enum:
+              - microchip,sama7d65-pwm
+              - microchip,sama7g5-pwm
           - const: atmel,sama5d2-pwm
       - items:
           - const: microchip,sam9x7-pwm
diff --git a/Bindings/pwm/fsl,vf610-ftm-pwm.yaml b/Bindings/pwm/fsl,vf610-ftm-pwm.yaml
new file mode 100644 (file)
index 0000000..7f9f72d
--- /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/pwm/fsl,vf610-ftm-pwm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale FlexTimer Module (FTM) PWM controller
+
+description: |
+  The same FTM PWM device can have a different endianness on different SoCs. The
+  device tree provides a property to describing this so that an operating system
+  device driver can handle all variants of the device. Refer to the table below
+  for the endianness of the FTM PWM block as integrated into the existing SoCs:
+
+  SoC     | FTM-PWM endianness
+  --------+-------------------
+  Vybrid  | LE
+  LS1     | BE
+  LS2     | LE
+
+  Please see ../regmap/regmap.txt for more detail about how to specify endian
+  modes in device tree.
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    enum:
+      - fsl,vf610-ftm-pwm
+      - fsl,imx8qm-ftm-pwm
+
+  reg:
+    maxItems: 1
+
+  "#pwm-cells":
+    const: 3
+
+  clocks:
+    minItems: 4
+    maxItems: 4
+
+  clock-names:
+    items:
+      - const: ftm_sys
+      - const: ftm_ext
+      - const: ftm_fix
+      - const: ftm_cnt_clk_en
+
+  pinctrl-0: true
+  pinctrl-1: true
+
+  pinctrl-names:
+    minItems: 1
+    items:
+      - const: default
+      - const: sleep
+
+  big-endian:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Boolean property, required if the FTM PWM registers use a big-
+      endian rather than little-endian layout.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+
+allOf:
+  - $ref: pwm.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/vf610-clock.h>
+
+    pwm@40038000 {
+        compatible = "fsl,vf610-ftm-pwm";
+        reg = <0x40038000 0x1000>;
+        #pwm-cells = <3>;
+        clocks = <&clks VF610_CLK_FTM0>,
+                 <&clks VF610_CLK_FTM0_EXT_SEL>,
+                 <&clks VF610_CLK_FTM0_FIX_SEL>,
+                 <&clks VF610_CLK_FTM0_EXT_FIX_EN>;
+        clock-names = "ftm_sys", "ftm_ext", "ftm_fix", "ftm_cnt_clk_en";
+        pinctrl-names = "default";
+        pinctrl-0 = <&pinctrl_pwm0_1>;
+        big-endian;
+    };
index a84a240a61dc1f92c403dfb973420751a2c00068..04148198e34d0045483cfbc5ed1c88ff31d2d2b6 100644 (file)
@@ -68,7 +68,6 @@ required:
   - reg
   - clocks
   - clock-names
-  - interrupts
 
 additionalProperties: false
 
index 8bef9dfeba9a010e4841e14c96471b2cad5e2004..ac0a35bf8648cfd8664a07889a3c53fab25cce1e 100644 (file)
@@ -7,7 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale i.MX TPM PWM controller
 
 maintainers:
-  - Anson Huang <anson.huang@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+  - Fabio Estevam <festevam@gmail.com>
 
 description: |
   The TPM counter and period counter are shared between multiple
index 8f50e23ca8c9b3a3ead1bf9e1d554b8a4277b33e..a9d3a41ac5b9eefe5cfe5acfc358307ae28d6eb0 100644 (file)
@@ -8,7 +8,6 @@ title: Freescale MXS PWM controller
 
 maintainers:
   - Shawn Guo <shawnguo@kernel.org>
-  - Anson Huang <anson.huang@nxp.com>
 
 allOf:
   - $ref: pwm.yaml#
diff --git a/Bindings/pwm/pwm-fsl-ftm.txt b/Bindings/pwm/pwm-fsl-ftm.txt
deleted file mode 100644 (file)
index 36532cd..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-Freescale FlexTimer Module (FTM) PWM controller
-
-The same FTM PWM device can have a different endianness on different SoCs. The
-device tree provides a property to describing this so that an operating system
-device driver can handle all variants of the device. Refer to the table below
-for the endianness of the FTM PWM block as integrated into the existing SoCs:
-
-       SoC     | FTM-PWM endianness
-       --------+-------------------
-       Vybrid  | LE
-       LS1     | BE
-       LS2     | LE
-
-Please see ../regmap/regmap.txt for more detail about how to specify endian
-modes in device tree.
-
-
-Required properties:
-- compatible : should be "fsl,<soc>-ftm-pwm" and one of the following
-   compatible strings:
-  - "fsl,vf610-ftm-pwm" for PWM compatible with the one integrated on VF610
-  - "fsl,imx8qm-ftm-pwm" for PWM compatible with the one integrated on i.MX8QM
-- reg: Physical base address and length of the controller's registers
-- #pwm-cells: Should be 3. See pwm.yaml in this directory for a description of
-  the cells format.
-- clock-names: Should include the following module clock source entries:
-    "ftm_sys" (module clock, also can be used as counter clock),
-    "ftm_ext" (external counter clock),
-    "ftm_fix" (fixed counter clock),
-    "ftm_cnt_clk_en" (external and fixed counter clock enable/disable).
-- clocks: Must contain a phandle and clock specifier for each entry in
-  clock-names, please see clock/clock-bindings.txt for details of the property
-  values.
-- pinctrl-names: Must contain a "default" entry.
-- pinctrl-NNN: One property must exist for each entry in pinctrl-names.
-  See pinctrl/pinctrl-bindings.txt for details of the property values.
-- big-endian: Boolean property, required if the FTM PWM registers use a big-
-  endian rather than little-endian layout.
-
-Example:
-
-pwm0: pwm@40038000 {
-               compatible = "fsl,vf610-ftm-pwm";
-               reg = <0x40038000 0x1000>;
-               #pwm-cells = <3>;
-               clock-names = "ftm_sys", "ftm_ext",
-                               "ftm_fix", "ftm_cnt_clk_en";
-               clocks = <&clks VF610_CLK_FTM0>,
-                       <&clks VF610_CLK_FTM0_EXT_SEL>,
-                       <&clks VF610_CLK_FTM0_FIX_SEL>,
-                       <&clks VF610_CLK_FTM0_EXT_FIX_EN>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_pwm0_1>;
-               big-endian;
-};
diff --git a/Bindings/pwm/pwm-gpio.yaml b/Bindings/pwm/pwm-gpio.yaml
new file mode 100644 (file)
index 0000000..1576c19
--- /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/pwm/pwm-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic software PWM for modulating GPIOs
+
+maintainers:
+  - Stefan Wahren <wahrenst@gmx.net>
+
+allOf:
+  - $ref: pwm.yaml#
+
+properties:
+  compatible:
+    const: pwm-gpio
+
+  "#pwm-cells":
+    const: 3
+    description:
+      See pwm.yaml in this directory for a description of the cells format.
+      The first cell which represents the PWM instance number must always
+      be zero.
+
+  gpios:
+    description:
+      GPIO to be modulated
+    maxItems: 1
+
+required:
+  - compatible
+  - "#pwm-cells"
+  - gpios
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    pwm {
+        #pwm-cells = <3>;
+        compatible = "pwm-gpio";
+        gpios = <&gpio 1 GPIO_ACTIVE_HIGH>;
+    };
index abd9fa873354e2d7b3768279b08037482a3eaae3..f2206ec3c7c4c15a44300df48f6c6a9166a2b550 100644 (file)
@@ -16,8 +16,10 @@ properties:
     pattern: "^pwm(@.*|-([0-9]|[1-9][0-9]+))?$"
 
   "#pwm-cells":
-    description:
-      Number of cells in a PWM specifier.
+    description: |
+      Number of cells in a PWM specifier. Typically the cells represent, in
+      order: the chip-relative PWM number, the PWM period in nanoseconds and
+      optionally a number of flags (defined in <dt-bindings/pwm/pwm.h>).
 
 required:
   - "#pwm-cells"
diff --git a/Bindings/regulator/mediatek,mt6873-dvfsrc-regulator.yaml b/Bindings/regulator/mediatek,mt6873-dvfsrc-regulator.yaml
new file mode 100644 (file)
index 0000000..7048286
--- /dev/null
@@ -0,0 +1,43 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/mediatek,mt6873-dvfsrc-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MediaTek DVFSRC-controlled Regulators
+
+description:
+  The Dynamic Voltage and Frequency Scaling Resource Collector Regulators
+  are controlled with votes to the DVFSRC hardware.
+
+maintainers:
+  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+
+properties:
+  compatible:
+    enum:
+      - mediatek,mt6873-dvfsrc-regulator
+      - mediatek,mt8183-dvfsrc-regulator
+      - mediatek,mt8192-dvfsrc-regulator
+      - mediatek,mt8195-dvfsrc-regulator
+
+  dvfsrc-vcore:
+    description: DVFSRC-controlled SoC Vcore regulator
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+
+  dvfsrc-vscp:
+    description: DVFSRC-controlled System Control Processor regulator
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+
+anyOf:
+  - required:
+      - dvfsrc-vcore
+  - required:
+      - dvfsrc-vscp
+
+additionalProperties: false
index 6317daf76d1fbecacda7256340d55d2983af7bd2..cd4aa27218a1b68fb82d45a4d85c7e1168971086 100644 (file)
@@ -16,7 +16,11 @@ description: |
 
 properties:
   compatible:
-    const: mediatek,mt6315-regulator
+    oneOf:
+      - items:
+          - const: mediatek,mt6319-regulator
+          - const: mediatek,mt6315-regulator
+      - const: mediatek,mt6315-regulator
 
   reg:
     maxItems: 1
index 849bfa50bdbaba0ad1c7df3f810400441cac7c05..f8057bba747a5a5da68178c14a3dc71e99942e08 100644 (file)
@@ -96,7 +96,6 @@ properties:
 required:
   - compatible
   - reg
-  - interrupts
   - regulators
 
 additionalProperties: false
diff --git a/Bindings/regulator/qcom,qca6390-pmu.yaml b/Bindings/regulator/qcom,qca6390-pmu.yaml
new file mode 100644 (file)
index 0000000..3aaa965
--- /dev/null
@@ -0,0 +1,185 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/qcom,qca6390-pmu.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Technologies, Inc. QCA6390 PMU Regulators
+
+maintainers:
+  - Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
+
+description:
+  The QCA6390 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,qca6390-pmu
+      - qcom,wcn7850-pmu
+
+  vdd-supply:
+    description: VDD supply regulator handle
+
+  vddaon-supply:
+    description: VDD_AON supply regulator handle
+
+  vdddig-supply:
+    description: VDD_DIG supply regulator handle
+
+  vddpmu-supply:
+    description: VDD_PMU supply regulator handle
+
+  vddio1p2-supply:
+    description: VDD_IO_1P2 supply regulator handle
+
+  vddrfa0p95-supply:
+    description: VDD_RFA_0P95 supply regulator handle
+
+  vddrfa1p2-supply:
+    description: VDD_RFA_1P2 supply regulator handle
+
+  vddrfa1p3-supply:
+    description: VDD_RFA_1P3 supply regulator handle
+
+  vddrfa1p8-supply:
+    description: VDD_RFA_1P8 supply regulator handle
+
+  vddrfa1p9-supply:
+    description: VDD_RFA_1P9 supply regulator handle
+
+  vddpcie1p3-supply:
+    description: VDD_PCIE_1P3 supply regulator handle
+
+  vddpcie1p9-supply:
+    description: VDD_PCIE_1P9 supply regulator handle
+
+  vddio-supply:
+    description: VDD_IO supply regulator handle
+
+  wlan-enable-gpios:
+    maxItems: 1
+    description: GPIO line enabling the ATH11K WLAN module supplied by the PMU
+
+  bt-enable-gpios:
+    maxItems: 1
+    description: GPIO line enabling the ATH11K Bluetooth module supplied by the PMU
+
+  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
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: qcom,qca6390-pmu
+    then:
+      required:
+        - vddaon-supply
+        - vddpmu-supply
+        - vddrfa0p95-supply
+        - vddrfa1p3-supply
+        - vddrfa1p9-supply
+        - vddpcie1p3-supply
+        - vddpcie1p9-supply
+        - vddio-supply
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: qcom,wcn7850-pmu
+    then:
+      required:
+        - vdd-supply
+        - vddio-supply
+        - vddaon-supply
+        - vdddig-supply
+        - vddrfa1p2-supply
+        - vddrfa1p8-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    pmu {
+        compatible = "qcom,qca6390-pmu";
+
+        pinctrl-names = "default";
+        pinctrl-0 = <&bt_en_state>, <&wlan_en_state>;
+
+        vddaon-supply = <&vreg_s6a_0p95>;
+        vddpmu-supply = <&vreg_s2f_0p95>;
+        vddrfa0p95-supply = <&vreg_s2f_0p95>;
+        vddrfa1p3-supply = <&vreg_s8c_1p3>;
+        vddrfa1p9-supply = <&vreg_s5a_1p9>;
+        vddpcie1p3-supply = <&vreg_s8c_1p3>;
+        vddpcie1p9-supply = <&vreg_s5a_1p9>;
+        vddio-supply = <&vreg_s4a_1p8>;
+
+        wlan-enable-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
+        bt-enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
+
+        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_1p7: ldo7 {
+                regulator-name = "vreg_pmu_rfa_1p7";
+            };
+
+            vreg_pmu_pcie_0p9: ldo8 {
+                regulator-name = "vreg_pmu_pcie_0p9";
+            };
+
+            vreg_pmu_pcie_1p8: ldo9 {
+                regulator-name = "vreg_pmu_pcie_1p8";
+            };
+        };
+    };
index 609c06615bdc39c0b08f87857c6e4a60fd2d95e8..87accc6f13b8fc75c0caad1f1990e144ef91b9d4 100644 (file)
@@ -75,6 +75,12 @@ properties:
         description:
           regulator description for ldo[1-2].
 
+        properties:
+          richtek,fixed-microvolt:
+            description: |
+              This property can be used to set a fixed operating voltage that lies outside
+              the range of the regulator's adjustable mode.
+
 required:
   - compatible
   - reg
@@ -177,6 +183,8 @@ examples:
             };
           };
           ldo1 {
+            /* Fixed LDO VOUT */
+            richtek,fixed-microvolt = <1200000>;
             regulator-min-microvolt = <1200000>;
             regulator-max-microvolt = <1200000>;
             regulator-always-on;
@@ -185,7 +193,8 @@ examples:
             };
           };
           ldo2 {
-            regulator-min-microvolt = <3300000>;
+            /* Adjustable LDO VOUT */
+            regulator-min-microvolt = <1800000>;
             regulator-max-microvolt = <3300000>;
             regulator-always-on;
             regulator-state-mem {
diff --git a/Bindings/regulator/rohm,bd96801-regulator.yaml b/Bindings/regulator/rohm,bd96801-regulator.yaml
new file mode 100644 (file)
index 0000000..b3d2d7d
--- /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/regulator/rohm,bd96801-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ROHM BD96801 Power Management Integrated Circuit regulators
+
+maintainers:
+  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
+
+description:
+  This module is part of the ROHM BD96801 MFD device. For more details
+  see Documentation/devicetree/bindings/mfd/rohm,bd96801-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 BD96801 regulator nodes are
+  buck1, buck2, buck3, buck4, ldo5, ldo6, ldo7
+
+patternProperties:
+  "^ldo[5-7]$":
+    type: object
+    description:
+      Properties for single LDO regulator.
+    $ref: regulator.yaml#
+
+    properties:
+      rohm,initial-voltage-microvolt:
+        description:
+          Initial voltage for regulator. Voltage can be tuned +/-150 mV from
+          this value. NOTE, This can be modified via I2C only when PMIC is in
+          STBY state.
+        minimum: 300000
+        maximum: 3300000
+
+    unevaluatedProperties: false
+
+  "^buck[1-4]$":
+    type: object
+    description:
+      Properties for single BUCK regulator.
+    $ref: regulator.yaml#
+
+    properties:
+      rohm,initial-voltage-microvolt:
+        description:
+          Initial voltage for regulator. Voltage can be tuned +/-150 mV from
+          this value. NOTE, This can be modified via I2C only when PMIC is in
+          STBY state.
+        minimum: 500000
+        maximum: 3300000
+
+      rohm,keep-on-stby:
+        description:
+          Keep the regulator powered when PMIC transitions to STBY state.
+        type: boolean
+
+    unevaluatedProperties: false
+
+additionalProperties: false
diff --git a/Bindings/regulator/sprd,sc2731-regulator.txt b/Bindings/regulator/sprd,sc2731-regulator.txt
deleted file mode 100644 (file)
index 63dc078..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-Spreadtrum SC2731 Voltage regulators
-
-The SC2731 integrates low-voltage and low quiescent current DCDC/LDO.
-14 LDO and 3 DCDCs are designed for external use. All DCDCs/LDOs have
-their own bypass (power-down) control signals. External tantalum or MLCC
-ceramic capacitors are recommended to use with these LDOs.
-
-Required properties:
- - compatible: should be "sprd,sc27xx-regulator".
-
-List of regulators provided by this controller. It is named according to
-its regulator type, BUCK_<name> and LDO_<name>. The definition for each
-of these nodes is defined using the standard binding for regulators at
-Documentation/devicetree/bindings/regulator/regulator.txt.
-
-The valid names for regulators are:
-BUCK:
-       BUCK_CPU0, BUCK_CPU1, BUCK_RF
-LDO:
-       LDO_CAMA0, LDO_CAMA1, LDO_CAMMOT, LDO_VLDO, LDO_EMMCCORE, LDO_SDCORE,
-       LDO_SDIO, LDO_WIFIPA, LDO_USB33, LDO_CAMD0, LDO_CAMD1, LDO_CON,
-       LDO_CAMIO, LDO_SRAM
-
-Example:
-       regulators {
-               compatible = "sprd,sc27xx-regulator";
-
-               vddarm0: BUCK_CPU0 {
-                       regulator-name = "vddarm0";
-                       regulator-min-microvolt = <400000>;
-                       regulator-max-microvolt = <1996875>;
-                       regulator-ramp-delay = <25000>;
-                       regulator-always-on;
-               };
-
-               vddcama0: LDO_CAMA0 {
-                       regulator-name = "vddcama0";
-                       regulator-min-microvolt = <1200000>;
-                       regulator-max-microvolt = <3750000>;
-                       regulator-enable-ramp-delay = <100>;
-               };
-               ...
-       };
diff --git a/Bindings/regulator/sprd,sc2731-regulator.yaml b/Bindings/regulator/sprd,sc2731-regulator.yaml
new file mode 100644 (file)
index 0000000..ffb2924
--- /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/regulator/sprd,sc2731-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Spreadtrum SC2731 Power Management IC regulators
+
+maintainers:
+  - Orson Zhai <orsonzhai@gmail.com>
+  - Baolin Wang <baolin.wang7@gmail.com>
+  - Chunyan Zhang <zhang.lyra@gmail.com>
+
+description: |
+  The SC2731 integrates low-voltage and low quiescent current DCDC/LDO.
+  14 LDO and 3 DCDCs are designed for external use. All DCDCs/LDOs have
+  their own bypass (power-down) control signals. It is recommended to use
+  external tantalum or MLCC ceramic capacitors with these LDOs.
+  Valid names for the regulators are:
+    BUCK:
+      BUCK_CPU0, BUCK_CPU1, BUCK_RF
+    LDO:
+      LDO_CAMA0, LDO_CAMA1, LDO_CAMD0, LDO_CAMD1, LDO_CAMIO, LDO_CAMMOT,
+      LDO_CON, LDO_EMMCCORE, LDO_SDCORE, LDO_SDIO, LDO_SRAM, LDO_USB33,
+      LDO_VLDO, LDO_WIFIPA
+
+properties:
+  compatible:
+    const: sprd,sc2731-regulator
+
+patternProperties:
+  "^BUCK_(CPU[0-1]|RF)$":
+    type: object
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+
+  "^LDO_(CAM(A0|A1|D0|D1|IO|MOT)|CON|EMMCCORE|SD(CORE|IO)|SRAM|USB33|VLDO|WIFIPA)$":
+    type: object
+    $ref: regulator.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+
+additionalProperties: false
+
+examples:
+  - |
+    regulators {
+      compatible = "sprd,sc2731-regulator";
+
+      BUCK_CPU0 {
+        regulator-name = "vddarm0";
+        regulator-min-microvolt = <400000>;
+        regulator-max-microvolt = <1996875>;
+        regulator-ramp-delay = <25000>;
+        regulator-always-on;
+      };
+
+      LDO_CAMA0 {
+        regulator-name = "vddcama0";
+        regulator-min-microvolt = <1200000>;
+        regulator-max-microvolt = <3750000>;
+        regulator-enable-ramp-delay = <100>;
+      };
+    };
+...
index c9586d277f41a1810b9e8e5b3dfef529d8fbac2a..3cb2dad18781b3a9b64650213f171846a79ccd1f 100644 (file)
@@ -11,7 +11,12 @@ maintainers:
 
 properties:
   compatible:
-    const: st,stm32mp1,pwr-reg
+    oneOf:
+      - items:
+          - const: st,stm32mp1,pwr-reg
+      - items:
+          - const: st,stm32mp13-pwr-reg
+          - const: st,stm32mp1,pwr-reg
 
   reg:
     maxItems: 1
index 6a6d1a3d6fa7e75fb387d936219ec2a8e9c3f713..873d92738eb07f4a938f5a34d4c126374a775190 100644 (file)
@@ -23,6 +23,8 @@ properties:
   reg:
     maxItems: 1
 
+  vin-supply: true
+
 patternProperties:
   "^out[pn]$":
     type: object
@@ -65,6 +67,7 @@ examples:
         regulator@3e {
             compatible = "ti,tps65132";
             reg = <0x3e>;
+            vin-supply = <&supply>;
 
             outp {
                 regulator-name = "outp";
diff --git a/Bindings/regulator/twl-regulator.txt b/Bindings/regulator/twl-regulator.txt
deleted file mode 100644 (file)
index 549f804..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-TWL family of regulators
-
-Required properties:
-For twl6030 regulators/LDOs
-- compatible:
-  - "ti,twl6030-vaux1" for VAUX1 LDO
-  - "ti,twl6030-vaux2" for VAUX2 LDO
-  - "ti,twl6030-vaux3" for VAUX3 LDO
-  - "ti,twl6030-vmmc" for VMMC LDO
-  - "ti,twl6030-vpp" for VPP LDO
-  - "ti,twl6030-vusim" for VUSIM LDO
-  - "ti,twl6030-vana" for VANA LDO
-  - "ti,twl6030-vcxio" for VCXIO LDO
-  - "ti,twl6030-vdac" for VDAC LDO
-  - "ti,twl6030-vusb" for VUSB LDO
-  - "ti,twl6030-v1v8" for V1V8 LDO
-  - "ti,twl6030-v2v1" for V2V1 LDO
-  - "ti,twl6030-vdd1" for VDD1 SMPS
-  - "ti,twl6030-vdd2" for VDD2 SMPS
-  - "ti,twl6030-vdd3" for VDD3 SMPS
-For twl6032 regulators/LDOs
-- compatible:
-  - "ti,twl6032-ldo1" for LDO1 LDO
-  - "ti,twl6032-ldo2" for LDO2 LDO
-  - "ti,twl6032-ldo3" for LDO3 LDO
-  - "ti,twl6032-ldo4" for LDO4 LDO
-  - "ti,twl6032-ldo5" for LDO5 LDO
-  - "ti,twl6032-ldo6" for LDO6 LDO
-  - "ti,twl6032-ldo7" for LDO7 LDO
-  - "ti,twl6032-ldoln" for LDOLN LDO
-  - "ti,twl6032-ldousb" for LDOUSB LDO
-  - "ti,twl6032-smps3" for SMPS3 SMPS
-  - "ti,twl6032-smps4" for SMPS4 SMPS
-  - "ti,twl6032-vio" for VIO SMPS
-For twl4030 regulators/LDOs
-- compatible:
-  - "ti,twl4030-vaux1" for VAUX1 LDO
-  - "ti,twl4030-vaux2" for VAUX2 LDO
-  - "ti,twl5030-vaux2" for VAUX2 LDO
-  - "ti,twl4030-vaux3" for VAUX3 LDO
-  - "ti,twl4030-vaux4" for VAUX4 LDO
-  - "ti,twl4030-vmmc1" for VMMC1 LDO
-  - "ti,twl4030-vmmc2" for VMMC2 LDO
-  - "ti,twl4030-vpll1" for VPLL1 LDO
-  - "ti,twl4030-vpll2" for VPLL2 LDO
-  - "ti,twl4030-vsim" for VSIM LDO
-  - "ti,twl4030-vdac" for VDAC LDO
-  - "ti,twl4030-vintana2" for VINTANA2 LDO
-  - "ti,twl4030-vio" for VIO LDO
-  - "ti,twl4030-vdd1" for VDD1 SMPS
-  - "ti,twl4030-vdd2" for VDD2 SMPS
-  - "ti,twl4030-vintana1" for VINTANA1 LDO
-  - "ti,twl4030-vintdig" for VINTDIG LDO
-  - "ti,twl4030-vusb1v5" for VUSB1V5 LDO
-  - "ti,twl4030-vusb1v8" for VUSB1V8 LDO
-  - "ti,twl4030-vusb3v1" for VUSB3V1 LDO
-
-Optional properties:
-- Any optional property defined in bindings/regulator/regulator.txt
-For twl4030 regulators/LDOs:
- - regulator-initial-mode:
-  - 0x08 - Sleep mode, the nominal output voltage is maintained with low power
-           consumption with low load current capability.
-  - 0x0e - Active mode, the regulator can deliver its nominal output voltage
-           with full-load current capability.
-
-Example:
-
-       xyz: regulator@0 {
-               compatible = "ti,twl6030-vaux1";
-               regulator-min-microvolt  = <1000000>;
-               regulator-max-microvolt  = <3000000>;
-       };
-
-For twl6030 regulators/LDOs:
-
- - ti,retain-on-reset: Does not turn off the supplies during warm
-                       reset. Could be needed for VMMC, as TWL6030
-                       reset sequence for this signal does not comply
-                       with the SD specification.
index df36e29d974ca08850df5b0dc864f33d52d93470..57d75acb0b5e52ca49d1361176fdebc18a0bf7a2 100644 (file)
@@ -59,6 +59,7 @@ properties:
     maxItems: 32
 
   power-domains:
+    minItems: 2
     maxItems: 8
 
   fsl,auto-boot:
@@ -99,6 +100,20 @@ allOf:
       properties:
         fsl,iomuxc-gpr: false
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx8qxp-cm4
+              - fsl,imx8qm-cm4
+    then:
+      required:
+        - power-domains
+    else:
+      properties:
+        power-domains: false
+
 additionalProperties: false
 
 examples:
index 7afafde17a38bfcb41abfb960841b054abf9faa7..61cf4fe19ca53ebe33397ccbdcf29b936476eef0 100644 (file)
@@ -8,7 +8,7 @@ title: Qualcomm Resource Power Manager (RPM) Processor/Subsystem
 
 maintainers:
   - Bjorn Andersson <andersson@kernel.org>
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
   - Stephan Gerhold <stephan@gerhold.net>
 
 description: |
diff --git a/Bindings/remoteproc/qcom,sa8775p-pas.yaml b/Bindings/remoteproc/qcom,sa8775p-pas.yaml
new file mode 100644 (file)
index 0000000..7fe401a
--- /dev/null
@@ -0,0 +1,160 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/remoteproc/qcom,sa8775p-pas.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SA8775p Peripheral Authentication Service
+
+maintainers:
+  - Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
+
+description:
+  Qualcomm SA8775p SoC Peripheral Authentication Service loads and boots firmware
+  on the Qualcomm DSP Hexagon cores.
+
+properties:
+  compatible:
+    enum:
+      - qcom,sa8775p-adsp-pas
+      - qcom,sa8775p-cdsp0-pas
+      - qcom,sa8775p-cdsp1-pas
+      - qcom,sa8775p-gpdsp0-pas
+      - qcom,sa8775p-gpdsp1-pas
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: XO clock
+
+  clock-names:
+    items:
+      - const: xo
+
+  qcom,qmp:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: Reference to the AOSS side-channel message RAM.
+
+  firmware-name:
+    $ref: /schemas/types.yaml#/definitions/string-array
+    items:
+      - description: Firmware name of the Hexagon core
+
+  memory-region:
+    items:
+      - description: Memory region for main Firmware authentication
+
+  interrupts:
+    maxItems: 5
+
+  interrupt-names:
+    maxItems: 5
+
+required:
+  - compatible
+  - reg
+  - memory-region
+
+allOf:
+  - $ref: /schemas/remoteproc/qcom,pas-common.yaml#
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,sa8775p-adsp-pas
+    then:
+      properties:
+        power-domains:
+          items:
+            - description: LCX power domain
+            - description: LMX power domain
+        power-domain-names:
+          items:
+            - const: lcx
+            - const: lmx
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,sa8775p-cdsp0-pas
+            - qcom,sa8775p-cdsp1-pas
+    then:
+      properties:
+        power-domains:
+          items:
+            - description: CX power domain
+            - description: MXC power domain
+            - description: NSP0 power domain
+        power-domain-names:
+          items:
+            - const: cx
+            - const: mxc
+            - const: nsp
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - qcom,sa8775p-gpdsp0-pas
+            - qcom,sa8775p-gpdsp1-pas
+    then:
+      properties:
+        power-domains:
+          items:
+            - description: CX power domain
+            - description: MXC power domain
+        power-domain-names:
+          items:
+            - const: cx
+            - const: mxc
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/interconnect/qcom,sa8775p-rpmh.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/mailbox/qcom-ipcc.h>
+    #include <dt-bindings/power/qcom,rpmhpd.h>
+
+    remoteproc@30000000 {
+        compatible = "qcom,sa8775p-adsp-pas";
+        reg = <0x30000000 0x100>;
+
+        interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
+                              <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
+                              <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
+                              <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
+                              <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
+        interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
+
+        clocks = <&rpmhcc RPMH_CXO_CLK>;
+        clock-names = "xo";
+
+        power-domains = <&rpmhpd RPMHPD_LCX>, <&rpmhpd RPMHPD_LMX>;
+        power-domain-names = "lcx", "lmx";
+
+        interconnects = <&lpass_ag_noc MASTER_LPASS_PROC 0 &mc_virt SLAVE_EBI1 0>;
+
+        memory-region = <&pil_adsp_mem>;
+
+        qcom,qmp = <&aoss_qmp>;
+
+        qcom,smem-states = <&smp2p_adsp_out 0>;
+        qcom,smem-state-names = "stop";
+
+        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>;
+        };
+    };
index 9768db8663ebfafaaa79bf6797a915ad2fa4bf9d..b51bb863d759e79b26b563f8c53b65246185b2cc 100644 (file)
@@ -25,9 +25,6 @@ description: |
   host processor (Arm CorePac) to perform the device management of the remote
   processor and to communicate with the remote processor.
 
-allOf:
-  - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
-
 properties:
   compatible:
     enum:
@@ -89,41 +86,57 @@ properties:
       should be defined as per the generic bindings in,
       Documentation/devicetree/bindings/sram/sram.yaml
 
-if:
-  properties:
-    compatible:
-      enum:
-        - ti,j721e-c66-dsp
-then:
-  properties:
-    reg:
-      items:
-        - description: Address and Size of the L2 SRAM internal memory region
-        - description: Address and Size of the L1 PRAM internal memory region
-        - description: Address and Size of the L1 DRAM internal memory region
-    reg-names:
-      items:
-        - const: l2sram
-        - const: l1pram
-        - const: l1dram
-else:
-  if:
-    properties:
-      compatible:
-        enum:
-          - ti,am62a-c7xv-dsp
-          - ti,j721e-c71-dsp
-          - ti,j721s2-c71-dsp
-  then:
-    properties:
-      reg:
-        items:
-          - description: Address and Size of the L2 SRAM internal memory region
-          - description: Address and Size of the L1 DRAM internal memory region
-      reg-names:
-        items:
-          - const: l2sram
-          - const: l1dram
+allOf:
+  - if:
+      properties:
+        compatible:
+          enum:
+            - ti,j721e-c66-dsp
+    then:
+      properties:
+        reg:
+          items:
+            - description: Address and Size of the L2 SRAM internal memory region
+            - description: Address and Size of the L1 PRAM internal memory region
+            - description: Address and Size of the L1 DRAM internal memory region
+        reg-names:
+          items:
+            - const: l2sram
+            - const: l1pram
+            - const: l1dram
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - ti,j721e-c71-dsp
+            - ti,j721s2-c71-dsp
+    then:
+      properties:
+        reg:
+          items:
+            - description: Address and Size of the L2 SRAM internal memory region
+            - description: Address and Size of the L1 DRAM internal memory region
+        reg-names:
+          items:
+            - const: l2sram
+            - const: l1dram
+
+  - if:
+      properties:
+        compatible:
+          enum:
+            - ti,am62a-c7xv-dsp
+    then:
+      properties:
+        reg:
+          items:
+            - description: Address and Size of the L2 SRAM internal memory region
+        reg-names:
+          items:
+            - const: l2sram
+
+  - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
 
 required:
   - compatible
index 34c5c1c08ec17ec4ab7e663b92678066ca80d724..3ce7dcecd87ae62395419fa0a655782d1282673e 100644 (file)
@@ -18,6 +18,7 @@ properties:
   compatible:
     items:
       - const: nuvoton,ma35d1-reset
+      - const: syscon
 
   reg:
     maxItems: 1
@@ -37,7 +38,7 @@ examples:
   - |
 
     system-management@40460000 {
-        compatible = "nuvoton,ma35d1-reset";
+        compatible = "nuvoton,ma35d1-reset", "syscon";
         reg = <0x40460000 0x200>;
         #reset-cells = <1>;
     };
index 03c18611e42d19649e0179165a97569656a6c35f..b0b20af15313b13f542312b154616402a0515d69 100644 (file)
@@ -42,6 +42,12 @@ properties:
       0 = Port 1 Phy reset
       1 = Port 2 Phy reset
 
+  regulator-vbus:
+    type: object
+    description: USB VBUS regulator
+    $ref: /schemas/regulator/regulator.yaml#
+    unevaluatedProperties: false
+
 required:
   - compatible
   - reg
@@ -49,6 +55,7 @@ required:
   - resets
   - power-domains
   - '#reset-cells'
+  - regulator-vbus
 
 additionalProperties: false
 
@@ -64,4 +71,7 @@ examples:
         resets = <&cpg R9A07G044_USB_PRESETN>;
         power-domains = <&cpg>;
         #reset-cells = <1>;
+        regulator-vbus {
+            regulator-name = "vbus";
+        };
     };
index e10eb98eddadd4e5186cc8e8f880775d5ff58062..1db08ce9ae270d5d1422f2956226d9a47d279dd0 100644 (file)
@@ -37,7 +37,7 @@ properties:
       The second cell should contain the reset mask corresponding to the device
       used by system controller.
 
-      Please see  http://processors.wiki.ti.com/index.php/TISCI for
+      Please see https://software-dl.ti.com/tisci/esd/latest/index.html for
       protocol documentation for the values to be used for different devices.
 
 
index d87dd50f1a4b577f525353660cb5fe82493b52f4..8edc8261241adc36f056bbe0fd14889284782928 100644 (file)
@@ -47,6 +47,7 @@ properties:
               - sifive,u74
               - sifive,u74-mc
               - thead,c906
+              - thead,c908
               - thead,c910
               - thead,c920
           - const: riscv
@@ -102,26 +103,7 @@ properties:
 
   interrupt-controller:
     type: object
-    additionalProperties: false
-    description: Describes the CPU's local interrupt controller
-
-    properties:
-      '#interrupt-cells':
-        const: 1
-
-      compatible:
-        oneOf:
-          - items:
-              - const: andestech,cpu-intc
-              - const: riscv,cpu-intc
-          - const: riscv,cpu-intc
-
-      interrupt-controller: true
-
-    required:
-      - '#interrupt-cells'
-      - compatible
-      - interrupt-controller
+    $ref: /schemas/interrupt-controller/riscv,cpu-intc.yaml#
 
   cpu-idle-states:
     $ref: /schemas/types.yaml#/definitions/phandle-array
index 468c646247aa5cebbea5cbe839c01cfacbaecf7e..a06dbc6b4928958704855c8993291b036e3d1a63 100644 (file)
@@ -177,6 +177,13 @@ properties:
             is supported as ratified at commit 5059e0ca641c ("update to
             ratified") of the riscv-zacas.
 
+        - const: zawrs
+          description: |
+            The Zawrs extension for entering a low-power state or for trapping
+            to a hypervisor while waiting on a store to a memory location, as
+            ratified in commit 98918c844281 ("Merge pull request #1217 from
+            riscv/zawrs") of riscv-isa-manual.
+
         - const: zba
           description: |
             The standard Zba bit-manipulation extension for address generation
@@ -220,6 +227,43 @@ properties:
             instructions as ratified at commit 6d33919 ("Merge pull request #158
             from hirooih/clmul-fix-loop-end-condition") of riscv-bitmanip.
 
+        - const: zca
+          description: |
+            The Zca extension part of Zc* standard extensions for code size
+            reduction, as ratified in commit 8be3419c1c0 ("Zcf doesn't exist on
+            RV64 as it contains no instructions") of riscv-code-size-reduction,
+            merged in the riscv-isa-manual by commit dbc79cf28a2 ("Initial seed
+            of zc.adoc to src tree.").
+
+        - const: zcb
+          description: |
+            The Zcb extension part of Zc* standard extensions for code size
+            reduction, as ratified in commit 8be3419c1c0 ("Zcf doesn't exist on
+            RV64 as it contains no instructions") of riscv-code-size-reduction,
+            merged in the riscv-isa-manual by commit dbc79cf28a2 ("Initial seed
+            of zc.adoc to src tree.").
+
+        - const: zcd
+          description: |
+            The Zcd extension part of Zc* standard extensions for code size
+            reduction, as ratified in commit 8be3419c1c0 ("Zcf doesn't exist on
+            RV64 as it contains no instructions") of riscv-code-size-reduction,
+            merged in the riscv-isa-manual by commit dbc79cf28a2 ("Initial seed
+            of zc.adoc to src tree.").
+
+        - const: zcf
+          description: |
+            The Zcf extension part of Zc* standard extensions for code size
+            reduction, as ratified in commit 8be3419c1c0 ("Zcf doesn't exist on
+            RV64 as it contains no instructions") of riscv-code-size-reduction,
+            merged in the riscv-isa-manual by commit dbc79cf28a2 ("Initial seed
+            of zc.adoc to src tree.").
+
+        - const: zcmop
+          description:
+            The standard Zcmop extension version 1.0, as ratified in commit
+            c732a4f39a4 ("Zcmop is ratified/1.0") of the riscv-isa-manual.
+
         - const: zfa
           description:
             The standard Zfa extension for additional floating point
@@ -363,6 +407,11 @@ properties:
             ratified in the 20191213 version of the unprivileged ISA
             specification.
 
+        - const: zimop
+          description:
+            The standard Zimop extension version 1.0, as ratified in commit
+            58220614a5f ("Zimop is ratified/1.0") of the riscv-isa-manual.
+
         - const: ztso
           description:
             The standard Ztso extension for total store ordering, as ratified
@@ -381,6 +430,36 @@ properties:
             instructions, as ratified in commit 56ed795 ("Update
             riscv-crypto-spec-vector.adoc") of riscv-crypto.
 
+        - const: zve32f
+          description:
+            The standard Zve32f extension for embedded processors, as ratified
+            in commit 6f702a2 ("Vector extensions are now ratified") of
+            riscv-v-spec.
+
+        - const: zve32x
+          description:
+            The standard Zve32x extension for embedded processors, as ratified
+            in commit 6f702a2 ("Vector extensions are now ratified") of
+            riscv-v-spec.
+
+        - const: zve64d
+          description:
+            The standard Zve64d extension for embedded processors, as ratified
+            in commit 6f702a2 ("Vector extensions are now ratified") of
+            riscv-v-spec.
+
+        - const: zve64f
+          description:
+            The standard Zve64f extension for embedded processors, as ratified
+            in commit 6f702a2 ("Vector extensions are now ratified") of
+            riscv-v-spec.
+
+        - const: zve64x
+          description:
+            The standard Zve64x extension for embedded processors, as ratified
+            in commit 6f702a2 ("Vector extensions are now ratified") of
+            riscv-v-spec.
+
         - const: zvfh
           description:
             The standard Zvfh extension for vectored half-precision
@@ -484,5 +563,58 @@ properties:
             Registers in the AX45MP datasheet.
             https://www.andestech.com/wp-content/uploads/AX45MP-1C-Rev.-5.0.0-Datasheet.pdf
 
+    allOf:
+      # Zcb depends on Zca
+      - if:
+          contains:
+            const: zcb
+        then:
+          contains:
+            const: zca
+      # Zcd depends on Zca and D
+      - if:
+          contains:
+            const: zcd
+        then:
+          allOf:
+            - contains:
+                const: zca
+            - contains:
+                const: d
+      # Zcf depends on Zca and F
+      - if:
+          contains:
+            const: zcf
+        then:
+          allOf:
+            - contains:
+                const: zca
+            - contains:
+                const: f
+      # Zcmop depends on Zca
+      - if:
+          contains:
+            const: zcmop
+        then:
+          contains:
+            const: zca
+
+allOf:
+  # Zcf extension does not exist on rv64
+  - if:
+      properties:
+        riscv,isa-extensions:
+          contains:
+            const: zcf
+        riscv,isa-base:
+          contains:
+            const: rv64i
+    then:
+      properties:
+        riscv,isa-extensions:
+          not:
+            contains:
+              const: zcf
+
 additionalProperties: true
 ...
index 4a29c890619ab86cc96f910ef145ce9facad62b3..78ce76ae1b6d7f555ca7db06e86ebc707d1428a1 100644 (file)
@@ -29,6 +29,7 @@ properties:
           - enum:
               - aldec,tysom-m-mpfs250t-rev2
               - aries,m100pfsevp
+              - beagle,beaglev-fire
               - microchip,mpfs-sev-kit
               - sundance,polarberry
           - const: microchip,mpfs
index b672f85219499890abd7cbf721041c970c63c146..4d5c857b3cac9392d2fc09aad372c5e2aaab4867 100644 (file)
@@ -27,6 +27,7 @@ properties:
       - items:
           - enum:
               - milkv,mars
+              - pine64,star64
               - starfive,visionfive-2-v1.2a
               - starfive,visionfive-2-v1.3b
           - const: starfive,jh7110
index afa52af442a7420c9045e6ab7ba2f4469f878523..f03b87e1b01c1868fa52f03254ef5a320f1f5cfc 100644 (file)
@@ -26,6 +26,9 @@ properties:
     items:
       - const: core
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
index 765d9f9edd6ef437925d0ff25d143e3c4f84269c..1a71935d8a1906591439c03b7678538e656324b6 100644 (file)
@@ -12,14 +12,17 @@ maintainers:
 
 properties:
   compatible:
-    const: samsung,exynos5250-trng
+    enum:
+      - samsung,exynos5250-trng
+      - samsung,exynos850-trng
 
   clocks:
-    maxItems: 1
+    minItems: 1
+    maxItems: 2
 
   clock-names:
-    items:
-      - const: secss
+    minItems: 1
+    maxItems: 2
 
   reg:
     maxItems: 1
@@ -30,6 +33,35 @@ required:
   - clock-names
   - reg
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynos850-trng
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: SSS (Security Sub System) operating clock
+            - description: SSS (Security Sub System) bus clock
+
+        clock-names:
+          items:
+            - const: secss
+            - const: pclk
+
+    else:
+      properties:
+        clocks:
+          items:
+            - description: SSS (Security Sub System) operating clock
+
+        clock-names:
+          items:
+            - const: secss
+
 additionalProperties: false
 
 examples:
diff --git a/Bindings/rtc/fsl,ls-ftm-alarm.yaml b/Bindings/rtc/fsl,ls-ftm-alarm.yaml
new file mode 100644 (file)
index 0000000..388102a
--- /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/rtc/fsl,ls-ftm-alarm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale FlexTimer Module (FTM) Alarm
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    enum:
+      - fsl,ls1012a-ftm-alarm
+      - fsl,ls1021a-ftm-alarm
+      - fsl,ls1028a-ftm-alarm
+      - fsl,ls1043a-ftm-alarm
+      - fsl,ls1046a-ftm-alarm
+      - fsl,ls1088a-ftm-alarm
+      - fsl,ls208xa-ftm-alarm
+      - fsl,lx2160a-ftm-alarm
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  fsl,rcpm-wakeup:
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    items:
+      - items:
+          - description: phandle to rcpm node
+          - description: bit mask of IPPDEXPCR0
+          - description: bit mask of IPPDEXPCR1
+          - description: bit mask of IPPDEXPCR2
+          - description: bit mask of IPPDEXPCR3
+          - description: bit mask of IPPDEXPCR4
+          - description: bit mask of IPPDEXPCR5
+          - description: bit mask of IPPDEXPCR6
+        minItems: 1
+    description:
+      phandle to rcpm node, Please refer
+      Documentation/devicetree/bindings/soc/fsl/rcpm.txt
+
+  big-endian:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      If the host controller is big-endian mode, specify this property.
+      The default endian mode is little-endian.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - fsl,rcpm-wakeup
+
+allOf:
+  - $ref: rtc.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    rtc@2800000 {
+        compatible = "fsl,ls1088a-ftm-alarm";
+        reg = <0x2800000 0x10000>;
+        fsl,rcpm-wakeup = <&rcpm 0x0 0x0 0x0 0x0 0x4000 0x0>;
+        interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+    };
diff --git a/Bindings/rtc/rtc-fsl-ftm-alarm.txt b/Bindings/rtc/rtc-fsl-ftm-alarm.txt
deleted file mode 100644 (file)
index fffac74..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-Freescale FlexTimer Module (FTM) Alarm
-
-Required properties:
-- compatible : Should be "fsl,<chip>-ftm-alarm", the
-              supported chips include
-              "fsl,ls1012a-ftm-alarm"
-              "fsl,ls1021a-ftm-alarm"
-              "fsl,ls1028a-ftm-alarm"
-              "fsl,ls1043a-ftm-alarm"
-              "fsl,ls1046a-ftm-alarm"
-              "fsl,ls1088a-ftm-alarm"
-              "fsl,ls208xa-ftm-alarm"
-              "fsl,lx2160a-ftm-alarm"
-- reg : Specifies base physical address and size of the register sets for the
-  FlexTimer Module.
-- interrupts : Should be the FlexTimer Module interrupt.
-- fsl,rcpm-wakeup property and rcpm node : Please refer
-       Documentation/devicetree/bindings/soc/fsl/rcpm.txt
-
-Optional properties:
-- big-endian: If the host controller is big-endian mode, specify this property.
-  The default endian mode is little-endian.
-
-Example:
-rcpm: rcpm@1e34040 {
-       compatible = "fsl,ls1088a-rcpm", "fsl,qoriq-rcpm-2.1+";
-       reg = <0x0 0x1e34040 0x0 0x18>;
-       #fsl,rcpm-wakeup-cells = <6>;
-};
-
-ftm_alarm0: timer@2800000 {
-       compatible = "fsl,ls1088a-ftm-alarm";
-       reg = <0x0 0x2800000 0x0 0x10000>;
-       fsl,rcpm-wakeup = <&rcpm 0x0 0x0 0x0 0x0 0x4000 0x0>;
-       interrupts = <0 44 4>;
-};
index 4703083d1f11fb1c3863ab06a010ce1f8fd5661e..7a0fab721cf1da958b161769c0e93e0b1f16b86d 100644 (file)
@@ -15,6 +15,7 @@ properties:
       - st,stm32-rtc
       - st,stm32h7-rtc
       - st,stm32mp1-rtc
+      - st,stm32mp25-rtc
 
   reg:
     maxItems: 1
@@ -90,7 +91,9 @@ allOf:
       properties:
         compatible:
           contains:
-            const: st,stm32mp1-rtc
+            enum:
+              - st,stm32mp1-rtc
+              - st,stm32mp25-rtc
 
     then:
       properties:
index 303d02ca4e1ba6eb3f36371d537e640306e1f1a1..ff61ffdcad1dbde65117c687c720b8017ccff6c0 100644 (file)
@@ -37,6 +37,7 @@ properties:
               - mediatek,mt7623-uart
               - mediatek,mt7629-uart
               - mediatek,mt7986-uart
+              - mediatek,mt7988-uart
               - mediatek,mt8127-uart
               - mediatek,mt8135-uart
               - mediatek,mt8173-uart
diff --git a/Bindings/serial/mrvl,pxa-ssp.txt b/Bindings/serial/mrvl,pxa-ssp.txt
deleted file mode 100644 (file)
index d10cc06..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-Device tree bindings for Marvell PXA SSP ports
-
-Required properties:
-
-       - compatible:   Must be one of
-                               mrvl,pxa25x-ssp
-                               mvrl,pxa25x-nssp
-                               mrvl,pxa27x-ssp
-                               mrvl,pxa3xx-ssp
-                               mvrl,pxa168-ssp
-                               mrvl,pxa910-ssp
-                               mrvl,ce4100-ssp
-
-       - reg:          The memory base
-       - dmas:         Two dma phandles, one for rx, one for tx
-       - dma-names:    Must be "rx", "tx"
-
-
-Example for PXA3xx:
-
-       ssp0: ssp@41000000 {
-               compatible = "mrvl,pxa3xx-ssp";
-               reg = <0x41000000 0x40>;
-               ssp-id = <1>;
-               interrupts = <24>;
-               clock-names = "pxa27x-ssp.0";
-               dmas = <&dma 13
-                       &dma 14>;
-               dma-names = "rx", "tx";
-       };
-
-       ssp1: ssp@41700000 {
-               compatible = "mrvl,pxa3xx-ssp";
-               reg = <0x41700000 0x40>;
-               ssp-id = <2>;
-               interrupts = <16>;
-               clock-names = "pxa27x-ssp.1";
-               dmas = <&dma 15
-                       &dma 16>;
-               dma-names = "rx", "tx";
-       };
-
-       ssp2: ssp@41900000 {
-               compatibl3 = "mrvl,pxa3xx-ssp";
-               reg = <0x41900000 0x40>;
-               ssp-id = <3>;
-               interrupts = <0>;
-               clock-names = "pxa27x-ssp.2";
-               dmas = <&dma 66
-                       &dma 67>;
-               dma-names = "rx", "tx";
-       };
-
-       ssp3: ssp@41a00000 {
-               compatible = "mrvl,pxa3xx-ssp";
-               reg = <0x41a00000 0x40>;
-               ssp-id = <4>;
-               interrupts = <13>;
-               clock-names = "pxa27x-ssp.3";
-               dmas = <&dma 2
-                       &dma 3>;
-               dma-names = "rx", "tx";
-       };
-
index 5dec15b7e7c39af75604bd08ec1c1f14a19d953e..88871480018e22830e1d2edd19face6e33cd1ca5 100644 (file)
@@ -28,6 +28,9 @@ properties:
   clocks:
     maxItems: 1
 
+  reset-gpios:
+    maxItems: 1
+
   clock-frequency:
     description:
       When there is no clock provider visible to the platform, this
@@ -91,6 +94,7 @@ unevaluatedProperties: false
 examples:
   - |
     #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
     i2c {
         #address-cells = <1>;
         #size-cells = <0>;
@@ -120,6 +124,7 @@ examples:
             compatible = "nxp,sc16is752";
             reg = <0x54>;
             clocks = <&clk20m>;
+            reset-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
             interrupt-parent = <&gpio3>;
             interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
             nxp,modem-control-line-ports = <0 1>; /* Ports 0 and 1 as modem control lines */
index f3a3eb2831e9fd5fb1a1192b906172cebf6502d1..afc7c05898a18f7f50c940314e2b3f436d235c61 100644 (file)
@@ -9,9 +9,6 @@ title: Renesas Serial Communication Interface with FIFO (SCIF)
 maintainers:
   - Geert Uytterhoeven <geert+renesas@glider.be>
 
-allOf:
-  - $ref: serial.yaml#
-
 properties:
   compatible:
     oneOf:
@@ -83,6 +80,8 @@ properties:
               - renesas,scif-r9a08g045      # RZ/G3S
           - const: renesas,scif-r9a07g044   # RZ/G2{L,LC} fallback
 
+      - const: renesas,scif-r9a09g057       # RZ/V2H(P)
+
   reg:
     maxItems: 1
 
@@ -90,11 +89,6 @@ properties:
     oneOf:
       - items:
           - description: A combined interrupt
-      - items:
-          - description: Error interrupt
-          - description: Receive buffer full interrupt
-          - description: Transmit buffer empty interrupt
-          - description: Break interrupt
       - items:
           - description: Error interrupt
           - description: Receive buffer full interrupt
@@ -102,21 +96,23 @@ properties:
           - description: Break interrupt
           - description: Data Ready interrupt
           - description: Transmit End interrupt
+          - description: Transmit End/Data Ready interrupt
+          - description: Receive buffer full interrupt (EDGE trigger)
+          - description: Transmit buffer empty interrupt (EDGE trigger)
+        minItems: 4
 
   interrupt-names:
-    oneOf:
-      - items:
-          - const: eri
-          - const: rxi
-          - const: txi
-          - const: bri
-      - items:
-          - const: eri
-          - const: rxi
-          - const: txi
-          - const: bri
-          - const: dri
-          - const: tei
+    minItems: 4
+    items:
+      - const: eri
+      - const: rxi
+      - const: txi
+      - const: bri
+      - const: dri
+      - const: tei
+      - const: tei-dri
+      - const: rxi-edge
+      - const: txi-edge
 
   clocks:
     minItems: 1
@@ -161,18 +157,92 @@ required:
   - clock-names
   - power-domains
 
-if:
-  properties:
-    compatible:
-      contains:
-        enum:
-          - renesas,rcar-gen2-scif
-          - renesas,rcar-gen3-scif
-          - renesas,rcar-gen4-scif
-          - renesas,scif-r9a07g044
-then:
-  required:
-    - resets
+allOf:
+  - $ref: serial.yaml#
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,rcar-gen2-scif
+              - renesas,rcar-gen3-scif
+              - renesas,rcar-gen4-scif
+              - renesas,scif-r9a07g044
+              - renesas,scif-r9a09g057
+    then:
+      required:
+        - resets
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,rcar-gen1-scif
+              - renesas,rcar-gen2-scif
+              - renesas,rcar-gen3-scif
+              - renesas,rcar-gen4-scif
+    then:
+      properties:
+        interrupts:
+          maxItems: 1
+
+        interrupt-names: false
+    else:
+      required:
+        - interrupt-names
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,scif-r7s72100
+    then:
+      properties:
+        interrupts:
+          minItems: 4
+          maxItems: 4
+
+        interrupt-names:
+          maxItems: 4
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,scif-r7s9210
+              - renesas,scif-r9a07g044
+    then:
+      properties:
+        interrupts:
+          minItems: 6
+          maxItems: 6
+
+        interrupt-names:
+          minItems: 6
+          maxItems: 6
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,scif-r9a09g057
+    then:
+      properties:
+        clocks:
+          maxItems: 1
+
+        clock-names:
+          maxItems: 1
+
+        interrupts:
+          minItems: 9
+
+        interrupt-names:
+          minItems: 9
 
 unevaluatedProperties: false
 
index 1001d2a6ace85fbc37304304049b1e2cdaad781d..4cdb0dcaccf38886d161319c2489209d05b2718c 100644 (file)
@@ -13,6 +13,20 @@ allOf:
   - $ref: serial.yaml#
   - $ref: rs485.yaml#
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: starfive,jh7110-uart
+    then:
+      properties:
+        resets:
+          minItems: 2
+    else:
+      properties:
+        resets:
+          maxItems: 1
+
 properties:
   compatible:
     oneOf:
@@ -48,6 +62,7 @@ properties:
           - enum:
               - starfive,jh7100-hsuart
               - starfive,jh7100-uart
+              - starfive,jh7110-uart
           - const: snps,dw-apb-uart
       - const: snps,dw-apb-uart
 
@@ -82,7 +97,8 @@ properties:
     type: boolean
 
   resets:
-    maxItems: 1
+    minItems: 1
+    maxItems: 2
 
   reg-shift: true
 
diff --git a/Bindings/serial/via,vt8500-uart.yaml b/Bindings/serial/via,vt8500-uart.yaml
new file mode 100644 (file)
index 0000000..9c68192
--- /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/serial/via,vt8500-uart.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: VIA VT8500 and WonderMedia WM8xxx UART Controller
+
+maintainers:
+  - Alexey Charkov <alchark@gmail.com>
+
+allOf:
+  - $ref: serial.yaml
+
+properties:
+  compatible:
+    enum:
+      - via,vt8500-uart # up to WM8850/WM8950
+      - wm,wm8880-uart  # for WM8880 and later
+
+  clocks:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - clocks
+  - interrupts
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    serial@d8200000 {
+        compatible = "via,vt8500-uart";
+        reg = <0xd8200000 0x1040>;
+        interrupts = <32>;
+        clocks = <&clkuart0>;
+    };
diff --git a/Bindings/serial/vt8500-uart.txt b/Bindings/serial/vt8500-uart.txt
deleted file mode 100644 (file)
index 2b64e61..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-* VIA VT8500 and WonderMedia WM8xxx UART Controller
-
-Required properties:
-- compatible: should be "via,vt8500-uart" (for VIA/WonderMedia chips up to and
-       including WM8850/WM8950), or "wm,wm8880-uart" (for WM8880 and later)
-
-- reg: base physical address of the controller and length of memory mapped
-       region.
-
-- interrupts: hardware interrupt number
-
-- clocks: shall be the input parent clock phandle for the clock. This should
-       be the 24Mhz reference clock.
-
-Aliases may be defined to ensure the correct ordering of the uarts.
-
-Example:
-       aliases {
-               serial0 = &uart0;
-       };
-
-       uart0: serial@d8200000 {
-               compatible = "via,vt8500-uart";
-               reg = <0xd8200000 0x1040>;
-               interrupts = <32>;
-               clocks = <&clkuart0>;
-       };
diff --git a/Bindings/soc/fsl/bman-portals.txt b/Bindings/soc/fsl/bman-portals.txt
deleted file mode 100644 (file)
index 2a00e14..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-QorIQ DPAA Buffer Manager Portals Device Tree Binding
-
-Copyright (C) 2008 - 2014 Freescale Semiconductor Inc.
-
-CONTENTS
-
-       - BMan Portal
-       - Example
-
-BMan Portal Node
-
-Portals are memory mapped interfaces to BMan that allow low-latency, lock-less
-interaction by software running on processor cores, accelerators and network
-interfaces with the BMan
-
-PROPERTIES
-
-- compatible
-       Usage:          Required
-       Value type:     <stringlist>
-       Definition:     Must include "fsl,bman-portal-<hardware revision>"
-                       May include "fsl,<SoC>-bman-portal" or "fsl,bman-portal"
-
-- reg
-       Usage:          Required
-       Value type:     <prop-encoded-array>
-       Definition:     Two regions. The first is the cache-enabled region of
-                       the portal. The second is the cache-inhibited region of
-                       the portal
-
-- interrupts
-       Usage:          Required
-       Value type:     <prop-encoded-array>
-       Definition:     Standard property
-
-EXAMPLE
-
-The example below shows a (P4080) BMan portals container/bus node with two portals
-
-       bman-portals@ff4000000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "simple-bus";
-               ranges = <0 0xf 0xf4000000 0x200000>;
-
-               bman-portal@0 {
-                       compatible = "fsl,bman-portal-1.0.0", "fsl,bman-portal";
-                       reg = <0x0 0x4000>, <0x100000 0x1000>;
-                       interrupts = <105 2 0 0>;
-               };
-               bman-portal@4000 {
-                       compatible = "fsl,bman-portal-1.0.0", "fsl,bman-portal";
-                       reg = <0x4000 0x4000>, <0x101000 0x1000>;
-                       interrupts = <107 2 0 0>;
-               };
-       };
diff --git a/Bindings/soc/fsl/bman.txt b/Bindings/soc/fsl/bman.txt
deleted file mode 100644 (file)
index 48eed14..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-QorIQ DPAA Buffer Manager Device Tree Bindings
-
-Copyright (C) 2008 - 2014 Freescale Semiconductor Inc.
-
-CONTENTS
-
-       - BMan Node
-       - BMan Private Memory Node
-       - Example
-
-BMan Node
-
-The Buffer Manager is part of the Data-Path Acceleration Architecture (DPAA).
-BMan supports hardware allocation and deallocation of buffers belonging to pools
-originally created by software with configurable depletion thresholds. This
-binding covers the CCSR space programming model
-
-PROPERTIES
-
-- compatible
-       Usage:          Required
-       Value type:     <stringlist>
-       Definition:     Must include "fsl,bman"
-                       May include "fsl,<SoC>-bman"
-
-- reg
-       Usage:          Required
-       Value type:     <prop-encoded-array>
-       Definition:     Registers region within the CCSR address space
-
-The BMan revision information is located in the BMAN_IP_REV_1/2 registers which
-are located at offsets 0xbf8 and 0xbfc
-
-- interrupts
-       Usage:          Required
-       Value type:     <prop-encoded-array>
-       Definition:     Standard property. The error interrupt
-
-- fsl,bman-portals
-       Usage:          Required
-       Value type:     <phandle>
-       Definition:     Phandle to this BMan instance's portals
-
-- fsl,liodn
-       Usage:          See pamu.txt
-       Value type:     <prop-encoded-array>
-       Definition:     PAMU property used for static LIODN assignment
-
-- fsl,iommu-parent
-       Usage:          See pamu.txt
-       Value type:     <phandle>
-       Definition:     PAMU property used for dynamic LIODN assignment
-
-       For additional details about the PAMU/LIODN binding(s) see pamu.txt
-
-Devices connected to a BMan instance via Direct Connect Portals (DCP) must link
-to the respective BMan instance
-
-- fsl,bman
-       Usage:          Required
-       Value type:     <prop-encoded-array>
-       Description:    List of phandle and DCP index pairs, to the BMan instance
-                       to which this device is connected via the DCP
-
-BMan Private Memory Node
-
-BMan requires a contiguous range of physical memory used for the backing store
-for BMan Free Buffer Proxy Records (FBPR). This memory is reserved/allocated as
-a node under the /reserved-memory node.
-
-The BMan FBPR memory node must be named "bman-fbpr"
-
-PROPERTIES
-
-- compatible
-       Usage:          required
-       Value type:     <stringlist>
-       Definition:     PPC platforms: Must include "fsl,bman-fbpr"
-                       ARM platforms: Must include "shared-dma-pool"
-                                      as well as the "no-map" property
-
-The following constraints are relevant to the FBPR private memory:
-       - The size must be 2^(size + 1), with size = 11..33. That is 4 KiB to
-         16 GiB
-       - The alignment must be a muliptle of the memory size
-
-The size of the FBPR must be chosen by observing the hardware features configured
-via the Reset Configuration Word (RCW) and that are relevant to a specific board
-(e.g. number of MAC(s) pinned-out, number of offline/host command FMan ports,
-etc.). The size configured in the DT must reflect the hardware capabilities and
-not the specific needs of an application
-
-For additional details about reserved memory regions see reserved-memory.txt
-
-EXAMPLE
-
-The example below shows a BMan FBPR dynamic allocation memory node
-
-       reserved-memory {
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               bman_fbpr: bman-fbpr {
-                       compatible = "shared-mem-pool";
-                       size = <0 0x1000000>;
-                       alignment = <0 0x1000000>;
-                       no-map;
-               };
-       };
-
-The example below shows a (P4080) BMan CCSR-space node
-
-       bportals: bman-portals@ff4000000 {
-               ...
-       };
-
-       crypto@300000 {
-               ...
-               fsl,bman = <&bman, 2>;
-               ...
-       };
-
-       bman: bman@31a000 {
-               compatible = "fsl,bman";
-               reg = <0x31a000 0x1000>;
-               interrupts = <16 2 1 2>;
-               fsl,liodn = <0x17>;
-               fsl,bman-portals = <&bportals>;
-               memory-region = <&bman_fbpr>;
-       };
-
-       fman@400000 {
-               ...
-               fsl,bman = <&bman, 0>;
-               ...
-       };
diff --git a/Bindings/soc/fsl/cpm_qe/fsl,qe-firmware.yaml b/Bindings/soc/fsl/cpm_qe/fsl,qe-firmware.yaml
new file mode 100644 (file)
index 0000000..53b07d4
--- /dev/null
@@ -0,0 +1,48 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/fsl/cpm_qe/fsl,qe-firmware.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale QUICC Engine module Firmware Node
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description: |
+  This node defines a firmware binary that is embedded in the device tree, for
+  the purpose of passing the firmware from bootloader to the kernel, or from
+  the hypervisor to the guest.
+
+  The firmware node itself contains the firmware binary contents, a compatible
+  property, and any firmware-specific properties.  The node should be placed
+  inside a QE node that needs it.  Doing so eliminates the need for a
+  fsl,firmware-phandle property.  Other QE nodes that need the same firmware
+  should define an fsl,firmware-phandle property that points to the firmware node
+  in the first QE node.
+
+  The fsl,firmware property can be specified in the DTS (possibly using incbin)
+  or can be inserted by the boot loader at boot time.
+
+properties:
+  compatible:
+    enum:
+      - fsl,qe-firmware
+
+  fsl,firmware:
+    $ref: /schemas/types.yaml#/definitions/uint8-array
+    description:
+      A standard property.  This property contains the firmware binary "blob".
+
+required:
+  - compatible
+  - fsl,firmware
+
+additionalProperties: false
+
+examples:
+  - |
+    qe-firmware {
+        compatible = "fsl,qe-firmware";
+        fsl,firmware = <0x70 0xcd 0x00 0x00 0x01 0x46 0x45>;
+    };
diff --git a/Bindings/soc/fsl/cpm_qe/fsl,qe-ic.yaml b/Bindings/soc/fsl/cpm_qe/fsl,qe-ic.yaml
new file mode 100644 (file)
index 0000000..8267ad0
--- /dev/null
@@ -0,0 +1,47 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/fsl/cpm_qe/fsl,qe-ic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale QUICC Engine module Interrupt Controller (IC)
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    const: fsl,qe-ic
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: QE interrupt
+      - description: QE critical
+      - description: QE error
+    minItems: 1
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - interrupt-controller
+  - "#interrupt-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    interrupt-controller@80 {
+        compatible = "fsl,qe-ic";
+        reg = <0x80 0x80>;
+        #interrupt-cells = <1>;
+        interrupt-controller;
+        interrupts = <95 2 0 0  94 2 0 0>;
+    };
diff --git a/Bindings/soc/fsl/cpm_qe/fsl,qe-muram.yaml b/Bindings/soc/fsl/cpm_qe/fsl,qe-muram.yaml
new file mode 100644 (file)
index 0000000..cf0f38d
--- /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/soc/fsl/cpm_qe/fsl,qe-muram.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale QUICC Engine Multi-User RAM (MURAM)
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description: Multi-User RAM (MURAM)
+
+properties:
+  compatible:
+    items:
+      - const: fsl,qe-muram
+      - const: fsl,cpm-muram
+
+  ranges:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+  mode:
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [host, slave]
+
+
+patternProperties:
+  '^data\-only@[a-f0-9]+$':
+    type: object
+    properties:
+      compatible:
+        items:
+          - const: fsl,qe-muram-data
+          - const: fsl,cpm-muram-data
+
+      reg:
+        maxItems: 1
+
+    required:
+      - compatible
+      - reg
+
+    additionalProperties: false
+
+required:
+  - compatible
+  - ranges
+
+additionalProperties: false
+
+examples:
+  - |
+    muram@10000 {
+        compatible = "fsl,qe-muram", "fsl,cpm-muram";
+        ranges = <0 0x00010000 0x0000c000>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        data-only@0{
+            compatible = "fsl,qe-muram-data",
+                         "fsl,cpm-muram-data";
+            reg = <0 0xc000>;
+        };
+     };
diff --git a/Bindings/soc/fsl/cpm_qe/fsl,qe-si.yaml b/Bindings/soc/fsl/cpm_qe/fsl,qe-si.yaml
new file mode 100644 (file)
index 0000000..8e58ab5
--- /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/soc/fsl/cpm_qe/fsl,qe-si.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale QUICC Engine module Serial Interface Block (SI)
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description:
+  The SI manages the routing of eight TDM lines to the QE block serial drivers,
+  the MCC and the UCCs, for receive and transmit.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - fsl,ls1043-qe-si
+          - const: fsl,t1040-qe-si
+      - enum:
+          - fsl,t1040-qe-si
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    si@700 {
+        compatible = "fsl,t1040-qe-si";
+        reg = <0x700 0x80>;
+    };
diff --git a/Bindings/soc/fsl/cpm_qe/fsl,qe-siram.yaml b/Bindings/soc/fsl/cpm_qe/fsl,qe-siram.yaml
new file mode 100644 (file)
index 0000000..cc4ed48
--- /dev/null
@@ -0,0 +1,39 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/fsl/cpm_qe/fsl,qe-siram.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale QUICC Engine module Serial Interface Block RAM(SIRAM)
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description:
+  store the routing entries of SI
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - fsl,ls1043-qe-siram
+          - const: fsl,t1040-qe-siram
+      - const: fsl,t1040-qe-siram
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    siram@1000 {
+        compatible = "fsl,t1040-qe-siram";
+        reg = <0x1000 0x800>;
+    };
+
diff --git a/Bindings/soc/fsl/cpm_qe/fsl,qe.yaml b/Bindings/soc/fsl/cpm_qe/fsl,qe.yaml
new file mode 100644 (file)
index 0000000..89cdf5e
--- /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/soc/fsl/cpm_qe/fsl,qe.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale QUICC Engine module (QE)
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description: |
+  This represents qe module that is installed on PowerQUICC II Pro.
+
+  NOTE:  This is an interim binding; it should be updated to fit
+  in with the CPM binding later in this document.
+
+  Basically, it is a bus of devices, that could act more or less
+  as a complete entity (UCC, USB etc ). All of them should be siblings on
+  the "root" qe node, using the common properties from there.
+  The description below applies to the qe of MPC8360 and
+  more nodes and properties would be extended in the future.
+
+properties:
+  compatible:
+    items:
+      - const: fsl,qe
+      - const: simple-bus
+
+  reg:
+    maxItems: 1
+
+  ranges:
+    maxItems: 1
+
+  model:
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [QE, CPM, CPM2]
+
+  bus-frequency:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: the clock frequency for QUICC Engine.
+
+  fsl,qe-num-riscs:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: define how many RISC engines the QE has.
+
+  fsl,qe-snums:
+    $ref: /schemas/types.yaml#/definitions/uint8-array
+    maxItems: 28
+    description:
+      defining the array of serial number (SNUM) values for the virtual
+      threads.
+
+  fsl,firmware-phandle:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: |
+      required only if there is no fsl,qe-firmware child node
+
+      Points to a firmware node (see "QE Firmware Node" below)
+      that contains the firmware that should be uploaded for this QE.
+      The compatible property for the firmware node should say,
+      "fsl,qe-firmware".
+
+  brg-frequency:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      the internal clock source frequency for baud-rate
+      generators in Hz.
+
+  fsl,qe-num-snums:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    deprecated: true
+    description: |
+      define how many serial number(SNUM) the QE can use
+      for the threads. Use fsl,qe-snums instead to not only specify the
+      number of snums, but also their values.
+
+patternProperties:
+  '^muram@[a-f0-9]+$':
+    $ref: fsl,qe-muram.yaml
+
+  '^interrupt-controller@[a-f0-9]+$':
+    $ref: fsl,qe-ic.yaml
+
+  '^si@[a-f0-9]+$':
+    $ref: fsl,qe-si.yaml
+
+  '^siram@[a-f0-9]+$':
+    $ref: fsl,qe-siram.yaml
+
+required:
+  - compatible
+  - reg
+  - bus-frequency
+
+allOf:
+  - $ref: /schemas/simple-bus.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    qe-bus@e0100000 {
+        compatible = "fsl,qe", "simple-bus";
+        reg = <0xe0100000 0x480>;
+        ranges = <0 0xe0100000 0x00100000>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+        brg-frequency = <0>;
+        bus-frequency = <0x179a7b00>;
+        fsl,qe-snums = /bits/ 8 <
+            0x04 0x05 0x0c 0x0d 0x14 0x15 0x1c 0x1d
+            0x24 0x25 0x2c 0x2d 0x34 0x35 0x88 0x89
+            0x98 0x99 0xa8 0xa9 0xb8 0xb9 0xc8 0xc9
+            0xd8 0xd9 0xe8 0xe9>;
+
+        interrupt-controller@80 {
+            compatible = "fsl,qe-ic";
+            reg = <0x80 0x80>;
+            #interrupt-cells = <1>;
+            interrupt-controller;
+            interrupts = <95 2 0 0  94 2 0 0>;
+        };
+
+        si@700 {
+            compatible = "fsl,t1040-qe-si";
+            reg = <0x700 0x80>;
+        };
+
+        siram@1000 {
+          compatible = "fsl,t1040-qe-siram";
+          reg = <0x1000 0x800>;
+        };
+
+        muram@10000 {
+            compatible = "fsl,qe-muram", "fsl,cpm-muram";
+            ranges = <0 0x00010000 0x0000c000>;
+            #address-cells = <1>;
+            #size-cells = <1>;
+
+              data-only@0{
+                  compatible = "fsl,qe-muram-data",
+                              "fsl,cpm-muram-data";
+                  reg = <0 0xc000>;
+              };
+        };
+    };
diff --git a/Bindings/soc/fsl/cpm_qe/qe.txt b/Bindings/soc/fsl/cpm_qe/qe.txt
deleted file mode 100644 (file)
index 05ec2a8..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-* Freescale QUICC Engine module (QE)
-This represents qe module that is installed on PowerQUICC II Pro.
-
-NOTE:  This is an interim binding; it should be updated to fit
-in with the CPM binding later in this document.
-
-Basically, it is a bus of devices, that could act more or less
-as a complete entity (UCC, USB etc ). All of them should be siblings on
-the "root" qe node, using the common properties from there.
-The description below applies to the qe of MPC8360 and
-more nodes and properties would be extended in the future.
-
-i) Root QE device
-
-Required properties:
-- compatible : should be "fsl,qe";
-- model : precise model of the QE, Can be "QE", "CPM", or "CPM2"
-- reg : offset and length of the device registers.
-- bus-frequency : the clock frequency for QUICC Engine.
-- fsl,qe-num-riscs: define how many RISC engines the QE has.
-- fsl,qe-snums: This property has to be specified as '/bits/ 8' value,
-  defining the array of serial number (SNUM) values for the virtual
-  threads.
-
-Optional properties:
-- fsl,firmware-phandle:
-    Usage: required only if there is no fsl,qe-firmware child node
-    Value type: <phandle>
-    Definition: Points to a firmware node (see "QE Firmware Node" below)
-        that contains the firmware that should be uploaded for this QE.
-        The compatible property for the firmware node should say,
-        "fsl,qe-firmware".
-
-Recommended properties
-- brg-frequency : the internal clock source frequency for baud-rate
-  generators in Hz.
-
-Deprecated properties
-- fsl,qe-num-snums: define how many serial number(SNUM) the QE can use
-  for the threads. Use fsl,qe-snums instead to not only specify the
-  number of snums, but also their values.
-
-Example:
-     qe@e0100000 {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       #interrupt-cells = <2>;
-       compatible = "fsl,qe";
-       ranges = <0 e0100000 00100000>;
-       reg = <e0100000 480>;
-       brg-frequency = <0>;
-       bus-frequency = <179A7B00>;
-       fsl,qe-snums = /bits/ 8 <
-               0x04 0x05 0x0C 0x0D 0x14 0x15 0x1C 0x1D
-               0x24 0x25 0x2C 0x2D 0x34 0x35 0x88 0x89
-               0x98 0x99 0xA8 0xA9 0xB8 0xB9 0xC8 0xC9
-               0xD8 0xD9 0xE8 0xE9>;
-     }
-
-* Multi-User RAM (MURAM)
-
-Required properties:
-- compatible : should be "fsl,qe-muram", "fsl,cpm-muram".
-- mode : the could be "host" or "slave".
-- ranges : Should be defined as specified in 1) to describe the
-   translation of MURAM addresses.
-- data-only : sub-node which defines the address area under MURAM
-   bus that can be allocated as data/parameter
-
-Example:
-
-     muram@10000 {
-       compatible = "fsl,qe-muram", "fsl,cpm-muram";
-       ranges = <0 00010000 0000c000>;
-
-       data-only@0{
-               compatible = "fsl,qe-muram-data",
-                            "fsl,cpm-muram-data";
-               reg = <0 c000>;
-       };
-     };
-
-* Interrupt Controller (IC)
-
-Required properties:
-- compatible : should be "fsl,qe-ic".
-- reg : Address range of IC register set.
-- interrupts : interrupts generated by the device.
-- interrupt-controller : this device is a interrupt controller.
-
-Example:
-
-       qeic: interrupt-controller@80 {
-               interrupt-controller;
-               compatible = "fsl,qe-ic";
-               #address-cells = <0>;
-               #interrupt-cells = <1>;
-               reg = <0x80 0x80>;
-               interrupts = <95 2 0 0  94 2 0 0>;
-       };
-
-* Serial Interface Block (SI)
-
-The SI manages the routing of eight TDM lines to the QE block serial drivers
-, the MCC and the UCCs, for receive and transmit.
-
-Required properties:
-- compatible : must be "fsl,<chip>-qe-si". For t1040, must contain
-  "fsl,t1040-qe-si".
-- reg : Address range of SI register set.
-
-Example:
-
-       si1: si@700 {
-               compatible = "fsl,t1040-qe-si";
-               reg = <0x700 0x80>;
-       };
-
-* Serial Interface Block RAM(SIRAM)
-
-store the routing entries of SI
-
-Required properties:
-- compatible : should be "fsl,<chip>-qe-siram". For t1040, must contain
-  "fsl,t1040-qe-siram".
-- reg : Address range of SI RAM.
-
-Example:
-
-       siram1: siram@1000 {
-               compatible = "fsl,t1040-qe-siram";
-               reg = <0x1000 0x800>;
-       };
-
-* QE Firmware Node
-
-This node defines a firmware binary that is embedded in the device tree, for
-the purpose of passing the firmware from bootloader to the kernel, or from
-the hypervisor to the guest.
-
-The firmware node itself contains the firmware binary contents, a compatible
-property, and any firmware-specific properties.  The node should be placed
-inside a QE node that needs it.  Doing so eliminates the need for a
-fsl,firmware-phandle property.  Other QE nodes that need the same firmware
-should define an fsl,firmware-phandle property that points to the firmware node
-in the first QE node.
-
-The fsl,firmware property can be specified in the DTS (possibly using incbin)
-or can be inserted by the boot loader at boot time.
-
-Required properties:
-  - compatible
-      Usage: required
-      Value type: <string>
-      Definition: A standard property.  Specify a string that indicates what
-          kind of firmware it is.  For QE, this should be "fsl,qe-firmware".
-
-   - fsl,firmware
-      Usage: required
-      Value type: <prop-encoded-array>, encoded as an array of bytes
-      Definition: A standard property.  This property contains the firmware
-          binary "blob".
-
-Example:
-       qe1@e0080000 {
-               compatible = "fsl,qe";
-               qe_firmware:qe-firmware {
-                       compatible = "fsl,qe-firmware";
-                       fsl,firmware = [0x70 0xcd 0x00 0x00 0x01 0x46 0x45 ...];
-               };
-               ...
-       };
-
-       qe2@e0090000 {
-               compatible = "fsl,qe";
-               fsl,firmware-phandle = <&qe_firmware>;
-               ...
-       };
diff --git a/Bindings/soc/fsl/fsl,bman-portal.yaml b/Bindings/soc/fsl/fsl,bman-portal.yaml
new file mode 100644 (file)
index 0000000..8dce75b
--- /dev/null
@@ -0,0 +1,52 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/fsl/fsl,bman-portal.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: QorIQ DPAA Queue Manager Portals
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description:
+  QorIQ DPAA Buffer Manager Portal
+
+  Portals are memory mapped interfaces to BMan that allow low-latency, lock-less
+  interaction by software running on processor cores, accelerators and network
+  interfaces with the BMan
+
+properties:
+  compatible:
+    oneOf:
+      - const: fsl,bman-portal
+      - items:
+          - enum:
+              - fsl,bman-portal-1.0.0
+              - fsl,ls1043a-bmap-portal
+              - fsl,ls1046a-bmap-portal
+          - const: fsl,bman-portal
+  reg:
+    items:
+      - description: the cache-enabled region of the portal
+      - description: the cache-inhibited region of the portal
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    bman-portal@0 {
+        compatible = "fsl,bman-portal-1.0.0", "fsl,bman-portal";
+        reg = <0x0 0x4000>, <0x100000 0x1000>;
+        interrupts = <105 IRQ_TYPE_EDGE_FALLING 0 0>;
+    };
diff --git a/Bindings/soc/fsl/fsl,bman.yaml b/Bindings/soc/fsl/fsl,bman.yaml
new file mode 100644 (file)
index 0000000..e6f4682
--- /dev/null
@@ -0,0 +1,83 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/fsl/fsl,bman.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: QorIQ DPAA Buffer Manager
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description:
+  The Buffer Manager is part of the Data-Path Acceleration Architecture (DPAA).
+  BMan supports hardware allocation and deallocation of buffers belonging to
+  pools originally created by software with configurable depletion thresholds.
+  This binding covers the CCSR space programming model
+
+properties:
+  compatible:
+    oneOf:
+      - const: fsl,bman
+      - items:
+          - enum:
+              - fsl,ls1043a-bman
+              - fsl,ls1046a-bman
+          - const: fsl,bman
+
+  reg:
+    items:
+      - description: |
+          Registers region within the CCSR address space
+
+          The BMan revision information is located in the BMAN_IP_REV_1/2
+          registers which are located at offsets 0xbf8 and 0xbfc
+
+  interrupts:
+    items:
+      - description: The error interrupt
+
+  memory-region:
+    minItems: 1
+    maxItems: 2
+    description:
+      List of phandles referencing the BMan private memory
+      nodes (described below). The bman-fqd node must be
+      first followed by bman-pfdr node. Only used on ARM
+
+      Devices connected to a BMan instance via Direct Connect Portals (DCP) must link
+      to the respective BMan instance
+
+  fsl,bman-portals:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: ref fsl,bman-port.yaml
+
+  fsl,liodn:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      See pamu.txt, PAMU property used for static LIODN assignment
+
+  fsl,iommu-parent:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      See pamu.txt, PAMU property used for dynamic LIODN assignment
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    bman@31a000 {
+        compatible = "fsl,bman";
+        reg = <0x31a000 0x1000>;
+        interrupts = <16 IRQ_TYPE_EDGE_FALLING 1 2>;
+        fsl,liodn = <0x17>;
+        fsl,bman-portals = <&bportals>;
+        memory-region = <&bman_fbpr>;
+    };
index ce1a6505eb5149dedc4ecf5ec975ad2a612663eb..3fb0534ea597b78bb9ec7ca418db912ea593e8e6 100644 (file)
@@ -8,7 +8,6 @@ title: Freescale Layerscape Device Configuration Unit
 
 maintainers:
   - Shawn Guo <shawnguo@kernel.org>
-  - Li Yang <leoyang.li@nxp.com>
 
 description: |
   DCFG is the device configuration unit, that provides general purpose
index a6a511b00a1281a36b452ed595a1d376c6531eea..2a456c8af992e0b29e03723d61cb63a6115ebc99 100644 (file)
@@ -8,7 +8,6 @@ title: Freescale Layerscape Supplemental Configuration Unit
 
 maintainers:
   - Shawn Guo <shawnguo@kernel.org>
-  - Li Yang <leoyang.li@nxp.com>
 
 description: |
   SCFG is the supplemental configuration unit, that provides SoC specific
diff --git a/Bindings/soc/fsl/fsl,ls1028a-reset.yaml b/Bindings/soc/fsl/fsl,ls1028a-reset.yaml
new file mode 100644 (file)
index 0000000..31295be
--- /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//soc/fsl/fsl,ls1028a-reset.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale Layerscape Reset Registers Module
+
+maintainers:
+  - Frank Li
+
+description:
+  Reset Module includes chip reset, service processor control and Reset Control
+  Word (RCW) status.
+
+properties:
+  $nodename:
+    pattern: "^syscon@[0-9a-f]+$"
+
+  compatible:
+    items:
+      - enum:
+          - fsl,ls1028a-reset
+      - const: syscon
+      - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  little-endian: true
+
+  reboot:
+    $ref: /schemas/power/reset/syscon-reboot.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - reboot
+
+additionalProperties: false
+
+examples:
+  - |
+    syscon@1e60000 {
+        compatible = "fsl,ls1028a-reset", "syscon", "simple-mfd";
+        reg = <0x1e60000 0x10000>;
+        little-endian;
+
+        reboot {
+            compatible = "syscon-reboot";
+            offset = <0>;
+            mask = <0x02>;
+        };
+    };
+
diff --git a/Bindings/soc/fsl/fsl,qman-fqd.yaml b/Bindings/soc/fsl/fsl,qman-fqd.yaml
new file mode 100644 (file)
index 0000000..de0b4ae
--- /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/soc/fsl/fsl,qman-fqd.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: QMan Private Memory Nodes
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description: |
+  QMan requires two contiguous range of physical memory used for the backing store
+  for QMan Frame Queue Descriptor (FQD) and Packed Frame Descriptor Record (PFDR).
+  This memory is reserved/allocated as a node under the /reserved-memory node.
+
+  BMan requires a contiguous range of physical memory used for the backing store
+  for BMan Free Buffer Proxy Records (FBPR). This memory is reserved/allocated as
+  a node under the /reserved-memory node.
+
+  The QMan FQD memory node must be named "qman-fqd"
+  The QMan PFDR memory node must be named "qman-pfdr"
+  The BMan FBPR memory node must be named "bman-fbpr"
+
+  The following constraints are relevant to the FQD and PFDR private memory:
+    - The size must be 2^(size + 1), with size = 11..29. That is 4 KiB to
+      1 GiB
+    - The alignment must be a muliptle of the memory size
+
+  The size of the FQD and PFDP must be chosen by observing the hardware features
+  configured via the Reset Configuration Word (RCW) and that are relevant to a
+  specific board (e.g. number of MAC(s) pinned-out, number of offline/host command
+  FMan ports, etc.). The size configured in the DT must reflect the hardware
+  capabilities and not the specific needs of an application
+
+  For additional details about reserved memory regions see
+  reserved-memory/reserved-memory.yaml in dtschema project.
+
+properties:
+  $nodename:
+    pattern: '^(qman-fqd|qman-pfdr|bman-fbpr)+$'
+
+  compatible:
+    enum:
+      - fsl,qman-fqd
+      - fsl,qman-pfdr
+      - fsl,bman-fbpr
+
+required:
+  - compatible
+
+allOf:
+  - $ref: reserved-memory.yaml
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    reserved-memory {
+        #address-cells = <2>;
+        #size-cells = <2>;
+
+        qman-fqd {
+            compatible = "shared-dma-pool";
+            size = <0 0x400000>;
+            alignment = <0 0x400000>;
+            no-map;
+        };
+    };
diff --git a/Bindings/soc/fsl/fsl,qman-portal.yaml b/Bindings/soc/fsl/fsl,qman-portal.yaml
new file mode 100644 (file)
index 0000000..1701618
--- /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/soc/fsl/fsl,qman-portal.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: QorIQ DPAA Queue Manager Portals
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description:
+  Portals are memory mapped interfaces to QMan that allow low-latency, lock-less
+  interaction by software running on processor cores, accelerators and network
+  interfaces with the QMan
+
+properties:
+  compatible:
+    oneOf:
+      - const: fsl,qman-portal
+      - items:
+          - enum:
+              - fsl,ls1043-qman-portal
+              - fsl,ls1046-qman-portal
+              - fsl,qman-portal-1.2.0
+          - const: fsl,qman-portal
+
+  reg:
+    items:
+      - description: the cache-enabled region of the portal
+      - description: the cache-inhibited region of the portal
+
+  interrupts:
+    maxItems: 1
+
+  fsl,liodn:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description: See pamu.txt. Two LIODN(s). DQRR LIODN (DLIODN) and Frame LIODN
+      (FLIODN)
+
+  fsl,iommu-parent:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: See pamu.txt.
+
+  fsl,qman-channel-id:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: qman channel id.
+
+  cell-index:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      The hardware index of the channel. This can also be
+      determined by dividing any of the channel's 8 work queue
+      IDs by 8
+
+      In addition to these properties the qman-portals should have sub-nodes to
+      represent the HW devices/portals that are connected to the software portal
+      described here
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+patternProperties:
+  '^(fman0|fman1|pme|crypto)+$':
+    type: object
+    properties:
+      fsl,liodn:
+        description: See pamu.txt, PAMU property used for static LIODN assignment
+
+      fsl,iommu-parent:
+        description: See pamu.txt, PAMU property used for dynamic LIODN assignment
+
+      dev-handle:
+        $ref: /schemas/types.yaml#/definitions/phandle
+        description:
+          The phandle to the particular hardware device that this
+          portal is connected to.
+
+    additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    qman-portal@0 {
+        compatible = "fsl,qman-portal-1.2.0", "fsl,qman-portal";
+        reg = <0 0x4000>, <0x100000 0x1000>;
+        interrupts = <104 IRQ_TYPE_EDGE_FALLING 0 0>;
+        fsl,liodn = <1 2>;
+        fsl,qman-channel-id = <0>;
+
+        fman0 {
+            fsl,liodn = <0x21>;
+            dev-handle = <&fman0>;
+        };
+
+        fman1 {
+            fsl,liodn = <0xa1>;
+            dev-handle = <&fman1>;
+        };
+
+        crypto {
+            fsl,liodn = <0x41 0x66>;
+            dev-handle = <&crypto>;
+        };
+    };
diff --git a/Bindings/soc/fsl/fsl,qman.yaml b/Bindings/soc/fsl/fsl,qman.yaml
new file mode 100644 (file)
index 0000000..501f06e
--- /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/soc/fsl/fsl,qman.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: QorIQ DPAA Queue Manager
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description:
+  The Queue Manager is part of the Data-Path Acceleration Architecture (DPAA). QMan
+  supports queuing and QoS scheduling of frames to CPUs, network interfaces and
+  DPAA logic modules, maintains packet ordering within flows. Besides providing
+  flow-level queuing, is also responsible for congestion management functions such
+  as RED/WRED, congestion notifications and tail discards. This binding covers the
+  CCSR space programming model
+
+properties:
+  compatible:
+    oneOf:
+      - const: fsl,qman
+      - items:
+          - enum:
+              - fsl,ls1043a-qman
+              - fsl,ls1046a-qman
+          - const: fsl,qman
+  reg:
+    items:
+      - description: |
+          Registers region within the CCSR address space
+
+          The QMan revision information is located in the QMAN_IP_REV_1/2
+          registers which are located at offsets 0xbf8 and 0xbfc
+
+  interrupts:
+    items:
+      - description: The error interrupt
+
+  fsl,qman-portals:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description: ref fsl,qman-port.yaml
+
+  fsl,liodn:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      See pamu.txt, PAMU property used for static LIODN assignment
+
+  fsl,iommu-parent:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    description:
+      See pamu.txt, PAMU property used for dynamic LIODN assignment
+
+  clocks:
+    maxItems: 1
+    description:
+      Reference input clock. Its frequency is half of the platform clock
+
+  memory-region:
+    maxItems: 2
+    description:
+      List of phandles referencing the QMan private memory nodes (described
+      below). The qman-fqd node must be first followed by qman-pfdr node.
+      Only used on ARM Devices connected to a QMan instance via Direct Connect
+      Portals (DCP) must link to the respective QMan instance.
+
+  fsl,qman:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description:
+      List of phandle and DCP index pairs, to the QMan instance
+      to which this device is connected via the DCP
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    qman: qman@318000 {
+        compatible = "fsl,qman";
+        reg = <0x318000 0x1000>;
+        interrupts = <16 IRQ_TYPE_EDGE_FALLING 1 3>;
+        fsl,liodn = <0x16>;
+        fsl,qman-portals = <&qportals>;
+        memory-region = <&qman_fqd &qman_pfdr>;
+        clocks = <&platform_pll 1>;
+    };
diff --git a/Bindings/soc/fsl/qman-portals.txt b/Bindings/soc/fsl/qman-portals.txt
deleted file mode 100644 (file)
index 5a34f3a..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-QorIQ DPAA Queue Manager Portals Device Tree Binding
-
-Copyright (C) 2008 - 2014 Freescale Semiconductor Inc.
-
-CONTENTS
-
-       - QMan Portal
-       - Example
-
-QMan Portal Node
-
-Portals are memory mapped interfaces to QMan that allow low-latency, lock-less
-interaction by software running on processor cores, accelerators and network
-interfaces with the QMan
-
-PROPERTIES
-
-- compatible
-       Usage:          Required
-       Value type:     <stringlist>
-       Definition:     Must include "fsl,qman-portal-<hardware revision>"
-                       May include "fsl,<SoC>-qman-portal" or "fsl,qman-portal"
-
-- reg
-       Usage:          Required
-       Value type:     <prop-encoded-array>
-       Definition:     Two regions. The first is the cache-enabled region of
-                       the portal. The second is the cache-inhibited region of
-                       the portal
-
-- interrupts
-       Usage:          Required
-       Value type:     <prop-encoded-array>
-       Definition:     Standard property
-
-- fsl,liodn
-       Usage:          See pamu.txt
-       Value type:     <prop-encoded-array>
-       Definition:     Two LIODN(s). DQRR LIODN (DLIODN) and Frame LIODN
-                       (FLIODN)
-
-- fsl,iommu-parent
-       Usage:          See pamu.txt
-       Value type:     <phandle>
-       Definition:     PAMU property used for dynamic LIODN assignment
-
-       For additional details about the PAMU/LIODN binding(s) see pamu.txt
-
-- cell-index
-       Usage:          Required
-       Value type:     <u32>
-       Definition:     The hardware index of the channel. This can also be
-                       determined by dividing any of the channel's 8 work queue
-                       IDs by 8
-
-In addition to these properties the qman-portals should have sub-nodes to
-represent the HW devices/portals that are connected to the software portal
-described here
-
-The currently supported sub-nodes are:
-       * fman0
-       * fman1
-       * pme
-       * crypto
-
-These subnodes should have the following properties:
-
-- fsl,liodn
-       Usage:          See pamu.txt
-       Value type:     <prop-encoded-array>
-       Definition:     PAMU property used for static LIODN assignment
-
-- fsl,iommu-parent
-       Usage:          See pamu.txt
-       Value type:     <phandle>
-       Definition:     PAMU property used for dynamic LIODN assignment
-
-- dev-handle
-       Usage:          Required
-       Value type:     <phandle>
-       Definition:     The phandle to the particular hardware device that this
-                       portal is connected to.
-
-EXAMPLE
-
-The example below shows a (P4080) QMan portals container/bus node with two portals
-
-       qman-portals@ff4200000 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "simple-bus";
-               ranges = <0 0xf 0xf4200000 0x200000>;
-
-               qman-portal@0 {
-                       compatible = "fsl,qman-portal-1.2.0", "fsl,qman-portal";
-                       reg = <0 0x4000>, <0x100000 0x1000>;
-                       interrupts = <104 2 0 0>;
-                       fsl,liodn = <1 2>;
-                       fsl,qman-channel-id = <0>;
-
-                       fman0 {
-                               fsl,liodn = <0x21>;
-                               dev-handle = <&fman0>;
-                       };
-                       fman1 {
-                               fsl,liodn = <0xa1>;
-                               dev-handle = <&fman1>;
-                       };
-                       crypto {
-                               fsl,liodn = <0x41 0x66>;
-                               dev-handle = <&crypto>;
-                       };
-               };
-               qman-portal@4000 {
-                       compatible = "fsl,qman-portal-1.2.0", "fsl,qman-portal";
-                       reg = <0x4000 0x4000>, <0x101000 0x1000>;
-                       interrupts = <106 2 0 0>;
-                       fsl,liodn = <3 4>;
-                       cell-index = <1>;
-
-                       fman0 {
-                               fsl,liodn = <0x22>;
-                               dev-handle = <&fman0>;
-                       };
-                       fman1 {
-                               fsl,liodn = <0xa2>;
-                               dev-handle = <&fman1>;
-                       };
-                       crypto {
-                               fsl,liodn = <0x42 0x67>;
-                               dev-handle = <&crypto>;
-                       };
-               };
-       };
diff --git a/Bindings/soc/fsl/qman.txt b/Bindings/soc/fsl/qman.txt
deleted file mode 100644 (file)
index ee96afd..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-QorIQ DPAA Queue Manager Device Tree Binding
-
-Copyright (C) 2008 - 2014 Freescale Semiconductor Inc.
-
-CONTENTS
-
-       - QMan Node
-       - QMan Private Memory Nodes
-       - Example
-
-QMan Node
-
-The Queue Manager is part of the Data-Path Acceleration Architecture (DPAA). QMan
-supports queuing and QoS scheduling of frames to CPUs, network interfaces and
-DPAA logic modules, maintains packet ordering within flows. Besides providing
-flow-level queuing, is also responsible for congestion management functions such
-as RED/WRED, congestion notifications and tail discards. This binding covers the
-CCSR space programming model
-
-PROPERTIES
-
-- compatible
-       Usage:          Required
-       Value type:     <stringlist>
-       Definition:     Must include "fsl,qman"
-                       May include "fsl,<SoC>-qman"
-
-- reg
-       Usage:          Required
-       Value type:     <prop-encoded-array>
-       Definition:     Registers region within the CCSR address space
-
-The QMan revision information is located in the QMAN_IP_REV_1/2 registers which
-are located at offsets 0xbf8 and 0xbfc
-
-- interrupts
-       Usage:          Required
-       Value type:     <prop-encoded-array>
-       Definition:     Standard property. The error interrupt
-
-- fsl,qman-portals
-       Usage:          Required
-       Value type:     <phandle>
-       Definition:     Phandle to this QMan instance's portals
-
-- fsl,liodn
-       Usage:          See pamu.txt
-       Value type:     <prop-encoded-array>
-       Definition:     PAMU property used for static LIODN assignment
-
-- fsl,iommu-parent
-       Usage:          See pamu.txt
-       Value type:     <phandle>
-       Definition:     PAMU property used for dynamic LIODN assignment
-
-       For additional details about the PAMU/LIODN binding(s) see pamu.txt
-
-- clocks
-       Usage:          See clock-bindings.txt and qoriq-clock.txt
-       Value type:     <prop-encoded-array>
-       Definition:     Reference input clock. Its frequency is half of the
-                       platform clock
-- memory-regions
-       Usage:          Required for ARM
-       Value type:     <phandle array>
-       Definition:     List of phandles referencing the QMan private memory
-                       nodes (described below). The qman-fqd node must be
-                       first followed by qman-pfdr node. Only used on ARM
-
-Devices connected to a QMan instance via Direct Connect Portals (DCP) must link
-to the respective QMan instance
-
-- fsl,qman
-       Usage:          Required
-       Value type:     <prop-encoded-array>
-       Description:    List of phandle and DCP index pairs, to the QMan instance
-                       to which this device is connected via the DCP
-
-QMan Private Memory Nodes
-
-QMan requires two contiguous range of physical memory used for the backing store
-for QMan Frame Queue Descriptor (FQD) and Packed Frame Descriptor Record (PFDR).
-This memory is reserved/allocated as a node under the /reserved-memory node.
-
-For additional details about reserved memory regions see reserved-memory.txt
-
-The QMan FQD memory node must be named "qman-fqd"
-
-PROPERTIES
-
-- compatible
-       Usage:          required
-       Value type:     <stringlist>
-       Definition:     PPC platforms: Must include "fsl,qman-fqd"
-                       ARM platforms: Must include "shared-dma-pool"
-                                      as well as the "no-map" property
-
-The QMan PFDR memory node must be named "qman-pfdr"
-
-PROPERTIES
-
-- compatible
-       Usage:          required
-       Value type:     <stringlist>
-       Definition:     PPC platforms: Must include "fsl,qman-pfdr"
-                       ARM platforms: Must include "shared-dma-pool"
-                                      as well as the "no-map" property
-
-The following constraints are relevant to the FQD and PFDR private memory:
-       - The size must be 2^(size + 1), with size = 11..29. That is 4 KiB to
-         1 GiB
-       - The alignment must be a muliptle of the memory size
-
-The size of the FQD and PFDP must be chosen by observing the hardware features
-configured via the Reset Configuration Word (RCW) and that are relevant to a
-specific board (e.g. number of MAC(s) pinned-out, number of offline/host command
-FMan ports, etc.). The size configured in the DT must reflect the hardware
-capabilities and not the specific needs of an application
-
-For additional details about reserved memory regions see reserved-memory.txt
-
-EXAMPLE
-
-The example below shows a QMan FQD and a PFDR dynamic allocation memory nodes
-
-       reserved-memory {
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               qman_fqd: qman-fqd {
-                       compatible = "shared-dma-pool";
-                       size = <0 0x400000>;
-                       alignment = <0 0x400000>;
-                       no-map;
-               };
-               qman_pfdr: qman-pfdr {
-                       compatible = "shared-dma-pool";
-                       size = <0 0x2000000>;
-                       alignment = <0 0x2000000>;
-                       no-map;
-               };
-       };
-
-The example below shows a (P4080) QMan CCSR-space node
-
-       qportals: qman-portals@ff4200000 {
-               ...
-       };
-
-       clockgen: global-utilities@e1000 {
-               ...
-               sysclk: sysclk {
-                       ...
-               };
-               ...
-               platform_pll: platform-pll@c00 {
-                       #clock-cells = <1>;
-                       reg = <0xc00 0x4>;
-                       compatible = "fsl,qoriq-platform-pll-1.0";
-                       clocks = <&sysclk>;
-                       clock-output-names = "platform-pll", "platform-pll-div2";
-               };
-               ...
-       };
-
-       crypto@300000 {
-               ...
-               fsl,qman = <&qman, 2>;
-               ...
-       };
-
-       qman: qman@318000 {
-               compatible = "fsl,qman";
-               reg = <0x318000 0x1000>;
-               interrupts = <16 2 1 3>
-               fsl,liodn = <0x16>;
-               fsl,qman-portals = <&qportals>;
-               memory-region = <&qman_fqd &qman_pfdr>;
-               clocks = <&platform_pll 1>;
-       };
-
-       fman@400000 {
-               ...
-               fsl,qman = <&qman, 0>;
-               ...
-       };
diff --git a/Bindings/soc/hisilicon/hisilicon,hi3660-usb3-otg-bc.yaml b/Bindings/soc/hisilicon/hisilicon,hi3660-usb3-otg-bc.yaml
new file mode 100644 (file)
index 0000000..5c77c49
--- /dev/null
@@ -0,0 +1,46 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/hisilicon/hisilicon,hi3660-usb3-otg-bc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Hisilicon Kirin 960 USB OTG Battery Charging Syscon
+
+maintainers:
+  - Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
+
+properties:
+  compatible:
+    items:
+      - const: hisilicon,hi3660-usb3-otg-bc
+      - const: syscon
+      - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  usb-phy:
+    $ref: /schemas/phy/hisilicon,hi3660-usb3.yaml
+    description: USB Phy node
+
+required:
+  - compatible
+  - reg
+  - usb-phy
+
+additionalProperties: false
+
+examples:
+  - |
+    syscon@ff200000 {
+        compatible = "hisilicon,hi3660-usb3-otg-bc", "syscon", "simple-mfd";
+        reg = <0xff200000 0x1000>;
+
+        usb-phy {
+            compatible = "hisilicon,hi3660-usb-phy";
+            #phy-cells = <0>;
+            hisilicon,pericrg-syscon = <&crg_ctrl>;
+            hisilicon,pctrl-syscon = <&pctrl>;
+            hisilicon,eye-diagram-param = <0x22466e4>;
+        };
+    };
diff --git a/Bindings/soc/intel/intel,lgm-syscon.yaml b/Bindings/soc/intel/intel,lgm-syscon.yaml
new file mode 100644 (file)
index 0000000..6951d55
--- /dev/null
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/intel/intel,lgm-syscon.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Intel Lightning Mountain(LGM) Syscon
+
+maintainers:
+  - Chuanhua Lei <lchuanhua@maxlinear.com>
+  - Rahul Tanwar <rtanwar@maxlinear.com>
+
+properties:
+  compatible:
+    items:
+      - const: intel,lgm-syscon
+      - const: syscon
+
+  reg:
+    maxItems: 1
+
+  ranges: true
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+patternProperties:
+  "^emmc-phy@[0-9a-f]+$":
+    $ref: /schemas/phy/intel,lgm-emmc-phy.yaml#
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    chiptop@e0200000 {
+        compatible = "intel,lgm-syscon", "syscon";
+        reg = <0xe0200000 0x100>;
+        ranges = <0x0 0xe0200000 0x100>;
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        emmc-phy@a8 {
+            compatible = "intel,lgm-emmc-phy";
+            reg = <0x00a8 0x10>;
+            clocks = <&emmc>;
+            #phy-cells = <0>;
+        };
+    };
index ba2014a8725c3630d1935fa5c7f47f036e0b7cdb..a10326a9683d62c4635be20c6e8926883379e644 100644 (file)
@@ -33,6 +33,7 @@ properties:
       - mediatek,mt8186-disp-mutex
       - mediatek,mt8186-mdp3-mutex
       - mediatek,mt8188-disp-mutex
+      - mediatek,mt8188-vpp-mutex
       - mediatek,mt8192-disp-mutex
       - mediatek,mt8195-disp-mutex
       - mediatek,mt8195-vpp-mutex
diff --git a/Bindings/soc/microchip/microchip,sparx5-cpu-syscon.yaml b/Bindings/soc/microchip/microchip,sparx5-cpu-syscon.yaml
new file mode 100644 (file)
index 0000000..1f0b542
--- /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/soc/microchip/microchip,sparx5-cpu-syscon.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip Sparx5 CPU Syscon
+
+maintainers:
+  - Lars Povlsen <lars.povlsen@microchip.com>
+
+properties:
+  compatible:
+    items:
+      - const: microchip,sparx5-cpu-syscon
+      - const: syscon
+      - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  mux-controller:
+    $ref: /schemas/mux/reg-mux.yaml#
+
+required:
+  - compatible
+  - reg
+  - mux-controller
+
+additionalProperties: false
+
+examples:
+  - |
+    soc {
+        #address-cells = <2>;
+        #size-cells = <1>;
+
+        syscon@600000000 {
+            compatible = "microchip,sparx5-cpu-syscon", "syscon",
+                         "simple-mfd";
+            reg = <0x6 0x00000000 0xd0>;
+
+            mux: mux-controller {
+                compatible = "mmio-mux";
+                #mux-control-cells = <1>;
+                mux-reg-masks = <0x88 0xf0>;
+            };
+        };
+    };
diff --git a/Bindings/soc/mobileye/mobileye,eyeq5-olb.yaml b/Bindings/soc/mobileye/mobileye,eyeq5-olb.yaml
new file mode 100644 (file)
index 0000000..f7e606d
--- /dev/null
@@ -0,0 +1,374 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/mobileye/mobileye,eyeq5-olb.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Mobileye EyeQ SoC system controller
+
+maintainers:
+  - Grégory Clement <gregory.clement@bootlin.com>
+  - Théo Lebrun <theo.lebrun@bootlin.com>
+  - Vladimir Kondratiev <vladimir.kondratiev@mobileye.com>
+
+description:
+  OLB ("Other Logic Block") is a hardware block grouping smaller blocks. Clocks,
+  resets, pinctrl are being handled from here. EyeQ5 and EyeQ6L host a single
+  instance. EyeQ6H hosts seven instances.
+
+properties:
+  compatible:
+    items:
+      - enum:
+          - mobileye,eyeq5-olb
+          - mobileye,eyeq6l-olb
+          - mobileye,eyeq6h-acc-olb
+          - mobileye,eyeq6h-central-olb
+          - mobileye,eyeq6h-east-olb
+          - mobileye,eyeq6h-west-olb
+          - mobileye,eyeq6h-south-olb
+          - mobileye,eyeq6h-ddr0-olb
+          - mobileye,eyeq6h-ddr1-olb
+      - const: syscon
+
+  reg:
+    maxItems: 1
+
+  '#reset-cells':
+    description:
+      First cell is domain and optional if compatible has a single reset domain.
+      Second cell is reset index inside that domain.
+    enum: [ 1, 2 ]
+
+  '#clock-cells':
+    description:
+      Cell is clock index. Optional if compatible has a single clock.
+    enum: [ 0, 1 ]
+
+  clocks:
+    maxItems: 1
+    description:
+      Input parent clock to all PLLs. Expected to be the main crystal.
+
+  clock-names:
+    const: ref
+
+patternProperties:
+  '-pins?$':
+    type: object
+    description: Pin muxing configuration.
+    $ref: /schemas/pinctrl/pinmux-node.yaml#
+    additionalProperties: false
+    properties:
+      pins: true
+      function:
+        enum: [gpio,
+               # Bank A
+               timer0, timer1, timer2, timer5, uart0, uart1, can0, can1, spi0,
+               spi1, refclk0,
+               # Bank B
+               timer3, timer4, timer6, uart2, can2, spi2, spi3, mclk0]
+      bias-disable: true
+      bias-pull-down: true
+      bias-pull-up: true
+      drive-strength: true
+    required:
+      - pins
+      - function
+    allOf:
+      - if:
+          properties:
+            function:
+              const: gpio
+        then:
+          properties:
+            pins:
+              items: # PA0 - PA28, PB0 - PB22
+                pattern: '^(P(A|B)1?[0-9]|PA2[0-8]|PB2[0-2])$'
+      - if:
+          properties:
+            function:
+              const: timer0
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PA0, PA1]
+      - if:
+          properties:
+            function:
+              const: timer1
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PA2, PA3]
+      - if:
+          properties:
+            function:
+              const: timer2
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PA4, PA5]
+      - if:
+          properties:
+            function:
+              const: timer5
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PA6, PA7, PA8, PA9]
+      - if:
+          properties:
+            function:
+              const: uart0
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PA10, PA11]
+      - if:
+          properties:
+            function:
+              const: uart1
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PA12, PA13]
+      - if:
+          properties:
+            function:
+              const: can0
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PA14, PA15]
+      - if:
+          properties:
+            function:
+              const: can1
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PA16, PA17]
+      - if:
+          properties:
+            function:
+              const: spi0
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PA18, PA19, PA20, PA21, PA22]
+      - if:
+          properties:
+            function:
+              const: spi1
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PA23, PA24, PA25, PA26, PA27]
+      - if:
+          properties:
+            function:
+              const: refclk0
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PA28]
+      - if:
+          properties:
+            function:
+              const: timer3
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PB0, PB1]
+      - if:
+          properties:
+            function:
+              const: timer4
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PB2, PB3]
+      - if:
+          properties:
+            function:
+              const: timer6
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PB4, PB5, PB6, PB7]
+      - if:
+          properties:
+            function:
+              const: uart2
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PB8, PB9]
+      - if:
+          properties:
+            function:
+              const: can2
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PB10, PB11]
+      - if:
+          properties:
+            function:
+              const: spi2
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PB12, PB13, PB14, PB15, PB16]
+      - if:
+          properties:
+            function:
+              const: spi3
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PB17, PB18, PB19, PB20, PB21]
+      - if:
+          properties:
+            function:
+              const: mclk0
+        then:
+          properties:
+            pins:
+              items:
+                enum: [PB22]
+
+required:
+  - compatible
+  - reg
+  - '#clock-cells'
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+allOf:
+    # Compatibles exposing a single reset domain.
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - mobileye,eyeq6h-acc-olb
+              - mobileye,eyeq6h-east-olb
+              - mobileye,eyeq6h-west-olb
+    then:
+      properties:
+        '#reset-cells':
+          const: 1
+      required:
+        - '#reset-cells'
+
+    # Compatibles exposing two reset domains.
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - mobileye,eyeq5-olb
+              - mobileye,eyeq6l-olb
+    then:
+      properties:
+        '#reset-cells':
+          const: 2
+      required:
+        - '#reset-cells'
+
+    # Compatibles not exposing resets.
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - mobileye,eyeq6h-central-olb
+              - mobileye,eyeq6h-south-olb
+              - mobileye,eyeq6h-ddr0-olb
+              - mobileye,eyeq6h-ddr1-olb
+    then:
+      properties:
+        '#reset-cells': false
+
+    # Compatibles exposing a single clock.
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - mobileye,eyeq6h-central-olb
+              - mobileye,eyeq6h-east-olb
+              - mobileye,eyeq6h-west-olb
+              - mobileye,eyeq6h-ddr0-olb
+              - mobileye,eyeq6h-ddr1-olb
+    then:
+      properties:
+        '#clock-cells':
+          const: 0
+    else:
+      properties:
+        '#clock-cells':
+          const: 1
+
+    # Only EyeQ5 has pinctrl in OLB.
+  - if:
+      not:
+        properties:
+          compatible:
+            contains:
+              const: mobileye,eyeq5-olb
+    then:
+      patternProperties:
+        '-pins?$': false
+
+examples:
+  - |
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      system-controller@e00000 {
+        compatible = "mobileye,eyeq5-olb", "syscon";
+        reg = <0 0xe00000 0x0 0x400>;
+        #reset-cells = <2>;
+        #clock-cells = <1>;
+        clocks = <&xtal>;
+        clock-names = "ref";
+      };
+    };
+  - |
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      system-controller@d2003000 {
+        compatible = "mobileye,eyeq6h-acc-olb", "syscon";
+        reg = <0x0 0xd2003000 0x0 0x1000>;
+        #reset-cells = <1>;
+        #clock-cells = <1>;
+        clocks = <&xtal>;
+        clock-names = "ref";
+      };
+    };
index b4478f417edc325f44a40739315f40bdab8bd694..7afdb60edb22bb6e6042e2562afa9feb771f98e6 100644 (file)
@@ -31,6 +31,7 @@ properties:
           - qcom,sc7280-aoss-qmp
           - qcom,sc8180x-aoss-qmp
           - qcom,sc8280xp-aoss-qmp
+          - qcom,sdx75-aoss-qmp
           - qcom,sdm845-aoss-qmp
           - qcom,sm6350-aoss-qmp
           - qcom,sm8150-aoss-qmp
index 9410404f87f1afb864c79614ada2659745a37ae9..ad2dcc39a5f5480f31057275d71c76e5ab864890 100644 (file)
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Qualcomm Technologies, Inc. (QTI) RPM Master Stats
 
 maintainers:
-  - Konrad Dybcio <konrad.dybcio@linaro.org>
+  - Konrad Dybcio <konradybcio@kernel.org>
 
 description: |
   The Qualcomm RPM (Resource Power Manager) architecture includes a concept
index 58500529b90fb960c0ce476d0ecd8dead97e7053..141d666dc3f7b5b7eb47c01f4a7f6cef3fc9745e 100644 (file)
@@ -41,6 +41,7 @@ properties:
     description:
       Three entries specifying the outgoing ipc bit used for signaling the
       remote end of the smp2p edge.
+    deprecated: true
 
   qcom,local-pid:
     $ref: /schemas/types.yaml#/definitions/uint32
@@ -128,7 +129,7 @@ examples:
         compatible = "qcom,smp2p";
         qcom,smem = <431>, <451>;
         interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
-        qcom,ipc = <&apcs 8 18>;
+        mboxes = <&apcs 18>;
         qcom,local-pid = <0>;
         qcom,remote-pid = <4>;
 
index db67cf043256145aae41ae35782d3766d8879234..4900215f26af76361858a0957e39db96414e865c 100644 (file)
@@ -33,6 +33,14 @@ properties:
       specifier of the column in the subscription matrix representing the local
       processor.
 
+  mboxes:
+    minItems: 1
+    maxItems: 5
+    description:
+      Reference to the mailbox representing the outgoing doorbell in APCS for
+      this client. Each entry represents the N:th remote processor by index
+      (0-indexed).
+
   '#size-cells':
     const: 0
 
@@ -47,6 +55,7 @@ patternProperties:
     description:
       Three entries specifying the outgoing ipc bit used for signaling the N:th
       remote processor.
+    deprecated: true
 
   "@[0-9a-f]$":
     type: object
@@ -98,15 +107,18 @@ required:
   - '#address-cells'
   - '#size-cells'
 
-anyOf:
-  - required:
-      - qcom,ipc-1
-  - required:
-      - qcom,ipc-2
-  - required:
-      - qcom,ipc-3
+oneOf:
   - required:
-      - qcom,ipc-4
+      - mboxes
+  - anyOf:
+      - required:
+          - qcom,ipc-1
+      - required:
+          - qcom,ipc-2
+      - required:
+          - qcom,ipc-3
+      - required:
+          - qcom,ipc-4
 
 additionalProperties: false
 
@@ -122,7 +134,7 @@ examples:
         compatible = "qcom,smsm";
         #address-cells = <1>;
         #size-cells = <0>;
-        qcom,ipc-3 = <&apcs 8 19>;
+        mboxes = <0>, <0>, <0>, <&apcs 19>;
 
         apps_smsm: apps@0 {
             reg = <0>;
index 79798c7474768a0d167f6fef8f59ba144bba01a2..35b20e53b5132815961033d0ee646dd27b2e2b99 100644 (file)
@@ -31,10 +31,16 @@ properties:
               - rockchip,rk3588-pcie3-pipe-grf
               - rockchip,rk3588-usb-grf
               - rockchip,rk3588-usbdpphy-grf
-              - rockchip,rk3588-vo-grf
+              - rockchip,rk3588-vo0-grf
+              - rockchip,rk3588-vo1-grf
               - rockchip,rk3588-vop-grf
               - rockchip,rv1108-usbgrf
           - const: syscon
+      - items:
+          - const: rockchip,rk3588-vo-grf
+          - const: syscon
+        deprecated: true
+        description: Use rockchip,rk3588-vo{0,1}-grf instead.
       - items:
           - enum:
               - rockchip,px30-grf
@@ -176,9 +182,10 @@ allOf:
             Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
 
       patternProperties:
-        "phy@[0-9a-f]+$":
-          description:
-            Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
+        "^phy@[0-9a-f]+$":
+          type: object
+          $ref: /schemas/phy/rockchip,rk3399-emmc-phy.yaml#
+          unevaluatedProperties: false
 
   - if:
       properties:
@@ -261,6 +268,8 @@ allOf:
           contains:
             enum:
               - rockchip,rk3588-vo-grf
+              - rockchip,rk3588-vo0-grf
+              - rockchip,rk3588-vo1-grf
 
     then:
       required:
@@ -292,6 +301,15 @@ examples:
         #phy-cells = <0>;
       };
 
+      phy@f780 {
+        compatible = "rockchip,rk3399-emmc-phy";
+        reg = <0xf780 0x20>;
+        clocks = <&sdhci>;
+        clock-names = "emmcclk";
+        drive-impedance-ohm = <50>;
+        #phy-cells = <0>;
+      };
+
       u2phy0: usb2phy@e450 {
         compatible = "rockchip,rk3399-usb2phy";
         reg = <0xe450 0x10>;
diff --git a/Bindings/soc/sprd/sprd,sc9863a-glbregs.yaml b/Bindings/soc/sprd/sprd,sc9863a-glbregs.yaml
new file mode 100644 (file)
index 0000000..49add56
--- /dev/null
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/sprd/sprd,sc9863a-glbregs.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: SC9863A Syscon
+
+maintainers:
+  - Orson Zhai <orsonzhai@gmail.com>
+  - Baolin Wang <baolin.wang7@gmail.com>
+  - Chunyan Zhang <zhang.lyra@gmail.com>
+
+properties:
+  compatible:
+    items:
+      - const: sprd,sc9863a-glbregs
+      - const: syscon
+      - const: simple-mfd
+
+  reg:
+    maxItems: 1
+
+  ranges: true
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 1
+
+patternProperties:
+  "@[0-9a-f]+$":
+    $ref: /schemas/clock/sprd,sc9863a-clk.yaml
+    description: Clock controllers
+
+additionalProperties: false
+
+examples:
+  - |
+    syscon@20e00000 {
+      compatible = "sprd,sc9863a-glbregs", "syscon", "simple-mfd";
+      reg = <0x20e00000 0x4000>;
+      ranges = <0 0x20e00000 0x4000>;
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      apahb_gate: apahb-gate@0 {
+        compatible = "sprd,sc9863a-apahb-gate";
+        reg = <0x0 0x1020>;
+        #clock-cells = <1>;
+      };
+    };
+
+...
index 5f97d9ff17fbb27d5282a051656789da43373c2d..fc933d70d138ea0372907c391a79a6cc99a35c20 100644 (file)
@@ -30,6 +30,15 @@ properties:
   reg:
     maxItems: 1
 
+  sti-sasg-codec:
+    description: STi internal audio codec
+    type: object
+    additionalProperties: true
+
+    properties:
+      compatible:
+        const: st,stih407-sas-codec
+
 required:
   - compatible
   - reg
index a750035d62342fdb1d6e23446149bba0ae56e052..b6da72032151471ccf6b2566e97ad20229cadf22 100644 (file)
@@ -40,7 +40,7 @@ properties:
       TI_SCI_PD_SHARED - Allows the device to be shared by multiple hosts.
       Please refer to dt-bindings/soc/ti,sci_pm_domain.h for the definitions.
 
-      Please see  http://processors.wiki.ti.com/index.php/TISCI for
+      Please see https://software-dl.ti.com/tisci/esd/latest/index.html for
       protocol documentation for the values to be used for different devices.
 
 additionalProperties: false
diff --git a/Bindings/soc/ti/ti,am654-serdes-ctrl.yaml b/Bindings/soc/ti/ti,am654-serdes-ctrl.yaml
new file mode 100644 (file)
index 0000000..a10a3b8
--- /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/soc/ti/ti,am654-serdes-ctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments AM654 Serdes Control Syscon
+
+maintainers:
+  - Nishanth Menon <nm@ti.com>
+
+properties:
+  compatible:
+    items:
+      - const: ti,am654-serdes-ctrl
+      - const: syscon
+
+  reg:
+    maxItems: 1
+
+  mux-controller:
+    $ref: /schemas/mux/reg-mux.yaml#
+
+required:
+  - compatible
+  - reg
+  - mux-controller
+
+additionalProperties: false
+
+examples:
+  - |
+    clock@4080 {
+        compatible = "ti,am654-serdes-ctrl", "syscon";
+        reg = <0x4080 0x4>;
+
+        mux-controller {
+            compatible = "mmio-mux";
+            #mux-control-cells = <1>;
+            mux-reg-masks = <0x0 0x3>; /* lane select */
+        };
+    };
similarity index 96%
rename from Bindings/mfd/ti,j721e-system-controller.yaml
rename to Bindings/soc/ti/ti,j721e-system-controller.yaml
index e6289fbe69070689c7914ddc37a579c01fb17347..378e9cc5fac2a1d41a28acca1d42a9361c053417 100644 (file)
@@ -2,7 +2,7 @@
 # Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/mfd/ti,j721e-system-controller.yaml#
+$id: http://devicetree.org/schemas/soc/ti/ti,j721e-system-controller.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: TI J721e System Controller Registers R/W
@@ -19,7 +19,7 @@ description: |
   and access the registers directly.
 
 maintainers:
-  - Kishon Vijay Abraham I <kishon@ti.com>
+  - Kishon Vijay Abraham I <kishon@kernel.org>
   - Roger Quadros <rogerq@kernel.org>
 
 properties:
diff --git a/Bindings/sound/ak4104.txt b/Bindings/sound/ak4104.txt
deleted file mode 100644 (file)
index ae5f7f0..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-AK4104 S/PDIF transmitter
-
-This device supports SPI mode only.
-
-Required properties:
-
-  - compatible : "asahi-kasei,ak4104"
-
-  - reg : The chip select number on the SPI bus
-
-  - vdd-supply : A regulator node, providing 2.7V - 3.6V
-
-Optional properties:
-
-  - reset-gpios : a GPIO spec for the reset pin. If specified, it will be
-                 deasserted before communication to the device starts.
-
-Example:
-
-spdif: ak4104@0 {
-       compatible = "asahi-kasei,ak4104";
-       reg = <0>;
-       spi-max-frequency = <5000000>;
-       vdd-supply = <&vdd_3v3_reg>;
-};
diff --git a/Bindings/sound/ak4554.txt b/Bindings/sound/ak4554.txt
deleted file mode 100644 (file)
index 934fa02..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-AK4554 ADC/DAC
-
-Required properties:
-
-  - compatible : "asahi-kasei,ak4554"
-
-Example:
-
-ak4554-adc-dac {
-       compatible = "asahi-kasei,ak4554";
-};
diff --git a/Bindings/sound/amlogic,g12a-tohdmitx.txt b/Bindings/sound/amlogic,g12a-tohdmitx.txt
deleted file mode 100644 (file)
index 4e8cd7e..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-* Amlogic HDMI Tx control glue
-
-Required properties:
-- compatible: "amlogic,g12a-tohdmitx" or
-             "amlogic,sm1-tohdmitx"
-- reg: physical base address of the controller and length of memory
-       mapped region.
-- #sound-dai-cells: should be 1.
-- resets: phandle to the dedicated reset line of the hdmitx glue.
-
-Example on the S905X2 SoC:
-
-tohdmitx: audio-controller@744 {
-       compatible = "amlogic,g12a-tohdmitx";
-       reg = <0x0 0x744 0x0 0x4>;
-       #sound-dai-cells = <1>;
-       resets = <&clkc_audio AUD_RESET_TOHDMITX>;
-};
-
-Example of an 'amlogic,axg-sound-card':
-
-sound {
-       compatible = "amlogic,axg-sound-card";
-
-[...]
-
-       dai-link-x {
-               sound-dai = <&tdmif_a>;
-               dai-format = "i2s";
-               dai-tdm-slot-tx-mask-0 = <1 1>;
-
-               codec-0 {
-                       sound-dai = <&tohdmitx TOHDMITX_I2S_IN_A>;
-               };
-
-               codec-1 {
-                       sound-dai = <&external_dac>;
-               };
-       };
-
-       dai-link-y {
-               sound-dai = <&tdmif_c>;
-               dai-format = "i2s";
-               dai-tdm-slot-tx-mask-0 = <1 1>;
-
-               codec {
-                       sound-dai = <&tohdmitx TOHDMITX_I2S_IN_C>;
-               };
-       };
-
-       dai-link-z {
-               sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
-
-               codec {
-                       sound-dai = <&hdmi_tx>;
-               };
-       };
-};
diff --git a/Bindings/sound/amlogic,g12a-tohdmitx.yaml b/Bindings/sound/amlogic,g12a-tohdmitx.yaml
new file mode 100644 (file)
index 0000000..b4b7847
--- /dev/null
@@ -0,0 +1,54 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/amlogic,g12a-tohdmitx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Amlogic G12a HDMI TX Control Glue
+
+maintainers:
+  - Jerome Brunet <jbrunet@baylibre.com>
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  $nodename:
+    pattern: "^audio-controller@.*"
+
+  compatible:
+    oneOf:
+      - items:
+          - const: amlogic,g12a-tohdmitx
+      - items:
+          - enum:
+              - amlogic,sm1-tohdmitx
+          - const: amlogic,g12a-tohdmitx
+
+  reg:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+  "#sound-dai-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - resets
+  - "#sound-dai-cells"
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/reset/amlogic,meson-g12a-audio-reset.h>
+
+    tohdmitx: audio-controller@744 {
+        compatible = "amlogic,g12a-tohdmitx";
+        reg = <0x744 0x4>;
+        resets = <&clkc_audio AUD_RESET_TOHDMITX>;
+        #sound-dai-cells = <1>;
+    };
index d4277d342e699ac4ab483f8fedb5e48421e17a33..0ecdaf7190e9f12ac527fb77f6cd30118ae672c3 100644 (file)
@@ -23,7 +23,6 @@ properties:
 
   audio-widgets:
     $ref: /schemas/types.yaml#/definitions/non-unique-string-array
-    minItems: 2
     description: |-
       A list off component DAPM widget. Each entry is a pair of strings,
       the first being the widget type, the second being the widget name
diff --git a/Bindings/sound/asahi-kasei,ak4104.yaml b/Bindings/sound/asahi-kasei,ak4104.yaml
new file mode 100644 (file)
index 0000000..86f6061
--- /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/sound/asahi-kasei,ak4104.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: AK4104 S/PDIF transmitter
+
+allOf:
+  - $ref: dai-common.yaml#
+
+maintainers:
+  - Daniel Mack <github@zonque.org>
+  - Xiaxi Shen <shenxiaxi26@gmail.com>
+
+properties:
+  compatible:
+    const: asahi-kasei,ak4104
+
+  reg:
+    description: Chip select number on the SPI bus 
+    maxItems: 1
+
+  vdd-supply:
+    description: A regulator node providing between 2.7V and 3.6V.
+
+  reset-gpios:
+    maxItems: 1
+    description: Optional GPIO spec for the reset pin, deasserted 
+                  before communication starts.
+    
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        codec@0 {
+            compatible = "asahi-kasei,ak4104";
+            reg = <0>;
+            vdd-supply = <&vdd_3v3_reg>;
+        };
+    };
similarity index 94%
rename from Bindings/sound/ak4375.yaml
rename to Bindings/sound/asahi-kasei,ak4375.yaml
index 587598e122c6ed3d09cdd352584bfd7ecba62f10..bc07fcba535bfd06f7ce45e44dcc885ca1a0907a 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/sound/ak4375.yaml#
+$id: http://devicetree.org/schemas/sound/asahi-kasei,ak4375.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: AK4375 DAC and headphones amplifier
diff --git a/Bindings/sound/asahi-kasei,ak4554.yaml b/Bindings/sound/asahi-kasei,ak4554.yaml
new file mode 100644 (file)
index 0000000..c77d85d
--- /dev/null
@@ -0,0 +1,27 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/asahi-kasei,ak4554.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: AK4554 sound codec
+
+maintainers:
+  - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+  - Liam Girdwood <lgirdwood@gmail.com>
+  - Mark Brown <broonie@kernel.org>
+
+properties:
+  compatible:
+    const: asahi-kasei,ak4554
+
+required:
+  - compatible
+
+additionalProperties: false
+
+examples:
+  - |
+    codec {
+        compatible = "asahi-kasei,ak4554";
+    };
similarity index 94%
rename from Bindings/sound/ak4613.yaml
rename to Bindings/sound/asahi-kasei,ak4613.yaml
index 75e13414d6eb18654c91e63f84e5d601cbe17ae9..b49a6cff9f1f7affde5f5016b2760df2381e1736 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/sound/ak4613.yaml#
+$id: http://devicetree.org/schemas/sound/asahi-kasei,ak4613.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: AK4613 I2C transmitter
diff --git a/Bindings/sound/asahi-kasei,ak4619.yaml b/Bindings/sound/asahi-kasei,ak4619.yaml
new file mode 100644 (file)
index 0000000..d412531
--- /dev/null
@@ -0,0 +1,62 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/asahi-kasei,ak4619.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: AK4619 I2C transmitter
+
+maintainers:
+  - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+  - Khanh Le <khanh.le.xr@renesas.com>
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    const: asahi-kasei,ak4619
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: mclk
+
+  "#sound-dai-cells":
+    const: 0
+
+  port:
+    $ref: audio-graph-port.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        codec@10 {
+            compatible = "asahi-kasei,ak4619";
+            reg = <0x10>;
+
+            clocks = <&rcar_sound>;
+            clock-names = "mclk";
+
+            #sound-dai-cells = <0>;
+            port {
+                 ak4619_endpoint: endpoint {
+                       remote-endpoint = <&rsnd_endpoint>;
+                  };
+            };
+        };
+    };
similarity index 94%
rename from Bindings/sound/ak4642.yaml
rename to Bindings/sound/asahi-kasei,ak4642.yaml
index 437fe5d7cae1464c254761514678e1ad429f9fd9..fc03f0373a1a1db9839c0922c12e7c02b054f86a 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/sound/ak4642.yaml#
+$id: http://devicetree.org/schemas/sound/asahi-kasei,ak4642.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: AK4642 I2C transmitter
index d3ce4de449d51303476d12e29a74c814409a5ea0..f943f90d8b150af11c47caf3512c2ab61cd0fc89 100644 (file)
@@ -23,6 +23,11 @@ properties:
       Each entry is a pair of strings, the first being the
       connection's sink, the second being the connection's source.
     $ref: /schemas/types.yaml#/definitions/non-unique-string-array
+  aux-devs:
+    description: |
+      List of phandles pointing to auxiliary devices, such
+      as amplifiers, to be added to the sound card.
+    $ref: /schemas/types.yaml#/definitions/phandle-array
   multi:
     type: object
     description: Multi-CPU/Codec node
index 28b27e7e45de6beb5037d6e7e3d616e3d4188294..d1cbfc5edd3ac30fd8affddff4458ed2d34bc603 100644 (file)
@@ -25,6 +25,15 @@ definitions:
       capture-only:
         description: port connection used only for capture
         $ref: /schemas/types.yaml#/definitions/flag
+      link-trigger-order:
+        description: trigger order for both start/stop
+        $ref: /schemas/types.yaml#/definitions/uint32-array
+      link-trigger-order-start:
+        description: trigger order for start
+        $ref: /schemas/types.yaml#/definitions/uint32-array
+      link-trigger-order-stop:
+        description: trigger order for stop
+        $ref: /schemas/types.yaml#/definitions/uint32-array
 
   endpoint-base:
     allOf:
diff --git a/Bindings/sound/cirrus,cs4270.yaml b/Bindings/sound/cirrus,cs4270.yaml
new file mode 100644 (file)
index 0000000..336e117
--- /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/sound/cirrus,cs4270.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic CS4270 audio CODEC
+
+maintainers:
+  - patches@opensource.cirrus.com
+
+description:
+  The CS4270 is a stereo audio codec. The driver for this device currently only
+  supports I2C.
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    const: cirrus,cs4270
+
+  reg:
+    maxItems: 1
+
+  '#sound-dai-cells':
+    const: 0
+
+  reset-gpios:
+    description:
+      This pin will be deasserted before communication to the codec starts.
+    maxItems: 1
+
+  va-supply:
+    description: Analog power supply.
+
+  vd-supply:
+    description: Digital power supply.
+
+  vlc-supply:
+    description: Serial Control Port power supply.
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      codec@48 {
+          compatible = "cirrus,cs4270";
+          reg = <0x48>;
+      };
+    };
diff --git a/Bindings/sound/cirrus,cs42xx8.yaml b/Bindings/sound/cirrus,cs42xx8.yaml
new file mode 100644 (file)
index 0000000..725b47e
--- /dev/null
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/cirrus,cs42xx8.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic CS42448/CS42888 audio CODEC
+
+maintainers:
+  - patches@opensource.cirrus.com
+
+properties:
+  compatible:
+    enum:
+      - cirrus,cs42448
+      - cirrus,cs42888
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    const: mclk
+
+  VA-supply:
+    description: Analog power supply.
+
+  VD-supply:
+    description: Digital power supply.
+
+  VLC-supply:
+    description: Control port power supply
+
+  VLS-supply:
+    description: Serial port interface power supply.
+
+  reset-gpios:
+    description: This pin is connected to the chip's RESET pin.
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+
+if:
+  properties:
+    compatible:
+      contains:
+        const: cirrus,cs42888
+then:
+  required:
+    - VA-supply
+    - VD-supply
+    - VLC-supply
+    - VLS-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      codec@48 {
+          compatible = "cirrus,cs42888";
+          reg = <0x48>;
+          clocks = <&codec_mclk 0>;
+          clock-names = "mclk";
+          VA-supply = <&reg_audio>;
+          VD-supply = <&reg_audio>;
+          VLS-supply = <&reg_audio>;
+          VLC-supply = <&reg_audio>;
+          reset-gpios = <&gpio 1>;
+      };
+    };
diff --git a/Bindings/sound/cirrus,cs530x.yaml b/Bindings/sound/cirrus,cs530x.yaml
new file mode 100644 (file)
index 0000000..9582eb8
--- /dev/null
@@ -0,0 +1,85 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/cirrus,cs530x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic cs530x family of audio ADCs
+
+maintainers:
+  - Paul Handrigan <paulha@opensource.cirrus.com>
+  - patches@opensource.cirrus.com
+
+description:
+  The CS530X devices are a family of high performance audio ADCs.
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    enum:
+      - cirrus,cs5302
+      - cirrus,cs5304
+      - cirrus,cs5308
+
+  reg:
+    maxItems: 1
+
+  '#sound-dai-cells':
+    const: 1
+
+  reset-gpios:
+    maxItems: 1
+
+  vdd-a-supply:
+    description: Analog power supply
+
+  vdd-io-supply:
+    description: Digital IO power supply
+
+  cirrus,in-hiz-pin12:
+    description:
+      Sets input channels one and two to high impedance.
+    type: boolean
+
+  cirrus,in-hiz-pin34:
+    description:
+      Sets input channels three and four to high impedance.
+    type: boolean
+
+  cirrus,in-hiz-pin56:
+    description:
+      Sets input channels five and six to high impedance.
+    type: boolean
+
+  cirrus,in-hiz-pin78:
+    description:
+      Sets input channels seven and eight to high impedance.
+    type: boolean
+
+required:
+  - compatible
+  - reg
+  - "#sound-dai-cells"
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        cs5304: adc@48 {
+            compatible = "cirrus,cs5304";
+            reg = <0x48>;
+            #sound-dai-cells = <1>;
+            reset-gpios = <&gpio 110 GPIO_ACTIVE_LOW>;
+            vdd-a-supply = <&vreg>;
+            vdd-io-supply = <&vreg>;
+            cirrus,in-hiz-pin34;
+        };
+    };
diff --git a/Bindings/sound/cs4270.txt b/Bindings/sound/cs4270.txt
deleted file mode 100644 (file)
index c33770e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-CS4270 audio CODEC
-
-The driver for this device currently only supports I2C.
-
-Required properties:
-
-  - compatible : "cirrus,cs4270"
-
-  - reg : the I2C address of the device for I2C
-
-Optional properties:
-
-  - reset-gpios : a GPIO spec for the reset pin. If specified, it will be
-                 deasserted before communication to the codec starts.
-
-Example:
-
-codec: cs4270@48 {
-       compatible = "cirrus,cs4270";
-       reg = <0x48>;
-};
diff --git a/Bindings/sound/cs42xx8.txt b/Bindings/sound/cs42xx8.txt
deleted file mode 100644 (file)
index bbfe393..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-CS42448/CS42888 audio CODEC
-
-Required properties:
-
-  - compatible : must contain one of "cirrus,cs42448" and "cirrus,cs42888"
-
-  - reg : the I2C address of the device for I2C
-
-  - clocks : a list of phandles + clock-specifiers, one for each entry in
-    clock-names
-
-  - clock-names : must contain "mclk"
-
-  - VA-supply, VD-supply, VLS-supply, VLC-supply: power supplies for the device,
-    as covered in Documentation/devicetree/bindings/regulator/regulator.txt
-
-Optional properties:
-
-  - reset-gpios : a GPIO spec to define which pin is connected to the chip's
-    !RESET pin
-
-Example:
-
-cs42888: codec@48 {
-       compatible = "cirrus,cs42888";
-       reg = <0x48>;
-       clocks = <&codec_mclk 0>;
-       clock-names = "mclk";
-       VA-supply = <&reg_audio>;
-       VD-supply = <&reg_audio>;
-       VLS-supply = <&reg_audio>;
-       VLC-supply = <&reg_audio>;
-       reset-gpios = <&pca9557_b 1 GPIO_ACTIVE_LOW>;
-};
diff --git a/Bindings/sound/everest,es7134.txt b/Bindings/sound/everest,es7134.txt
deleted file mode 100644 (file)
index 0916660..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-ES7134 i2s DA converter
-
-Required properties:
-- compatible : "everest,es7134" or
-               "everest,es7144" or
-              "everest,es7154"
-- VDD-supply : regulator phandle for the VDD supply
-- PVDD-supply: regulator phandle for the PVDD supply for the es7154
-
-Example:
-
-i2s_codec: external-codec {
-       compatible = "everest,es7134";
-       VDD-supply = <&vcc_5v>;
-};
diff --git a/Bindings/sound/everest,es71x4.yaml b/Bindings/sound/everest,es71x4.yaml
new file mode 100644 (file)
index 0000000..fd1b328
--- /dev/null
@@ -0,0 +1,62 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/everest,es71x4.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Everest ES7134/7144/7154 2 channels I2S analog to digital converter
+
+maintainers:
+  - Neil Armstrong <neil.armstrong@linaro.org>
+
+properties:
+  compatible:
+    enum:
+      - everest,es7134
+      - everest,es7144
+      - everest,es7154
+
+  VDD-supply: true
+  PVDD-supply: true
+
+  '#sound-dai-cells':
+    const: 0
+
+required:
+  - compatible
+  - VDD-supply
+
+allOf:
+  - $ref: dai-common.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - everest,es7134
+              - everest,es7144
+    then:
+      properties:
+        PVDD-supply: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - everest,es7154
+    then:
+      required:
+        - PVDD-supply
+
+unevaluatedProperties: false
+
+examples:
+  - |
+   codec {
+       compatible = "everest,es7134";
+       #sound-dai-cells = <0>;
+       VDD-supply = <&vdd_supply>;
+   };
+
+...
diff --git a/Bindings/sound/everest,es7241.txt b/Bindings/sound/everest,es7241.txt
deleted file mode 100644 (file)
index 28f82cf..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-ES7241 i2s AD converter
-
-Required properties:
-- compatible : "everest,es7241"
-- VDDP-supply: regulator phandle for the VDDA supply
-- VDDA-supply: regulator phandle for the VDDP supply
-- VDDD-supply: regulator phandle for the VDDD supply
-
-Optional properties:
-- reset-gpios: gpio connected to the reset pin
-- m0-gpios   : gpio connected to the m0 pin
-- m1-gpios   : gpio connected to the m1 pin
-- everest,sdout-pull-down:
-   Format used by the serial interface is controlled by pulling
-   the sdout. If the sdout is pulled down, leftj format is used.
-   If this property is not provided, sdout is assumed to pulled
-   up and i2s format is used
-
-Example:
-
-linein: audio-codec@2 {
-       #sound-dai-cells = <0>;
-       compatible = "everest,es7241";
-       VDDA-supply = <&vcc_3v3>;
-       VDDP-supply = <&vcc_3v3>;
-       VDDD-supply = <&vcc_3v3>;
-       reset-gpios = <&gpio GPIOH_42>;
-};
diff --git a/Bindings/sound/everest,es7241.yaml b/Bindings/sound/everest,es7241.yaml
new file mode 100644 (file)
index 0000000..f179af7
--- /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/everest,es7241.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Everest ES7241 2 channels I2S analog to digital converter
+
+maintainers:
+  - Neil Armstrong <neil.armstrong@linaro.org>
+
+properties:
+  compatible:
+    enum:
+      - everest,es7241
+
+  reset-gpios:
+    maxItems: 1
+    description: GPIO connected to the reset pin
+
+  m0-gpios:
+    maxItems: 1
+    description: GPIO connected to the m0 pin
+
+  m1-gpios:
+    maxItems: 1
+    description: GPIO connected to the m0 pin
+
+  everest,sdout-pull-down:
+    type: boolean
+    description:
+      Format used by the serial interface is controlled by pulling
+      the sdout. If the sdout is pulled down, leftj format is used.
+      If this property is not provided, sdout is assumed to pulled
+      up and i2s format is used
+
+  VDDP-supply: true
+  VDDA-supply: true
+  VDDD-supply: true
+
+  '#sound-dai-cells':
+    const: 0
+
+required:
+  - compatible
+  - VDDP-supply
+  - VDDA-supply
+  - VDDD-supply
+
+allOf:
+  - $ref: dai-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+   #include <dt-bindings/gpio/gpio.h>
+   codec {
+       compatible = "everest,es7241";
+       #sound-dai-cells = <0>;
+       reset-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
+       VDDP-supply = <&vddp_supply>;
+       VDDA-supply = <&vdda_supply>;
+       VDDD-supply = <&vddd_supply>;
+   };
+
+...
index b6079b3c440d54566321b47df8afdef2b738b745..214f135b7777f346c4ab168ef278abcd1687c908 100644 (file)
@@ -4,18 +4,21 @@
 $id: http://devicetree.org/schemas/sound/everest,es8316.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Everest ES8316 audio CODEC
+title: Everest ES8311 and ES8316 audio CODECs
 
 maintainers:
   - Daniel Drake <drake@endlessm.com>
   - Katsuhiro Suzuki <katsuhiro@katsuster.net>
+  - Matteo Martelli <matteomartelli3@gmail.com>
 
 allOf:
   - $ref: dai-common.yaml#
 
 properties:
   compatible:
-    const: everest,es8316
+    enum:
+      - everest,es8311
+      - everest,es8316
 
   reg:
     maxItems: 1
diff --git a/Bindings/sound/fsl,imx-audio-spdif.yaml b/Bindings/sound/fsl,imx-audio-spdif.yaml
deleted file mode 100644 (file)
index 5fc543d..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/sound/fsl,imx-audio-spdif.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Freescale i.MX audio complex with S/PDIF transceiver
-
-maintainers:
-  - Shengjiu Wang <shengjiu.wang@nxp.com>
-
-properties:
-  compatible:
-    oneOf:
-      - items:
-          - enum:
-              - fsl,imx-sabreauto-spdif
-              - fsl,imx6sx-sdb-spdif
-          - const: fsl,imx-audio-spdif
-      - enum:
-          - fsl,imx-audio-spdif
-
-  model:
-    $ref: /schemas/types.yaml#/definitions/string
-    description: User specified audio sound card name
-
-  spdif-controller:
-    $ref: /schemas/types.yaml#/definitions/phandle
-    description: The phandle of the i.MX S/PDIF controller
-
-  spdif-out:
-    type: boolean
-    description:
-      If present, the transmitting function of S/PDIF will be enabled,
-      indicating there's a physical S/PDIF out connector or jack on the
-      board or it's connecting to some other IP block, such as an HDMI
-      encoder or display-controller.
-
-  spdif-in:
-    type: boolean
-    description:
-      If present, the receiving function of S/PDIF will be enabled,
-      indicating there is a physical S/PDIF in connector/jack on the board.
-
-required:
-  - compatible
-  - model
-  - spdif-controller
-
-anyOf:
-  - required:
-      - spdif-in
-  - required:
-      - spdif-out
-
-additionalProperties: false
-
-examples:
-  - |
-    sound-spdif {
-        compatible = "fsl,imx-audio-spdif";
-        model = "imx-spdif";
-        spdif-controller = <&spdif>;
-        spdif-out;
-        spdif-in;
-    };
index 8b33353a80ca7e101f6e62fe4fa20fdff68d50d2..030ccc173130a4cc044ef0e335059fd164bda7ad 100644 (file)
@@ -23,6 +23,8 @@ properties:
       - fsl,imx8qm-mqs
       - fsl,imx8qxp-mqs
       - fsl,imx93-mqs
+      - fsl,imx95-aonmix-mqs
+      - fsl,imx95-netcmix-mqs
 
   clocks:
     minItems: 1
index b522ed7dcc51bf33b832c092811fa2e8cdb9615e..a23e49198c3736bf0d53f2798c68dd11ed922ba1 100644 (file)
@@ -12,7 +12,9 @@ maintainers:
 description: |
   The QMC audio is an ASoC component which uses QMC (QUICC Multichannel
   Controller) channels to transfer the audio data.
-  It provides as many DAI as the number of QMC channel used.
+  It provides several DAIs. For each DAI, the DAI is working in interleaved mode
+  if only one QMC channel is used by the DAI or it is working in non-interleaved
+  mode if several QMC channels are used by the DAI.
 
 allOf:
   - $ref: dai-common.yaml#
@@ -45,12 +47,19 @@ patternProperties:
       fsl,qmc-chan:
         $ref: /schemas/types.yaml#/definitions/phandle-array
         items:
-          - items:
-              - description: phandle to QMC node
-              - description: Channel number
+          items:
+            - description: phandle to QMC node
+            - description: Channel number
+        minItems: 1
         description:
-          Should be a phandle/number pair. The phandle to QMC node and the QMC
-          channel to use for this DAI.
+          Should be a phandle/number pair list. The list of phandle to QMC node
+          and the QMC channel pair to use for this DAI.
+          If only one phandle/number pair is provided, this DAI works in
+          interleaved mode, i.e. audio channels for this DAI are interleaved in
+          the QMC channel. If more than one pair is provided, this DAI works
+          in non-interleave mode. In that case the first audio channel uses the
+          the first QMC channel, the second audio channel uses the second QMC
+          channel, etc...
 
     required:
       - reg
@@ -79,6 +88,11 @@ examples:
             reg = <17>;
             fsl,qmc-chan = <&qmc 17>;
         };
+        dai@18 {
+            reg = <18>;
+            /* Non-interleaved mode */
+            fsl,qmc-chan = <&qmc 18>, <&qmc 19>;
+        };
     };
 
     sound {
@@ -115,4 +129,19 @@ examples:
                 dai-tdm-slot-rx-mask = <0 0 1 0 1 0 1 0 1>;
             };
         };
+        simple-audio-card,dai-link@2 {
+            reg = <2>;
+            format = "dsp_b";
+            cpu {
+                sound-dai = <&audio_controller 18>;
+            };
+            codec {
+                sound-dai = <&codec3>;
+                dai-tdm-slot-num = <2>;
+                dai-tdm-slot-width = <8>;
+                /* TS 9, 10 */
+                dai-tdm-slot-tx-mask = <0 0 0 0 0 0 0 0 0 1 1>;
+                dai-tdm-slot-rx-mask = <0 0 0 0 0 0 0 0 0 1 1>;
+            };
+        };
     };
index 188f38baddec31b0132cc9699d49d3288be2585b..3d5d435c765b4944af559474d4663e48cb764595 100644 (file)
@@ -29,6 +29,7 @@ properties:
       - fsl,imx8mp-rpmsg-audio
       - fsl,imx8ulp-rpmsg-audio
       - fsl,imx93-rpmsg-audio
+      - fsl,imx95-rpmsg-audio
 
   clocks:
     items:
similarity index 97%
rename from Bindings/sound/sgtl5000.yaml
rename to Bindings/sound/fsl,sgtl5000.yaml
index 1353c051488faeb1d4417a206f17e8ebc8f8fbba..c6ab1ca16763ba1b6cf6e1a5b6cdb9d8d201a1fe 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/sound/sgtl5000.yaml#
+$id: http://devicetree.org/schemas/sound/fsl,sgtl5000.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Freescale SGTL5000 Stereo Codec
index 0eb0c1ba8710dc14984c489696c2949cda680867..5e2801014221e07f80669b8dee44896062feca08 100644 (file)
@@ -22,6 +22,7 @@ properties:
     enum:
       - fsl,imx8mp-xcvr
       - fsl,imx93-xcvr
+      - fsl,imx95-xcvr
 
   reg:
     items:
@@ -41,6 +42,7 @@ properties:
     items:
       - description: WAKEUPMIX Audio XCVR Interrupt 1
       - description: WAKEUPMIX Audio XCVR Interrupt 2
+      - description: SPDIF wakeup interrupt from PHY
     minItems: 1
 
   clocks:
@@ -49,6 +51,9 @@ properties:
       - description: PHY clock
       - description: SPBA clock
       - description: PLL clock
+      - description: PLL clock source for 8kHz series
+      - description: PLL clock source for 11kHz series
+    minItems: 4
 
   clock-names:
     items:
@@ -56,6 +61,9 @@ properties:
       - const: phy
       - const: spba
       - const: pll_ipg
+      - const: pll8k
+      - const: pll11k
+    minItems: 4
 
   dmas:
     items:
@@ -79,15 +87,25 @@ required:
   - clock-names
   - dmas
   - dma-names
-  - resets
 
 allOf:
+  - $ref: dai-common.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: fsl,imx8mp-xcvr
+    then:
+      required:
+        - resets
+
   - if:
       properties:
         compatible:
           contains:
             enum:
               - fsl,imx93-xcvr
+              - fsl,imx95-xcvr
     then:
       properties:
         interrupts:
@@ -96,9 +114,24 @@ allOf:
     else:
       properties:
         interrupts:
-          maxItems: 1
+          minItems: 3
+          maxItems: 3
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - fsl,imx8mp-xcvr
+              - fsl,imx93-xcvr
+    then:
+      properties:
+        clocks:
+          maxItems: 4
+        clock-names:
+          maxItems: 4
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
@@ -113,7 +146,9 @@ examples:
                  <0x30cc0c00 0x080>,
                  <0x30cc0e00 0x080>;
            reg-names = "ram", "regs", "rxfifo", "txfifo";
-           interrupts = <0x0 128 IRQ_TYPE_LEVEL_HIGH>;
+           interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                        <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                        <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
            clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_EARC_IPG>,
                     <&audiomix_clk IMX8MP_CLK_AUDIOMIX_EARC_PHY>,
                     <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SPBA2_ROOT>,
index 9922664d5cccaa50a5c0b79ab2a903f00fe4cdb5..92aa47ec72c7b78e3f44d84d1c059ed718ba6090 100644 (file)
@@ -65,6 +65,11 @@ properties:
               - fsl,imx-audio-sgtl5000
               - fsl,imx-audio-wm8960
               - fsl,imx-audio-wm8962
+      - items:
+          - enum:
+              - fsl,imx-sabreauto-spdif
+              - fsl,imx6sx-sdb-spdif
+          - const: fsl,imx-audio-spdif
       - items:
           - enum:
               - fsl,imx-audio-ac97
@@ -81,6 +86,7 @@ properties:
               - fsl,imx-audio-wm8960
               - fsl,imx-audio-wm8962
               - fsl,imx-audio-wm8958
+              - fsl,imx-audio-spdif
 
   model:
     $ref: /schemas/types.yaml#/definitions/string
@@ -93,8 +99,15 @@ properties:
       need to add ASRC support via DPCM.
 
   audio-codec:
-    $ref: /schemas/types.yaml#/definitions/phandle
-    description: The phandle of an audio codec
+    $ref: /schemas/types.yaml#/definitions/phandle-array
+    description: |
+      The phandle of an audio codec.
+      With "fsl,imx-audio-spdif", either SPDIF audio codec spdif_transmitter,
+      spdif_receiver or both.
+    minItems: 1
+    maxItems: 2
+    items:
+      maxItems: 1
 
   audio-cpu:
     $ref: /schemas/types.yaml#/definitions/phandle
@@ -150,8 +163,10 @@ properties:
     description: dai-link uses bit clock inversion.
 
   mclk-id:
-    $ref: /schemas/types.yaml#/definitions/uint32
-    description: main clock id, specific for each card configuration.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description: Main clock id for each codec, specific for each card configuration.
+    minItems: 1
+    maxItems: 2
 
   mux-int-port:
     $ref: /schemas/types.yaml#/definitions/uint32
@@ -167,6 +182,27 @@ properties:
     $ref: /schemas/types.yaml#/definitions/phandle
     description: The phandle of an CPU DAI controller
 
+  spdif-controller:
+    $ref: /schemas/types.yaml#/definitions/phandle
+    deprecated: true
+    description: The phandle of an S/PDIF CPU DAI controller.
+
+  spdif-out:
+    type: boolean
+    deprecated: true
+    description: |
+      If present, the transmitting function of S/PDIF will be enabled,
+      indicating there's a physical S/PDIF out connector or jack on the
+      board or it's connecting to some other IP block, such as an HDMI
+      encoder or display-controller.
+
+  spdif-in:
+    type: boolean
+    deprecated: true
+    description: |
+      If present, the receiving function of S/PDIF will be enabled,
+      indicating there is a physical S/PDIF in connector/jack on the board.
+
 required:
   - compatible
   - model
@@ -195,3 +231,12 @@ examples:
              "AIN2L", "Line In Jack",
              "AIN2R", "Line In Jack";
     };
+
+  - |
+    sound-spdif-asrc {
+        compatible = "fsl,imx-audio-spdif";
+        model = "spdif-asrc-audio";
+        audio-cpu = <&spdif>;
+        audio-asrc = <&easrc>;
+        audio-codec = <&spdifdit>, <&spdifdir>;
+    };
similarity index 75%
rename from Bindings/sound/linux,spdif-dit.yaml
rename to Bindings/sound/linux,spdif.yaml
index fe5f0756af2f461029b6bbb84cf402c1105d4abb..0f4893e11ec44b173f801431b0682d1767b79dc9 100644 (file)
@@ -1,10 +1,10 @@
 # SPDX-License-Identifier: GPL-2.0
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/sound/linux,spdif-dit.yaml#
+$id: http://devicetree.org/schemas/sound/linux,spdif.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
-title: Dummy SPDIF Transmitter
+title: Dummy SPDIF Transmitter/Receiver
 
 maintainers:
   - Mark Brown <broonie@kernel.org>
@@ -14,7 +14,9 @@ allOf:
 
 properties:
   compatible:
-    const: linux,spdif-dit
+    enum:
+      - linux,spdif-dit
+      - linux,spdif-dir
 
   "#sound-dai-cells":
     const: 0
diff --git a/Bindings/sound/maxim,max98088.txt b/Bindings/sound/maxim,max98088.txt
deleted file mode 100644 (file)
index da764d9..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-MAX98088 audio CODEC
-
-This device supports I2C only.
-
-Required properties:
-
-- compatible: "maxim,max98088" or "maxim,max98089".
-- reg: The I2C address of the device.
-
-Optional properties:
-
-- clocks: the clock provider of MCLK, see ../clock/clock-bindings.txt section
-  "consumer" for more information.
-- clock-names: must be set to "mclk"
-
-Example:
-
-max98089: codec@10 {
-       compatible = "maxim,max98089";
-       reg = <0x10>;
-       clocks = <&clks IMX6QDL_CLK_CKO2>;
-       clock-names = "mclk";
-};
diff --git a/Bindings/sound/maxim,max98088.yaml b/Bindings/sound/maxim,max98088.yaml
new file mode 100644 (file)
index 0000000..e4a2967
--- /dev/null
@@ -0,0 +1,47 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/maxim,max98088.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: MAX98088 audio CODEC
+
+maintainers:
+  - Abdulrasaq Lawani <abdulrasaqolawani@gmail.com>
+
+properties:
+  compatible:
+    enum:
+      - maxim,max98088
+      - maxim,max98089
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: master clock
+
+  clock-names:
+    items:
+      - const: mclk
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        audio-codec@10 {
+            compatible = "maxim,max98089";
+            reg = <0x10>;
+            clocks = <&clks 0>;
+            clock-names = "mclk";
+        };
+    };
similarity index 96%
rename from Bindings/sound/zl38060.yaml
rename to Bindings/sound/mscc,zl38060.yaml
index 8bd201e573aa0d95c7eeffa48667e845f4193a88..994313fd12b27caf5302c5510251f44038f6c91c 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/sound/zl38060.yaml#
+$id: http://devicetree.org/schemas/sound/mscc,zl38060.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: ZL38060 Connected Home Audio Processor from Microsemi.
index 3dbf438c38410e5979d48a4d9137acdb7f7d8a1c..232dc16a94a38f00b1d01d18f5b8910b65475a59 100644 (file)
@@ -23,6 +23,14 @@ properties:
   '#sound-dai-cells':
     const: 0
 
+  clocks:
+    items:
+      - description: The phandle of the master clock to the CODEC
+
+  clock-names:
+    items:
+      - const: mclk
+
   interrupts:
     maxItems: 1
 
diff --git a/Bindings/sound/nxp,lpc3220-i2s.yaml b/Bindings/sound/nxp,lpc3220-i2s.yaml
new file mode 100644 (file)
index 0000000..40a0877
--- /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/sound/nxp,lpc3220-i2s.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP LPC32XX I2S Controller
+
+description:
+  The I2S controller in LPC32XX SoCs, ASoC DAI.
+
+maintainers:
+  - J.M.B. Downing <jonathan.downing@nautel.com>
+  - Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    enum:
+      - nxp,lpc3220-i2s
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: input clock of the peripheral.
+
+  dmas:
+    items:
+      - description: RX DMA Channel
+      - description: TX DMA Channel
+
+  dma-names:
+    items:
+      - const: rx
+      - const: tx
+
+  "#sound-dai-cells":
+    const: 0
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+  - dmas
+  - dma-names
+  - '#sound-dai-cells'
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/lpc32xx-clock.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    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>;
+    };
+
+...
diff --git a/Bindings/sound/omap-mcpdm.txt b/Bindings/sound/omap-mcpdm.txt
deleted file mode 100644 (file)
index ff98a0c..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-* Texas Instruments OMAP4+ McPDM
-
-Required properties:
-- compatible: "ti,omap4-mcpdm"
-- reg: Register location and size as an array:
-       <MPU access base address, size>,
-       <L3 interconnect address, size>;
-- interrupts: Interrupt number for McPDM
-- ti,hwmods: Name of the hwmod associated to the McPDM
-- clocks:  phandle for the pdmclk provider, likely <&twl6040>
-- clock-names: Must be "pdmclk"
-
-Example:
-
-mcpdm: mcpdm@40132000 {
-       compatible = "ti,omap4-mcpdm";
-       reg = <0x40132000 0x7f>, /* MPU private access */
-             <0x49032000 0x7f>; /* L3 Interconnect */
-       interrupts = <0 112 0x4>;
-       interrupt-parent = <&gic>;
-       ti,hwmods = "mcpdm";
-};
-
-In board DTS file the pdmclk needs to be added:
-
-&mcpdm {
-       clocks = <&twl6040>;
-       clock-names = "pdmclk";
-       status = "okay";
-};
index 77006a4aec4ad5c88f2f020a758c3f63328470f4..47878a6df60872bf7e789e70bccc1bc4041e490b 100644 (file)
@@ -6,7 +6,7 @@ on the board). The TAS575x devices only support I2C.
 Required properties:
 
   - compatible : One of "ti,pcm5121", "ti,pcm5122", "ti,pcm5141",
-                 "ti,pcm5142", "ti,tas5754" or "ti,tas5756"
+                 "ti,pcm5142", "ti,pcm5242", "ti,tas5754" or "ti,tas5756"
 
   - reg : the I2C address of the device for I2C, the chip select
           number for SPI.
diff --git a/Bindings/sound/qcom,apq8096.txt b/Bindings/sound/qcom,apq8096.txt
deleted file mode 100644 (file)
index e1b9fa8..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-* Qualcomm Technologies APQ8096 ASoC sound card driver
-
-This binding describes the APQ8096 sound card, which uses qdsp for audio.
-
-- compatible:
-       Usage: required
-       Value type: <stringlist>
-       Definition: must be "qcom,apq8096-sndcard"
-
-- audio-routing:
-       Usage: Optional
-       Value type: <stringlist>
-       Definition:  A list of the connections between audio components.
-                 Each entry is a pair of strings, the first being the
-                 connection's sink, the second being the connection's
-                 source. Valid names could be power supplies, MicBias
-                 of codec and the jacks on the board:
-                 Valid names include:
-
-               Board Connectors:
-                       "Headphone Left"
-                       "Headphone Right"
-                       "Earphone"
-                       "Line Out1"
-                       "Line Out2"
-                       "Line Out3"
-                       "Line Out4"
-                       "Analog Mic1"
-                       "Analog Mic2"
-                       "Analog Mic3"
-                       "Analog Mic4"
-                       "Analog Mic5"
-                       "Analog Mic6"
-                       "Digital Mic2"
-                       "Digital Mic3"
-
-               Audio pins and MicBias on WCD9335 Codec:
-                       "MIC_BIAS1"
-                       "MIC_BIAS2"
-                       "MIC_BIAS3"
-                       "MIC_BIAS4"
-                       "AMIC1"
-                       "AMIC2"
-                       "AMIC3"
-                       "AMIC4"
-                       "AMIC5"
-                       "AMIC6"
-                       "AMIC6"
-                       "DMIC1"
-                       "DMIC2"
-                       "DMIC3"
-
-- model:
-       Usage: required
-       Value type: <stringlist>
-       Definition: The user-visible name of this sound card.
-
-- aux-devs
-       Usage: optional
-       Value type: <array of phandles>
-       Definition: A list of phandles for auxiliary devices (e.g. analog
-                   amplifiers) that do not appear directly within the DAI
-                   links. Should be connected to another audio component
-                   using "audio-routing".
-
-= dailinks
-Each subnode of sndcard represents either a dailink, and subnodes of each
-dailinks would be cpu/codec/platform dais.
-
-- link-name:
-       Usage: required
-       Value type: <string>
-       Definition: User friendly name for dai link
-
-= CPU, PLATFORM, CODEC dais subnodes
-- cpu:
-       Usage: required
-       Value type: <subnode>
-       Definition: cpu dai sub-node
-
-- codec:
-       Usage: Optional
-       Value type: <subnode>
-       Definition: codec dai sub-node
-
-- platform:
-       Usage: Optional
-       Value type: <subnode>
-       Definition: platform dai sub-node
-
-- sound-dai:
-       Usage: required
-       Value type: <phandle with arguments>
-       Definition: dai phandle/s and port of CPU/CODEC/PLATFORM node.
-
-Obsolete:
-       qcom,model: String for soundcard name (Use model instead)
-       qcom,audio-routing: A list of the connections between audio components.
-                           (Use audio-routing instead)
-
-Example:
-
-audio {
-       compatible = "qcom,apq8096-sndcard";
-       model = "DB820c";
-
-       mm1-dai-link {
-               link-name = "MultiMedia1";
-               cpu {
-                       sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
-               };
-       };
-
-       hdmi-dai-link {
-               link-name = "HDMI Playback";
-               cpu {
-                       sound-dai = <&q6afe HDMI_RX>;
-               };
-
-               platform {
-                       sound-dai = <&q6adm>;
-               };
-
-               codec {
-                       sound-dai = <&hdmi 0>;
-               };
-       };
-};
diff --git a/Bindings/sound/qcom,msm8916-wcd-digital-codec.yaml b/Bindings/sound/qcom,msm8916-wcd-digital-codec.yaml
new file mode 100644 (file)
index 0000000..a899c4e
--- /dev/null
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/qcom,msm8916-wcd-digital-codec.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm MSM8916 WCD Digital Audio Codec
+
+maintainers:
+  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+
+description:
+  The digital WCD audio codec found on Qualcomm MSM8916 LPASS.
+
+properties:
+  compatible:
+    const: qcom,msm8916-wcd-digital-codec
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 2
+
+  clock-names:
+    items:
+      - const: ahbix-clk
+      - const: mclk
+
+  '#sound-dai-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#sound-dai-cells'
+
+allOf:
+  - $ref: dai-common.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,gcc-msm8916.h>
+    audio-codec@771c000 {
+        compatible = "qcom,msm8916-wcd-digital-codec";
+        reg = <0x0771c000 0x400>;
+        clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
+                 <&gcc GCC_CODEC_DIGCODEC_CLK>;
+        clock-names = "ahbix-clk", "mclk";
+        #sound-dai-cells = <1>;
+    };
diff --git a/Bindings/sound/qcom,msm8916-wcd-digital.txt b/Bindings/sound/qcom,msm8916-wcd-digital.txt
deleted file mode 100644 (file)
index 1c8e4cb..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-msm8916 digital audio CODEC
-
-## Bindings for codec core in lpass:
-
-Required properties
- - compatible = "qcom,msm8916-wcd-digital-codec";
- - reg: address space for lpass codec.
- - clocks: Handle to mclk and ahbclk
- - clock-names: should be "mclk", "ahbix-clk".
-
-Example:
-
-audio-codec@771c000{
-       compatible = "qcom,msm8916-wcd-digital-codec";
-       reg = <0x0771c000 0x400>;
-       clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
-                <&gcc GCC_CODEC_DIGCODEC_CLK>;
-       clock-names = "ahbix-clk", "mclk";
-       #sound-dai-cells = <1>;
-};
index b2e15ebbd1bc9864a1a23caff42b5c2e37e496fa..c9076dcd44c1168ea76212a5a420b3ac88380c6c 100644 (file)
@@ -28,6 +28,7 @@ properties:
           - const: qcom,sm8450-sndcard
       - enum:
           - qcom,apq8016-sbc-sndcard
+          - qcom,apq8096-sndcard
           - qcom,msm8916-qdsp6-sndcard
           - qcom,qcm6490-idp-sndcard
           - qcom,qcs6490-rb3gen2-sndcard
index beb0ff0245b0ab84477b282243d9ce43c633c078..a65b1d1d5fdd9c50de429998f0d23c2fbbffa369 100644 (file)
@@ -199,10 +199,11 @@ additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/gpio/gpio.h>
     codec@1,0{
         compatible = "slim217,250";
         reg = <1 0>;
-        reset-gpios = <&tlmm 64 0>;
+        reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
         slim-ifc-dev = <&wcd9340_ifd>;
         #sound-dai-cells = <1>;
         interrupt-parent = <&tlmm>;
diff --git a/Bindings/sound/qcom,wcd937x-sdw.yaml b/Bindings/sound/qcom,wcd937x-sdw.yaml
new file mode 100644 (file)
index 0000000..d3cf8f5
--- /dev/null
@@ -0,0 +1,91 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/qcom,wcd937x-sdw.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SoundWire Slave devices on WCD9370/WCD9375
+
+maintainers:
+  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+
+description: |
+  Qualcomm WCD9370/WCD9375 Codec is a standalone Hi-Fi audio codec IC.
+  It has RX and TX Soundwire slave devices. This bindings is for the
+  slave devices.
+
+properties:
+  compatible:
+    const: sdw20217010a00
+
+  reg:
+    maxItems: 1
+
+  qcom,tx-port-mapping:
+    description: |
+      Specifies static port mapping between device and host tx ports.
+      In the order of the device port index which are adc1_port, adc23_port,
+      dmic03_mbhc_port, dmic46_port.
+      Supports maximum 4 tx soundwire ports.
+
+      WCD9370 TX Port 1 (ADC1)               <=> SWR2 Port 2
+      WCD9370 TX Port 2 (ADC2, 3)            <=> SWR2 Port 2
+      WCD9370 TX Port 3 (DMIC0,1,2,3 & MBHC) <=> SWR2 Port 3
+      WCD9370 TX Port 4 (DMIC4,5,6,7)        <=> SWR2 Port 4
+
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 4
+    maxItems: 4
+    items:
+      enum: [1, 2, 3, 4]
+
+  qcom,rx-port-mapping:
+    description: |
+      Specifies static port mapping between device and host rx ports.
+      In the order of device port index which are hph_port, clsh_port,
+      comp_port, lo_port, dsd port.
+      Supports maximum 5 rx soundwire ports.
+
+      WCD9370 RX Port 1 (HPH_L/R)       <==>    SWR1 Port 1 (HPH_L/R)
+      WCD9370 RX Port 2 (CLSH)          <==>    SWR1 Port 2 (CLSH)
+      WCD9370 RX Port 3 (COMP_L/R)      <==>    SWR1 Port 3 (COMP_L/R)
+      WCD9370 RX Port 4 (LO)            <==>    SWR1 Port 4 (LO)
+      WCD9370 RX Port 5 (DSD_L/R)       <==>    SWR1 Port 5 (DSD)
+
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 5
+    maxItems: 5
+    items:
+      enum: [1, 2, 3, 4, 5]
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    soundwire@3210000 {
+        reg = <0x03210000 0x2000>;
+        #address-cells = <2>;
+        #size-cells = <0>;
+        wcd937x_rx: codec@0,4 {
+            compatible = "sdw20217010a00";
+            reg = <0 4>;
+            qcom,rx-port-mapping = <1 2 3 4 5>;
+        };
+    };
+
+    soundwire@3230000 {
+        reg = <0x03230000 0x2000>;
+        #address-cells = <2>;
+        #size-cells = <0>;
+        wcd937x_tx: codec@0,3 {
+            compatible = "sdw20217010a00";
+            reg = <0 3>;
+            qcom,tx-port-mapping = <2 2 3 4>;
+        };
+    };
+
+...
diff --git a/Bindings/sound/qcom,wcd937x.yaml b/Bindings/sound/qcom,wcd937x.yaml
new file mode 100644 (file)
index 0000000..f942037
--- /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/sound/qcom,wcd937x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm WCD9370/WCD9375 Audio Codec
+
+maintainers:
+  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+
+description:
+  Qualcomm WCD9370/WCD9375 Codec is a standalone Hi-Fi audio codec IC.
+  It has RX and TX Soundwire slave devices.
+
+allOf:
+  - $ref: dai-common.yaml#
+  - $ref: qcom,wcd93xx-common.yaml#
+
+properties:
+  compatible:
+    oneOf:
+      - const: qcom,wcd9370-codec
+      - items:
+          - const: qcom,wcd9375-codec
+          - const: qcom,wcd9370-codec
+
+  vdd-px-supply:
+    description: A reference to the 1.8V I/O supply
+
+required:
+  - compatible
+  - vdd-px-supply
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    codec {
+        compatible = "qcom,wcd9370-codec";
+        pinctrl-names = "default", "sleep";
+        pinctrl-0 = <&wcd_reset_n>;
+        pinctrl-1 = <&wcd_reset_n_sleep>;
+        reset-gpios = <&tlmm 83 GPIO_ACTIVE_LOW>;
+        vdd-buck-supply = <&vreg_l17b_1p8>;
+        vdd-rxtx-supply = <&vreg_l18b_1p8>;
+        vdd-px-supply = <&vreg_l18b_1p8>;
+        vdd-mic-bias-supply = <&vreg_bob>;
+        qcom,micbias1-microvolt = <1800000>;
+        qcom,micbias2-microvolt = <1800000>;
+        qcom,micbias3-microvolt = <1800000>;
+        qcom,micbias4-microvolt = <1800000>;
+        qcom,rx-device = <&wcd937x_rx>;
+        qcom,tx-device = <&wcd937x_tx>;
+        #sound-dai-cells = <1>;
+    };
+
+    /* ... */
+
+    soundwire@3210000 {
+        reg = <0x03210000 0x2000>;
+        #address-cells = <2>;
+        #size-cells = <0>;
+        wcd937x_rx: codec@0,4 {
+            compatible = "sdw20217010a00";
+            reg = <0 4>;
+            qcom,rx-port-mapping = <1 2 3 4 5>;
+        };
+    };
+
+    soundwire@3230000 {
+        reg = <0x03230000 0x2000>;
+        #address-cells = <2>;
+        #size-cells = <0>;
+        wcd937x_tx: codec@0,3 {
+            compatible = "sdw20217010a00";
+            reg = <0 3>;
+            qcom,tx-port-mapping = <1 2 3 4>;
+        };
+    };
+...
index cf6c3787adfeff846a13391775fa188c15d17e33..10531350c3362788d1943100808ff9cf7d7036cc 100644 (file)
@@ -34,9 +34,10 @@ unevaluatedProperties: false
 
 examples:
   - |
+    #include <dt-bindings/gpio/gpio.h>
     codec {
         compatible = "qcom,wcd9380-codec";
-        reset-gpios = <&tlmm 32 0>;
+        reset-gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
         #sound-dai-cells = <1>;
         qcom,tx-device = <&wcd938x_tx>;
         qcom,rx-device = <&wcd938x_rx>;
index 6e76f6a8634f0761c67e2bd3f57268dcb347e66e..c69291f4d575ca5b4fc037ac4d59c91f0df74cd1 100644 (file)
@@ -52,10 +52,10 @@ unevaluatedProperties: false
 
 examples:
   - |
-    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
     codec {
         compatible = "qcom,wcd9390-codec";
-        reset-gpios = <&tlmm 32 IRQ_TYPE_NONE>;
+        reset-gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
         #sound-dai-cells = <1>;
         qcom,tx-device = <&wcd939x_tx>;
         qcom,rx-device = <&wcd939x_rx>;
index 8e462cdf0018f376b074ac188c8b7b142f167d22..14d312f9c345e643aa874a6e1f09c4f8040c272e 100644 (file)
@@ -32,6 +32,14 @@ properties:
   vdd-supply:
     description: VDD Supply for the Codec
 
+  qcom,port-mapping:
+    description: |
+      Specifies static port mapping between slave and master ports.
+      In the order of slave port index.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 4
+    maxItems: 4
+
   '#thermal-sensor-cells':
     const: 0
 
index 22798d22d981b270602882732dcd1e72d62c3023..83e0360301e1d2d1df717599a8111a8af1604ed0 100644 (file)
@@ -32,6 +32,14 @@ properties:
     description: Powerdown/Shutdown line to use (pin SD_N)
     maxItems: 1
 
+  qcom,port-mapping:
+    description: |
+      Specifies static port mapping between slave and master ports.
+      In the order of slave port index.
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 6
+    maxItems: 6
+
   '#sound-dai-cells':
     const: 0
 
similarity index 90%
rename from Bindings/sound/rt1019.yaml
rename to Bindings/sound/realtek,rt1019.yaml
index 3d5a91a942f4798d1e2141f77f4d54a069537c6d..adf5e38f4dbc389cba1de36501edf4f04e5efd43 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/sound/rt1019.yaml#
+$id: http://devicetree.org/schemas/sound/realtek,rt1019.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: RT1019 Mono Class-D Audio Amplifier
diff --git a/Bindings/sound/realtek,rt5514.yaml b/Bindings/sound/realtek,rt5514.yaml
new file mode 100644 (file)
index 0000000..7fbf773
--- /dev/null
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/realtek,rt5514.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RT5514 audio CODEC
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+description: |
+  This device supports both I2C and SPI.
+
+  Pins on the device (for linking into audio routes) for I2C:
+    * DMIC1L
+    * DMIC1R
+    * DMIC2L
+    * DMIC2R
+    * AMICL
+    * AMICR
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    const: realtek,rt5514
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: Master clock to the CODEC
+
+  clock-names:
+    items:
+      - const: mclk
+
+  interrupts:
+    maxItems: 1
+    description: The interrupt number to the cpu.
+
+  realtek,dmic-init-delay-ms:
+    description: Set the DMIC initial delay (ms) to wait it ready for I2C.
+
+  spi-max-frequency: true
+
+  wakeup-source:
+    type: boolean
+    description: Flag to indicate this device can wake system (suspend/resume).
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        codec@57 {
+            compatible = "realtek,rt5514";
+            reg = <0x57>;
+        };
+    };
diff --git a/Bindings/sound/realtek,rt5631.yaml b/Bindings/sound/realtek,rt5631.yaml
new file mode 100644 (file)
index 0000000..747a731
--- /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/realtek,rt5631.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ALC5631/RT5631 audio CODEC
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+description: |
+  This device supports I2C only.
+
+  Pins on the device (for linking into audio routes):
+      * SPK_OUT_R_P
+      * SPK_OUT_R_N
+      * SPK_OUT_L_P
+      * SPK_OUT_L_N
+      * HP_OUT_L
+      * HP_OUT_R
+      * AUX_OUT2_LP
+      * AUX_OUT2_RN
+      * AUX_OUT1_LP
+      * AUX_OUT1_RN
+      * AUX_IN_L_JD
+      * AUX_IN_R_JD
+      * MONO_IN_P
+      * MONO_IN_N
+      * MIC1_P
+      * MIC1_N
+      * MIC2_P
+      * MIC2_N
+      * MONO_OUT_P
+      * MONO_OUT_N
+      * MICBIAS1
+      * MICBIAS2
+
+properties:
+  compatible:
+    enum:
+      - realtek,alc5631
+      - realtek,rt5631
+
+  reg:
+    maxItems: 1
+
+  port:
+    $ref: audio-graph-port.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        codec@1a {
+            compatible = "realtek,alc5631";
+            reg = <0x1a>;
+        };
+    };
diff --git a/Bindings/sound/realtek,rt5645.yaml b/Bindings/sound/realtek,rt5645.yaml
new file mode 100644 (file)
index 0000000..13f09f1
--- /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/sound/realtek,rt5645.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RT5650/RT5645 audio CODEC
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+description: |
+  This device supports I2C only.
+
+  Pins on the device (for linking into audio routes) for RT5645/RT5650:
+    * DMIC L1
+    * DMIC R1
+    * DMIC L2
+    * DMIC R2
+    * IN1P
+    * IN1N
+    * IN2P
+    * IN2N
+    * Haptic Generator
+    * HPOL
+    * HPOR
+    * LOUTL
+    * LOUTR
+    * PDM1L
+    * PDM1R
+    * SPOL
+    * SPOR
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    enum:
+      - realtek,rt5645
+      - realtek,rt5650
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+    description: The CODEC's interrupt output.
+
+  avdd-supply:
+    description: Power supply for AVDD, providing 1.8V.
+
+  cpvdd-supply:
+    description: Power supply for CPVDD, providing 3.5V.
+
+  hp-detect-gpios:
+    description: 
+      A GPIO spec for the external headphone detect pin. If jd-mode = 0, we
+      will get the JD status by getting the value of hp-detect-gpios.
+    maxItems: 1
+
+  cbj-sleeve-gpios:
+    description:
+      A GPIO spec to control the external combo jack circuit to tie the
+      sleeve/ring2 contacts to the ground or floating. It could avoid some
+      electric noise from the active speaker jacks.
+    maxItems: 1
+
+  realtek,in2-differential:
+    description:
+      Indicate MIC2 input are differential, rather than single-ended.
+    type: boolean
+
+  realtek,dmic1-data-pin:
+    description: Specify which pin to be used as DMIC1 data pin.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum:
+      - 0 # dmic1 is not used
+      - 1 # using IN2P pin as dmic1 data pin
+      - 2 # using GPIO6 pin as dmic1 data pin
+      - 3 # using GPIO10 pin as dmic1 data pin
+      - 4 # using GPIO12 pin as dmic1 data pin
+
+  realtek,dmic2-data-pin:
+    description: Specify which pin to be used as DMIC2 data pin.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum:
+      - 0 # dmic2 is not used
+      - 1 # using IN2N pin as dmic2 data pin
+      - 2 # using GPIO5 pin as dmic2 data pin
+      - 3 # using GPIO11 pin as dmic2 data pin
+
+  realtek,jd-mode:
+    description: The JD mode of rt5645/rt5650.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum:
+      - 0 # rt5645/rt5650 JD function is not used
+      - 1 # Mode-0 (VDD=3.3V), two port jack detection
+      - 2 # Mode-1 (VDD=3.3V), one port jack detection
+      - 3 # Mode-2 (VDD=1.8V), one port jack detection
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - avdd-supply
+  - cpvdd-supply
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        codec@1a {
+            compatible = "realtek,rt5650";
+            reg = <0x1a>;
+            hp-detect-gpios = <&gpio 19 0>;
+            cbj-sleeve-gpios = <&gpio 20 0>;
+            interrupt-parent = <&gpio>;
+            interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
+            avdd-supply = <&avdd_reg>;
+            cpvdd-supply = <&cpvdd_supply>;
+            realtek,jd-mode = <3>;
+        };
+    };
diff --git a/Bindings/sound/realtek,rt5659.yaml b/Bindings/sound/realtek,rt5659.yaml
new file mode 100644 (file)
index 0000000..1100ffd
--- /dev/null
@@ -0,0 +1,129 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/realtek,rt5659.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RT5659/RT5658 audio CODEC
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+description: |
+  This device supports I2C only.
+
+  Pins on the device (for linking into audio routes) for RT5659/RT5658:
+    * DMIC L1
+    * DMIC R1
+    * DMIC L2
+    * DMIC R2
+    * IN1P
+    * IN1N
+    * IN2P
+    * IN2N
+    * IN3P
+    * IN3N
+    * IN4P
+    * IN4N
+    * HPOL
+    * HPOR
+    * SPOL
+    * SPOR
+    * LOUTL
+    * LOUTR
+    * MONOOUT
+    * PDML
+    * PDMR
+    * SPDIF
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    enum:
+      - realtek,rt5659
+      - realtek,rt5658
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: mclk
+
+  realtek,dmic1-data-pin:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum:
+      - 0 # dmic1 is not used
+      - 1 # using IN2N pin as dmic1 data pin
+      - 2 # using GPIO5 pin as dmic1 data pin
+      - 3 # using GPIO9 pin as dmic1 data pin
+      - 4 # using GPIO11 pin as dmic1 data pin
+    description: Specify which pin to be used as DMIC1 data pin.
+    default: 0
+
+  realtek,dmic2-data-pin:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum:
+      - 0 # dmic2 is not used
+      - 1 # using IN2P pin as dmic2 data pin
+      - 2 # using GPIO6 pin as dmic2 data pin
+      - 3 # using GPIO10 pin as dmic2 data pin
+      - 4 # using GPIO12 pin as dmic2 data pin
+    description: Specify which pin to be used as DMIC2 data pin.
+    default: 0
+
+  realtek,jd-src:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum:
+      - 0 # No JD is used
+      - 1 # using JD3 as JD source
+      - 2 # JD source for Intel HDA header
+    description: Specify which JD source be used.
+    default: 0
+
+  realtek,ldo1-en-gpios:
+    maxItems: 1
+    description: CODEC's LDO1_EN pin.
+
+  realtek,reset-gpios:
+    maxItems: 1
+    description: CODEC's RESET pin.
+
+  ports:
+    $ref: /schemas/graph.yaml#/properties/ports
+
+  port:
+    $ref: audio-graph-port.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        codec@1b {
+            compatible = "realtek,rt5659";
+            reg = <0x1b>;
+            interrupt-parent = <&gpio>;
+            interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
+            realtek,ldo1-en-gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
+        };
+    };
diff --git a/Bindings/sound/realtek,rt5677.yaml b/Bindings/sound/realtek,rt5677.yaml
new file mode 100644 (file)
index 0000000..9ce23e5
--- /dev/null
@@ -0,0 +1,135 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/realtek,rt5677.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: RT5677 audio CODEC
+
+maintainers:
+  - Animesh Agarwal <animeshagarwal28@gmail.com>
+
+description: |
+  This device supports I2C only.
+
+  Pins on the device (for linking into audio routes):
+    * IN1P
+    * IN1N
+    * IN2P
+    * IN2N
+    * MICBIAS1
+    * DMIC1
+    * DMIC2
+    * DMIC3
+    * DMIC4
+    * LOUT1
+    * LOUT2
+    * LOUT3
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    const: realtek,rt5677
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  gpio-controller: true
+
+  '#gpio-cells':
+    const: 2
+
+  realtek,pow-ldo2-gpio:
+    maxItems: 1
+    description: CODEC's POW_LDO2 pin.
+
+  realtek,reset-gpio:
+    maxItems: 1
+    description: CODEC's RESET pin. Active low.
+
+  realtek,gpio-config:
+    description: |
+      Array of six 8bit elements that configures GPIO.
+      0 - floating (reset value)
+      1 - pull down
+      2 - pull up
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    minItems: 6
+    maxItems: 6
+    items:
+      maximum: 2
+
+  realtek,jd1-gpio:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum:
+      - 0 # OFF
+      - 1 # GPIO1 for jd1.
+      - 2 # GPIO2 for jd1.
+      - 3 # GPIO3 for jd1.
+    description: Configures GPIO Mic Jack detection 1.
+
+  realtek,jd2-gpio:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum:
+      - 0 # OFF
+      - 1 # GPIO4 for jd2.
+      - 2 # GPIO5 for jd2.
+      - 3 # GPIO6 for jd2.
+    description: Configures GPIO Mic Jack detection 2.
+
+  realtek,jd3-gpio:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum:
+      - 0 # OFF
+      - 1 # GPIO4 for jd3.
+      - 2 # GPIO5 for jd3.
+      - 3 # GPIO6 for jd3.
+    description: Configures GPIO Mic Jack detection 3.
+
+patternProperties:
+  '^realtek,in[1-2]-differential$':
+    type: boolean
+    description: Indicate MIC1/2 input are differential, rather than
+      single-ended.
+
+  '^realtek,lout[1-3]-differential$':
+    type: boolean
+    description: Indicate LOUT1/2/3 outputs are differential, rather than
+      single-ended.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - gpio-controller
+  - '#gpio-cells'
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        codec@2c {
+            compatible = "realtek,rt5677";
+            reg = <0x2c>;
+            interrupt-parent = <&gpio>;
+            interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
+            gpio-controller;
+            #gpio-cells = <2>;
+            realtek,pow-ldo2-gpio = <&gpio 3 GPIO_ACTIVE_HIGH>;
+            realtek,reset-gpio = <&gpio 3 GPIO_ACTIVE_LOW>;
+            realtek,in1-differential;
+            realtek,gpio-config = <0 0 0 0 0 2>;
+        };
+    };
diff --git a/Bindings/sound/rt5514.txt b/Bindings/sound/rt5514.txt
deleted file mode 100644 (file)
index d2cc171..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-RT5514 audio CODEC
-
-This device supports both I2C and SPI.
-
-Required properties:
-
-- compatible : "realtek,rt5514".
-
-- reg : the I2C address of the device for I2C, the chip select
-        number for SPI.
-
-Optional properties:
-
-- clocks: The phandle of the master clock to the CODEC
-- clock-names: Should be "mclk"
-
-- interrupts: The interrupt number to the cpu. The interrupt specifier format
-             depends on the interrupt controller.
-
-- realtek,dmic-init-delay-ms
-  Set the DMIC initial delay (ms) to wait it ready for I2C.
-
-Pins on the device (for linking into audio routes) for I2C:
-
-  * DMIC1L
-  * DMIC1R
-  * DMIC2L
-  * DMIC2R
-  * AMICL
-  * AMICR
-
-Example:
-
-rt5514: codec@57 {
-       compatible = "realtek,rt5514";
-       reg = <0x57>;
-};
diff --git a/Bindings/sound/rt5631.txt b/Bindings/sound/rt5631.txt
deleted file mode 100644 (file)
index 56bc852..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-ALC5631/RT5631 audio CODEC
-
-This device supports I2C only.
-
-Required properties:
-
-  - compatible : "realtek,alc5631" or "realtek,rt5631"
-
-  - reg : the I2C address of the device.
-
-Pins on the device (for linking into audio routes):
-
-  * SPK_OUT_R_P
-  * SPK_OUT_R_N
-  * SPK_OUT_L_P
-  * SPK_OUT_L_N
-  * HP_OUT_L
-  * HP_OUT_R
-  * AUX_OUT2_LP
-  * AUX_OUT2_RN
-  * AUX_OUT1_LP
-  * AUX_OUT1_RN
-  * AUX_IN_L_JD
-  * AUX_IN_R_JD
-  * MONO_IN_P
-  * MONO_IN_N
-  * MIC1_P
-  * MIC1_N
-  * MIC2_P
-  * MIC2_N
-  * MONO_OUT_P
-  * MONO_OUT_N
-  * MICBIAS1
-  * MICBIAS2
-
-Example:
-
-alc5631: audio-codec@1a {
-       compatible = "realtek,alc5631";
-       reg = <0x1a>;
-};
-
-or
-
-rt5631: audio-codec@1a {
-       compatible = "realtek,rt5631";
-       reg = <0x1a>;
-};
diff --git a/Bindings/sound/rt5645.txt b/Bindings/sound/rt5645.txt
deleted file mode 100644 (file)
index c1fa379..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-RT5650/RT5645 audio CODEC
-
-This device supports I2C only.
-
-Required properties:
-
-- compatible : One of "realtek,rt5645" or "realtek,rt5650".
-
-- reg : The I2C address of the device.
-
-- interrupts : The CODEC's interrupt output.
-
-- avdd-supply: Power supply for AVDD, providing 1.8V.
-
-- cpvdd-supply: Power supply for CPVDD, providing 3.5V.
-
-Optional properties:
-
-- hp-detect-gpios:
-  a GPIO spec for the external headphone detect pin. If jd-mode = 0,
-  we will get the JD status by getting the value of hp-detect-gpios.
-
-- cbj-sleeve-gpios:
-  a GPIO spec to control the external combo jack circuit to tie the sleeve/ring2
-  contacts to the ground or floating. It could avoid some electric noise from the
-  active speaker jacks.
-
-- realtek,in2-differential
-  Boolean. Indicate MIC2 input are differential, rather than single-ended.
-
-- realtek,dmic1-data-pin
-  0: dmic1 is not used
-  1: using IN2P pin as dmic1 data pin
-  2: using GPIO6 pin as dmic1 data pin
-  3: using GPIO10 pin as dmic1 data pin
-  4: using GPIO12 pin as dmic1 data pin
-
-- realtek,dmic2-data-pin
-  0: dmic2 is not used
-  1: using IN2N pin as dmic2 data pin
-  2: using GPIO5 pin as dmic2 data pin
-  3: using GPIO11 pin as dmic2 data pin
-
--- realtek,jd-mode : The JD mode of rt5645/rt5650
-   0 : rt5645/rt5650 JD function is not used
-   1 : Mode-0 (VDD=3.3V), two port jack detection
-   2 : Mode-1 (VDD=3.3V), one port jack detection
-   3 : Mode-2 (VDD=1.8V), one port jack detection
-
-Pins on the device (for linking into audio routes) for RT5645/RT5650:
-
-  * DMIC L1
-  * DMIC R1
-  * DMIC L2
-  * DMIC R2
-  * IN1P
-  * IN1N
-  * IN2P
-  * IN2N
-  * Haptic Generator
-  * HPOL
-  * HPOR
-  * LOUTL
-  * LOUTR
-  * PDM1L
-  * PDM1R
-  * SPOL
-  * SPOR
-
-Example:
-
-codec: rt5650@1a {
-       compatible = "realtek,rt5650";
-       reg = <0x1a>;
-       hp-detect-gpios = <&gpio 19 0>;
-       cbj-sleeve-gpios = <&gpio 20 0>;
-       interrupt-parent = <&gpio>;
-       interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
-       realtek,dmic-en = "true";
-       realtek,en-jd-func = "true";
-       realtek,jd-mode = <3>;
-};
diff --git a/Bindings/sound/rt5659.txt b/Bindings/sound/rt5659.txt
deleted file mode 100644 (file)
index 8f3f62c..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-RT5659/RT5658 audio CODEC
-
-This device supports I2C only.
-
-Required properties:
-
-- compatible : One of "realtek,rt5659" or "realtek,rt5658".
-
-- reg : The I2C address of the device.
-
-- interrupts : The CODEC's interrupt output.
-
-Optional properties:
-
-- clocks: The phandle of the master clock to the CODEC
-- clock-names: Should be "mclk"
-
-- realtek,in1-differential
-- realtek,in3-differential
-- realtek,in4-differential
-  Boolean. Indicate MIC1/3/4 input are differential, rather than single-ended.
-
-- realtek,dmic1-data-pin
-  0: dmic1 is not used
-  1: using IN2N pin as dmic1 data pin
-  2: using GPIO5 pin as dmic1 data pin
-  3: using GPIO9 pin as dmic1 data pin
-  4: using GPIO11 pin as dmic1 data pin
-
-- realtek,dmic2-data-pin
-  0: dmic2 is not used
-  1: using IN2P pin as dmic2 data pin
-  2: using GPIO6 pin as dmic2 data pin
-  3: using GPIO10 pin as dmic2 data pin
-  4: using GPIO12 pin as dmic2 data pin
-
-- realtek,jd-src
-  0: No JD is used
-  1: using JD3 as JD source
-  2: JD source for Intel HDA header
-
-- realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
-- realtek,reset-gpios : The GPIO that controls the CODEC's RESET pin.
-
-- sound-name-prefix: Please refer to dai-common.yaml
-
-- ports: A Codec may have a single or multiple I2S interfaces. These
-  interfaces on Codec side can be described under 'ports' or 'port'.
-  When the SoC or host device is connected to multiple interfaces of
-  the Codec, the connectivity can be described using 'ports' property.
-  If a single interface is used, then 'port' can be used. The usage
-  depends on the platform or board design.
-  Please refer to Documentation/devicetree/bindings/graph.txt
-
-Pins on the device (for linking into audio routes) for RT5659/RT5658:
-
-  * DMIC L1
-  * DMIC R1
-  * DMIC L2
-  * DMIC R2
-  * IN1P
-  * IN1N
-  * IN2P
-  * IN2N
-  * IN3P
-  * IN3N
-  * IN4P
-  * IN4N
-  * HPOL
-  * HPOR
-  * SPOL
-  * SPOR
-  * LOUTL
-  * LOUTR
-  * MONOOUT
-  * PDML
-  * PDMR
-  * SPDIF
-
-Example:
-
-rt5659 {
-       compatible = "realtek,rt5659";
-       reg = <0x1b>;
-       interrupt-parent = <&gpio>;
-       interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_HIGH>;
-       realtek,ldo1-en-gpios =
-               <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
-};
diff --git a/Bindings/sound/rt5677.txt b/Bindings/sound/rt5677.txt
deleted file mode 100644 (file)
index da24300..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-RT5677 audio CODEC
-
-This device supports I2C only.
-
-Required properties:
-
-- compatible : "realtek,rt5677".
-
-- reg : The I2C address of the device.
-
-- interrupts : The CODEC's interrupt output.
-
-- gpio-controller : Indicates this device is a GPIO controller.
-
-- #gpio-cells : Should be two. The first cell is the pin number and the
-  second cell is used to specify optional parameters (currently unused).
-
-Optional properties:
-
-- realtek,pow-ldo2-gpio : The GPIO that controls the CODEC's POW_LDO2 pin.
-- realtek,reset-gpio : The GPIO that controls the CODEC's RESET pin. Active low.
-
-- realtek,in1-differential
-- realtek,in2-differential
-- realtek,lout1-differential
-- realtek,lout2-differential
-- realtek,lout3-differential
-  Boolean. Indicate MIC1/2 input and LOUT1/2/3 outputs are differential,
-  rather than single-ended.
-
-- realtek,gpio-config
-  Array of six 8bit elements that configures GPIO.
-    0 - floating (reset value)
-    1 - pull down
-    2 - pull up
-
-- realtek,jd1-gpio
-  Configures GPIO Mic Jack detection 1.
-  Select 0 ~ 3 as OFF, GPIO1, GPIO2 and GPIO3 respectively.
-
-- realtek,jd2-gpio
-- realtek,jd3-gpio
-  Configures GPIO Mic Jack detection 2 and 3.
-  Select 0 ~ 3 as OFF, GPIO4, GPIO5 and GPIO6 respectively.
-
-Pins on the device (for linking into audio routes):
-
-  * IN1P
-  * IN1N
-  * IN2P
-  * IN2N
-  * MICBIAS1
-  * DMIC1
-  * DMIC2
-  * DMIC3
-  * DMIC4
-  * LOUT1
-  * LOUT2
-  * LOUT3
-
-Example:
-
-rt5677 {
-       compatible = "realtek,rt5677";
-       reg = <0x2c>;
-       interrupt-parent = <&gpio>;
-       interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_HIGH>;
-
-       gpio-controller;
-       #gpio-cells = <2>;
-
-       realtek,pow-ldo2-gpio =
-               <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
-       realtek,reset-gpio = <&gpio TEGRA_GPIO(BB, 3) GPIO_ACTIVE_LOW>;
-       realtek,in1-differential = "true";
-       realtek,gpio-config = /bits/ 8  <0 0 0 0 0 2>;   /* pull up GPIO6 */
-       realtek,jd2-gpio = <3>;  /* Enables Jack detection for GPIO6 */
-};
index 6ec80f529d84778449b4a0a576be4b6f8a6fdd6a..69ddfd4afdcdf2cc62e294da3f65eadf109d3a94 100644 (file)
@@ -53,6 +53,9 @@ properties:
   submic-bias-supply:
     description: Supply for the micbias on the Sub microphone
 
+  headset-mic-bias-supply:
+    description: Supply for the micbias on the Headset microphone
+
   fm-sel-gpios:
     maxItems: 1
     description: GPIO pin for FM selection
@@ -61,6 +64,36 @@ properties:
     maxItems: 1
     description: GPIO pin for line out selection
 
+  headset-detect-gpios:
+    maxItems: 1
+    description: GPIO for detection of headset insertion
+
+  headset-key-gpios:
+    maxItems: 1
+    description: GPIO for detection of headset key press
+
+  io-channels:
+    maxItems: 1
+    description: IO channel to read micbias voltage for headset detection
+
+  io-channel-names:
+    const: headset-detect
+
+  samsung,headset-4pole-threshold-microvolt:
+    minItems: 2
+    maxItems: 2
+    description:
+      Array containing minimum and maximum IO channel value for 4-pole
+      (with microphone/button) headsets. If the IO channel value is
+      outside of this range, a 3-pole headset is assumed.
+
+  samsung,headset-button-threshold-microvolt:
+    minItems: 3
+    maxItems: 3
+    description: |
+      Array of minimum (inclusive) IO channel values for headset button
+      detection, in order: "Media", "Volume Up" and "Volume Down".
+
 required:
   - compatible
   - cpu
index 9f319caf3db7494a4739393f43dd6af02d581d32..194ac1d4f4f5f40a9bc44e8cd0acbf2eab708365 100644 (file)
@@ -24,6 +24,11 @@ properties:
     description: |
       GPIOs used to select the input line.
 
+  state-labels:
+    description: State of input line. default is "Input 1", "Input 2"
+    $ref: /schemas/types.yaml#/definitions/string-array
+    maxItems: 2
+
   sound-name-prefix: true
 
 required:
@@ -37,4 +42,5 @@ examples:
     mux {
         compatible = "simple-audio-mux";
         mux-gpios = <&gpio 3 0>;
+        state-labels = "Label_A", "Label_B";
     };
diff --git a/Bindings/sound/spdif-receiver.txt b/Bindings/sound/spdif-receiver.txt
deleted file mode 100644 (file)
index 80f807b..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-Device-Tree bindings for dummy spdif receiver
-
-Required properties:
-       - compatible: should be "linux,spdif-dir".
-
-Example node:
-
-       codec: spdif-receiver {
-               compatible = "linux,spdif-dir";
-       };
diff --git a/Bindings/sound/tas571x.txt b/Bindings/sound/tas571x.txt
deleted file mode 100644 (file)
index 1addc75..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-Texas Instruments TAS5711/TAS5717/TAS5719/TAS5721 stereo power amplifiers
-
-The codec is controlled through an I2C interface.  It also has two other
-signals that can be wired up to GPIOs: reset (strongly recommended), and
-powerdown (optional).
-
-Required properties:
-
-- compatible: should be one of the following:
-  - "ti,tas5707"
-  - "ti,tas5711",
-  - "ti,tas5717",
-  - "ti,tas5719",
-  - "ti,tas5721"
-  - "ti,tas5733"
-- reg: The I2C address of the device
-- #sound-dai-cells: must be equal to 0
-
-Optional properties:
-
-- reset-gpios: GPIO specifier for the TAS571x's active low reset line
-- pdn-gpios: GPIO specifier for the TAS571x's active low powerdown line
-- clocks: clock phandle for the MCLK input
-- clock-names: should be "mclk"
-- AVDD-supply: regulator phandle for the AVDD supply (all chips)
-- DVDD-supply: regulator phandle for the DVDD supply (all chips)
-- HPVDD-supply: regulator phandle for the HPVDD supply (5717/5719)
-- PVDD_AB-supply: regulator phandle for the PVDD_AB supply (5717/5719)
-- PVDD_CD-supply: regulator phandle for the PVDD_CD supply (5717/5719)
-- PVDD_A-supply: regulator phandle for the PVDD_A supply (5711)
-- PVDD_B-supply: regulator phandle for the PVDD_B supply (5711)
-- PVDD_C-supply: regulator phandle for the PVDD_C supply (5711)
-- PVDD_D-supply: regulator phandle for the PVDD_D supply (5711)
-- DRVDD-supply: regulator phandle for the DRVDD supply (5721)
-- PVDD-supply: regulator phandle for the PVDD supply (5721)
-
-Example:
-
-       tas5717: audio-codec@2a {
-               compatible = "ti,tas5717";
-               reg = <0x2a>;
-               #sound-dai-cells = <0>;
-
-               reset-gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
-               pdn-gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
-
-               clocks = <&clk_core CLK_I2S>;
-               clock-names = "mclk";
-       };
diff --git a/Bindings/sound/ti,omap4-mcpdm.yaml b/Bindings/sound/ti,omap4-mcpdm.yaml
new file mode 100644 (file)
index 0000000..cdea0a0
--- /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/sound/ti,omap4-mcpdm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: OMAP McPDM
+
+maintainers:
+  - Misael Lopez Cruz <misael.lopez@ti.com>
+
+description:
+  OMAP ALSA SoC DAI driver using McPDM port used by TWL6040
+
+properties:
+  compatible:
+    const: ti,omap4-mcpdm
+
+  reg:
+    items:
+      - description: MPU access base address
+      - description: L3 interconnect address
+
+  reg-names:
+    items:
+      - const: mpu
+      - const: dma
+
+  interrupts:
+    maxItems: 1
+
+  dmas:
+    maxItems: 2
+
+  dma-names:
+    items:
+      - const: up_link
+      - const: dn_link
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: pdmclk
+
+required:
+  - compatible
+  - reg
+  - reg-names
+  - interrupts
+  - dmas
+  - dma-names
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    mcpdm@0 {
+      compatible = "ti,omap4-mcpdm";
+      reg = <0x0 0x7f>, /* MPU private access */
+            <0x49032000 0x7f>; /* L3 Interconnect */
+      reg-names = "mpu", "dma";
+      interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+      interrupt-parent = <&gic>;
+      dmas = <&sdma 65>, <&sdma 66>;
+      dma-names = "up_link", "dn_link";
+      clocks = <&twl6040>;
+      clock-names = "pdmclk";
+    };
similarity index 97%
rename from Bindings/sound/tas2562.yaml
rename to Bindings/sound/ti,tas2562.yaml
index d28c102c0ce7f0fe94577e45b54daa7496331e7f..8bc3b0c7531e0af1a0b1e273e525cc99f721b18b 100644 (file)
@@ -2,7 +2,7 @@
 # Copyright (C) 2019 Texas Instruments Incorporated
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/sound/tas2562.yaml#
+$id: http://devicetree.org/schemas/sound/ti,tas2562.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Texas Instruments TAS2562 Smart PA
similarity index 97%
rename from Bindings/sound/tas2770.yaml
rename to Bindings/sound/ti,tas2770.yaml
index be2536e8c4403a84a67a02212dcb118ac489fabf..362c2e6154f0ec187ef0247906d67a1ee2e6edbf 100644 (file)
@@ -2,7 +2,7 @@
 # Copyright (C) 2019-20 Texas Instruments Incorporated
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/sound/tas2770.yaml#
+$id: http://devicetree.org/schemas/sound/ti,tas2770.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Texas Instruments TAS2770 Smart PA
similarity index 97%
rename from Bindings/sound/tas27xx.yaml
rename to Bindings/sound/ti,tas27xx.yaml
index f2d878f6f4959c3be4e8295836eeb0ca88e701cd..530bc3937847ff26140399c54869c8cc209d832c 100644 (file)
@@ -2,7 +2,7 @@
 # Copyright (C) 2020-2022 Texas Instruments Incorporated
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/sound/tas27xx.yaml#
+$id: http://devicetree.org/schemas/sound/ti,tas27xx.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Texas Instruments TAS2764/TAS2780 Smart PA
diff --git a/Bindings/sound/ti,tas57xx.yaml b/Bindings/sound/ti,tas57xx.yaml
new file mode 100644 (file)
index 0000000..2f91723
--- /dev/null
@@ -0,0 +1,133 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/ti,tas57xx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments TAS5711/TAS5717/TAS5719/TAS5721 stereo power amplifiers
+
+maintainers:
+  - Neil Armstrong <neil.armstrong@linaro.org>
+
+properties:
+  compatible:
+    enum:
+      - ti,tas5707
+      - ti,tas5711
+      - ti,tas5717
+      - ti,tas5719
+      - ti,tas5721
+      - ti,tas5733
+
+  reg:
+    maxItems: 1
+
+  reset-gpios:
+    maxItems: 1
+    description: GPIO for the active low reset line
+
+  pdn-gpios:
+    maxItems: 1
+    description: GPIO for the active low powerdown line
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    const: mclk
+
+  AVDD-supply: true
+  DVDD-supply: true
+  HPVDD-supply: true
+  PVDD_AB-supply: true
+  PVDD_CD-supply: true
+  PVDD_A-supply: true
+  PVDD_B-supply: true
+  PVDD_C-supply: true
+  PVDD_D-supply: true
+  DRVDD-supply: true
+  PVDD-supply: true
+
+  '#sound-dai-cells':
+    const: 0
+
+  port:
+    $ref: audio-graph-port.yaml#
+    unevaluatedProperties: false
+
+required:
+  - compatible
+  - reg
+  - '#sound-dai-cells'
+
+allOf:
+  - $ref: dai-common.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - ti,tas5717
+              - ti,tas5719
+    then:
+      properties:
+        PVDD_A-supply: false
+        PVDD_B-supply: false
+        PVDD_C-supply: false
+        PVDD_D-supply: false
+        DRVDD-supply: false
+        PVDD-supply: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - ti,tas5711
+    then:
+      properties:
+        HPVDD-supply: false
+        PVDD_AB-supply: false
+        PVDD_CD-supply: false
+        DRVDD-supply: false
+        PVDD-supply: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - ti,tas5721
+    then:
+      properties:
+        HPVDD-supply: false
+        PVDD_AB-supply: false
+        PVDD_CD-supply: false
+        PVDD_A-supply: false
+        PVDD_B-supply: false
+        PVDD_C-supply: false
+        PVDD_D-supply: false
+
+unevaluatedProperties: false
+
+examples:
+  - |
+   i2c {
+     #address-cells = <1>;
+     #size-cells = <0>;
+
+     codec@2a {
+       compatible = "ti,tas5717";
+       reg = <0x2a>;
+       #sound-dai-cells = <0>;
+       reset-gpios = <&gpio1 15 0>;
+       pdn-gpios = <&gpio1 15 0>;
+       AVDD-supply = <&avdd_supply>;
+       DVDD-supply = <&dvdd_supply>;
+       HPVDD-supply = <&hpvdd_supply>;
+       PVDD_AB-supply = <&pvdd_ab_supply>;
+       PVDD_CD-supply = <&pvdd_cd_supply>;
+     };
+   };
+
+...
similarity index 95%
rename from Bindings/sound/tas5805m.yaml
rename to Bindings/sound/ti,tas5805m.yaml
index 12c41974274e7f52752956fb34c1278d2a392722..c2c2835a9e1dbd8c684d1bdd676da5b0e36a81e3 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/sound/tas5805m.yaml#
+$id: http://devicetree.org/schemas/sound/ti,tas5805m.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: TAS5805M audio amplifier
index ede14ca2c07a1227bd158c7c737aef7695385fff..66b76656229fccc3c9eb319313470a7ec61270b8 100644 (file)
@@ -58,8 +58,8 @@ properties:
     description: |
       Configuration for DMDIN/GPIO1 pin.
 
-      When ADC3XXX_GPIO_GPO is configured, this causes corresponding the
-      ALSA control "GPIOx Output" to appear, as a switch control.
+      When ADC3XXX_GPIO_GPO is selected, the pin may be controlled via the
+      GPIO framework, as pin number 0 on the device.
 
   ti,dmclk-gpio2:
     $ref: /schemas/types.yaml#/definitions/uint32
@@ -76,12 +76,32 @@ properties:
     description: |
       Configuration for DMCLK/GPIO2 pin.
 
-      When ADC3XXX_GPIO_GPO is configured, this causes corresponding the
-      ALSA control "GPIOx Output" to appear, as a switch control.
+      When ADC3XXX_GPIO_GPO is selected, the pin may be controlled via the
+      GPIO framework, as pin number 1 on the device.
 
       Note that there is currently no support for reading the GPIO pins as
       inputs.
 
+  ti,micbias1-gpo:
+    type: boolean
+    description: |
+      When set, the MICBIAS1 pin may be controlled via the GPIO framework,
+      as pin number 3 on the device.
+
+      In this mode, when the pin is activated, it will be set to the voltage
+      specified by the ti,micbias1-vg property. When deactivated, the pin will
+      float.
+
+  ti,micbias2-gpo:
+    type: boolean
+    description: |
+      When set, the MICBIAS2 pin may be controlled via the GPIO framework,
+      as pin number 4 on the device.
+
+      In this mode, when the pin is activated, it will be set to the voltage
+      specified by the ti,micbias2-vg property. When deactivated, the pin will
+      float.
+
   ti,micbias1-vg:
     $ref: /schemas/types.yaml#/definitions/uint32
     enum:
@@ -104,6 +124,10 @@ properties:
     description: |
       Mic bias voltage output on MICBIAS2 pin
 
+dependencies:
+  ti,micbias1-gpo: ['ti,micbias1-vg']
+  ti,micbias2-gpo: ['ti,micbias2-vg']
+
 required:
   - compatible
   - reg
similarity index 99%
rename from Bindings/sound/tlv320adcx140.yaml
rename to Bindings/sound/ti,tlv320adcx140.yaml
index f3274bcc4c05e5966202c54e601a4fae8e1e78a7..876fa97bfbcdd3b9450aa6ff57de42f1faed350d 100644 (file)
@@ -2,7 +2,7 @@
 # Copyright (C) 2019 Texas Instruments Incorporated
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/sound/tlv320adcx140.yaml#
+$id: http://devicetree.org/schemas/sound/ti,tlv320adcx140.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Texas Instruments TLV320ADCX140 Quad Channel Analog-to-Digital Converter
similarity index 92%
rename from Bindings/sound/wm8750.yaml
rename to Bindings/sound/wlf,wm8750.yaml
index 24246ac7bbdfd02266668551c788a1a105b1012b..96859e38315b1a85a5bb3238875ec75e775d50aa 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/sound/wm8750.yaml#
+$id: http://devicetree.org/schemas/sound/wlf,wm8750.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: WM8750 and WM8987 audio CODECs
diff --git a/Bindings/sound/wlf,wm8782.yaml b/Bindings/sound/wlf,wm8782.yaml
new file mode 100644 (file)
index 0000000..d0bbdc9
--- /dev/null
@@ -0,0 +1,47 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/sound/wlf,wm8782.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Wolfson Microelectromics WM8782 audio CODEC
+
+maintainers:
+  - patches@opensource.cirrus.com
+
+allOf:
+  - $ref: dai-common.yaml#
+
+properties:
+  compatible:
+    const: wlf,wm8782
+
+  Vdda-supply:
+    description: Regulator for the analog power supply (2.7V - 5.5V)
+
+  Vdd-supply:
+    description: Regulator for the digital power supply (2.7V - 3.6V)
+
+  wlf,fsampen:
+    description: FSAMPEN pin value, 0 for low, 1 for high, 2 for disconnected.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    enum: [0, 1, 2]
+
+  "#sound-dai-cells":
+    const: 0
+
+required:
+  - compatible
+  - Vdda-supply
+  - Vdd-supply
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    wm8782: codec {
+        compatible = "wlf,wm8782";
+        Vdda-supply = <&vdda_supply>;
+        Vdd-supply = <&vdd_supply>;
+        wlf,fsampen = <2>;
+    };
diff --git a/Bindings/sound/wlf,wm8804.yaml b/Bindings/sound/wlf,wm8804.yaml
new file mode 100644 (file)
index 0000000..3c06017
--- /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/sound/wlf,wm8804.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: WM8804 audio codec
+
+description: |
+  This device supports both I2C and SPI (configured with pin strapping on the
+  board).
+
+maintainers:
+  - patches@opensource.cirrus.com
+
+properties:
+  compatible:
+    const: wlf,wm8804
+
+  reg:
+    description:
+      The I2C address of the device for I2C, the chip select number for SPI.
+    maxItems: 1
+
+  "#sound-dai-cells":
+    const: 0
+
+  PVDD-supply:
+    description: PLL core supply
+
+  DVDD-supply:
+    description: Digital core supply
+
+  wlf,reset-gpio:
+    description: A GPIO specifier for the GPIO controlling the reset pin.
+    maxItems: 1
+
+required:
+  - reg
+  - compatible
+  - PVDD-supply
+  - DVDD-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        codec@1a {
+            compatible = "wlf,wm8804";
+            reg = <0x1a>;
+            PVDD-supply = <&pvdd_reg>;
+            DVDD-supply = <&dvdd_reg>;
+        };
+    };
diff --git a/Bindings/sound/wm8782.txt b/Bindings/sound/wm8782.txt
deleted file mode 100644 (file)
index 1a28f32..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-WM8782 stereo ADC
-
-This device does not have any control interface or reset pins.
-
-Required properties:
-
- - compatible  : "wlf,wm8782"
- - Vdda-supply : phandle to a regulator for the analog power supply (2.7V - 5.5V)
- - Vdd-supply  : phandle to a regulator for the digital power supply (2.7V - 3.6V)
-
-Optional properties:
-
- - wlf,fsampen:
-   FSAMPEN pin value, 0 for low, 1 for high, 2 for disconnected.
-   Defaults to 0 if left unspecified.
-
-Example:
-
-wm8782: stereo-adc {
-       compatible = "wlf,wm8782";
-       Vdda-supply = <&vdda_supply>;
-       Vdd-supply = <&vdd_supply>;
-       wlf,fsampen = <2>; /* 192KHz */
-};
diff --git a/Bindings/sound/wm8804.txt b/Bindings/sound/wm8804.txt
deleted file mode 100644 (file)
index 2c1641c..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-WM8804 audio CODEC
-
-This device supports both I2C and SPI (configured with pin strapping
-on the board).
-
-Required properties:
-
-  - compatible : "wlf,wm8804"
-
-  - reg : the I2C address of the device for I2C, the chip select
-          number for SPI.
-
-  - PVDD-supply, DVDD-supply : Power supplies for the device, as covered
-    in Documentation/devicetree/bindings/regulator/regulator.txt
-
-Optional properties:
-
-  - wlf,reset-gpio: A GPIO specifier for the GPIO controlling the reset pin
-
-Example:
-
-wm8804: codec@1a {
-       compatible = "wlf,wm8804";
-       reg = <0x1a>;
-};
index ea47d30eef436d4b5a8521464968db68aa8f19b2..043879b434acc18b2f73474281739cde03839f5c 100644 (file)
@@ -23,6 +23,9 @@ properties:
   clocks:
     maxItems: 1
 
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
index 32e7c14033c2cc36d5c87836922207eafc45df2e..d29772994cf5f1e4bc8700b34abf9062b4e240b4 100644 (file)
@@ -18,10 +18,10 @@ properties:
     oneOf:
       - const: atmel,at91rm9200-spi
       - items:
-          - const: microchip,sam9x60-spi
-          - const: atmel,at91rm9200-spi
-      - items:
-          - const: microchip,sam9x7-spi
+          - enum:
+              - microchip,sam9x60-spi
+              - microchip,sam9x7-spi
+              - microchip,sama7d65-spi
           - const: atmel,at91rm9200-spi
 
   reg:
diff --git a/Bindings/spi/brcm,bcm2835-spi.txt b/Bindings/spi/brcm,bcm2835-spi.txt
deleted file mode 100644 (file)
index 3d55dd6..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-Broadcom BCM2835 SPI0 controller
-
-The BCM2835 contains two forms of SPI master controller, one known simply as
-SPI0, and the other known as the "Universal SPI Master"; part of the
-auxiliary block. This binding applies to the SPI0 controller.
-
-Required properties:
-- compatible: Should be one of "brcm,bcm2835-spi" for BCM2835/2836/2837 or
-  "brcm,bcm2711-spi" for BCM2711 or "brcm,bcm7211-spi" for BCM7211.
-- reg: Should contain register location and length.
-- interrupts: Should contain interrupt.
-- clocks: The clock feeding the SPI controller.
-
-Example:
-
-spi@20204000 {
-       compatible = "brcm,bcm2835-spi";
-       reg = <0x7e204000 0x1000>;
-       interrupts = <2 22>;
-       clocks = <&clk_spi>;
-       #address-cells = <1>;
-       #size-cells = <0>;
-};
diff --git a/Bindings/spi/brcm,bcm2835-spi.yaml b/Bindings/spi/brcm,bcm2835-spi.yaml
new file mode 100644 (file)
index 0000000..94da687
--- /dev/null
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/brcm,bcm2835-spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom BCM2835 SPI0 controller
+
+maintainers:
+  - Florian Fainelli <florian.fainelli@broadcom.com>
+  - Kanak Shilledar <kanakshilledar111@protonmail.com>
+  - Stefan Wahren <wahrenst@gmx.net>
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+properties:
+  compatible:
+    enum:
+      - brcm,bcm2835-spi
+      - brcm,bcm2711-spi
+      - brcm,bcm7211-spi
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - clocks
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    spi@20204000 {
+        compatible = "brcm,bcm2835-spi";
+        reg = <0x7e204000 0x1000>;
+        interrupts = <2 22>;
+        clocks = <&clk_spi>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+    };
diff --git a/Bindings/spi/fsl,dspi-peripheral-props.yaml b/Bindings/spi/fsl,dspi-peripheral-props.yaml
new file mode 100644 (file)
index 0000000..9b62b75
--- /dev/null
@@ -0,0 +1,30 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/fsl,dspi-peripheral-props.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Peripheral-specific properties for Freescale DSPI controller
+
+maintainers:
+  - Vladimir Oltean <olteanv@gmail.com>
+
+description:
+  See spi-peripheral-props.yaml for more info.
+
+properties:
+  fsl,spi-cs-sck-delay:
+    deprecated: true
+    description:
+      Delay in nanoseconds between activating chip select and the start of
+      clock signal, at the start of a transfer.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+  fsl,spi-sck-cs-delay:
+    deprecated: true
+    description:
+      Delay in nanoseconds between stopping the clock signal and
+      deactivating chip select, at the end of a transfer.
+    $ref: /schemas/types.yaml#/definitions/uint32
+
+additionalProperties: true
diff --git a/Bindings/spi/fsl,dspi.yaml b/Bindings/spi/fsl,dspi.yaml
new file mode 100644 (file)
index 0000000..7ca8fce
--- /dev/null
@@ -0,0 +1,116 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/fsl,dspi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ARM Freescale DSPI controller
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - fsl,vf610-dspi
+          - fsl,ls1021a-v1.0-dspi
+          - fsl,ls1012a-dspi
+          - fsl,ls1028a-dspi
+          - fsl,ls1043a-dspi
+          - fsl,ls1046a-dspi
+          - fsl,ls1088a-dspi
+          - fsl,ls2080a-dspi
+          - fsl,ls2085a-dspi
+          - fsl,lx2160a-dspi
+      - items:
+          - enum:
+              - fsl,ls1012a-dspi
+              - fsl,ls1028a-dspi
+              - fsl,ls1043a-dspi
+              - fsl,ls1046a-dspi
+              - fsl,ls1088a-dspi
+          - const: fsl,ls1021a-v1.0-dspi
+      - items:
+          - const: fsl,ls2080a-dspi
+          - const: fsl,ls2085a-dspi
+      - items:
+          - const: fsl,lx2160a-dspi
+          - const: fsl,ls2085a-dspi
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: dspi
+
+  dmas:
+    items:
+      - description: DMA controller phandle and request line for TX
+      - description: DMA controller phandle and request line for RX
+
+  dma-names:
+    items:
+      - const: tx
+      - const: rx
+
+  spi-num-chipselects:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description:
+      The number of the chip native chipselect signals.
+      cs-gpios don't count against this number.
+
+  big-endian: true
+
+  bus-num:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: SoC-specific identifier for the SPI controller.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - spi-num-chipselects
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/clock/vf610-clock.h>
+
+    spi@4002c000 {
+        compatible = "fsl,vf610-dspi";
+        reg = <0x4002c000 0x1000>;
+        #address-cells = <1>;
+        #size-cells = <0>;
+        interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&clks VF610_CLK_DSPI0>;
+        clock-names = "dspi";
+        spi-num-chipselects = <5>;
+        bus-num = <0>;
+        pinctrl-names = "default";
+        pinctrl-0 = <&pinctrl_dspi0_1>;
+        big-endian;
+
+        flash@0 {
+                compatible = "jedec,spi-nor";
+                reg = <0>;
+                spi-max-frequency = <16000000>;
+                spi-cpol;
+                spi-cpha;
+                spi-cs-setup-delay-ns = <100>;
+                spi-cs-hold-delay-ns = <50>;
+        };
+    };
diff --git a/Bindings/spi/ibm,spi-fsi.yaml b/Bindings/spi/ibm,spi-fsi.yaml
new file mode 100644 (file)
index 0000000..d7fec4c
--- /dev/null
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/spi/ibm,spi-fsi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: IBM FSI-attached SPI Controller
+
+maintainers:
+  - Eddie James <eajames@linux.ibm.com>
+
+description:
+  A SPI controller found on IBM Power processors, accessed over FSI from a
+  service processor. This node will always be a child node of an ibm,fsi2spi
+  node.
+
+properties:
+  compatible:
+    enum:
+      - ibm,spi-fsi
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: spi-controller.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    fsi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        spi@0 {
+            compatible = "ibm,spi-fsi";
+            reg = <0>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            eeprom@0 {
+                compatible = "atmel,at25";
+                reg = <0>;
+                size = <0x80000>;
+                address-width = <24>;
+                pagesize = <256>;
+                spi-max-frequency = <1000000>;
+            };
+        };
+    };
index 5f4f6b5615d0650496e5854b7181f6d155ce5f9f..0a1bada8f800e915d4be3cd3519133e087bac44e 100644 (file)
@@ -10,12 +10,17 @@ title: PXA2xx SSP SPI Controller
 maintainers:
   - Lubomir Rintel <lkundrak@v3.sk>
 
-allOf:
-  - $ref: spi-controller.yaml#
-
 properties:
   compatible:
-    const: marvell,mmp2-ssp
+    enum:
+      - marvell,mmp2-ssp
+      - mrvl,ce4100-ssp
+      - mvrl,pxa168-ssp
+      - mrvl,pxa25x-ssp
+      - mvrl,pxa25x-nssp
+      - mrvl,pxa27x-ssp
+      - mrvl,pxa3xx-ssp
+      - mrvl,pxa910-ssp
 
   interrupts:
     maxItems: 1
@@ -26,6 +31,16 @@ properties:
   clocks:
     maxItems: 1
 
+  dmas:
+    items:
+      - description: Receive DMA
+      - description: Transmit DMA
+
+  dma-names:
+    items:
+      - const: rx
+      - const: tx
+
   ready-gpios:
     description: |
       GPIO used to signal a SPI master that the FIFO is filled and we're
@@ -41,6 +56,18 @@ required:
 dependencies:
   ready-gpios: [ spi-slave ]
 
+allOf:
+  - $ref: spi-controller.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: marvell,mmp2-ssp
+    then:
+      properties:
+        dmas: false
+        dma-names: false
+
 unevaluatedProperties: false
 
 examples:
index 74a817cc7d942eaed604f102951158f0d23d6c45..ffa8d1b48f8bd1d2a9b891814cddf432fb8a4fe1 100644 (file)
@@ -13,9 +13,6 @@ description:
 maintainers:
   - Conor Dooley <conor.dooley@microchip.com>
 
-allOf:
-  - $ref: spi-controller.yaml#
-
 properties:
   compatible:
     oneOf:
@@ -43,6 +40,32 @@ required:
   - interrupts
   - clocks
 
+allOf:
+  - $ref: spi-controller.yaml#
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: microchip,mpfs-spi
+    then:
+      properties:
+        num-cs:
+          default: 1
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: microchip,mpfs-spi
+      not:
+        required:
+          - cs-gpios
+    then:
+      properties:
+        num-cs:
+          maximum: 1
+
 unevaluatedProperties: false
 
 examples:
index fde3776a558bcddd267d3b5f93ce56cba64ee285..bccd00a1ddd0ad92b437eed5b525a6ea1963db57 100644 (file)
@@ -88,6 +88,10 @@ properties:
               - renesas,r9a06g032-spi # RZ/N1D
               - renesas,r9a06g033-spi # RZ/N1S
           - const: renesas,rzn1-spi   # RZ/N1
+      - description: T-HEAD TH1520 SoC SPI Controller
+        items:
+          - const: thead,th1520-spi
+          - const: snps,dw-apb-ssi
 
   reg:
     minItems: 1
index d4b61b0e8301ff2687a17e18ce3ab0fcd807de6c..8de96abe9da12f1e2ad47cf6217127bb18f2ca73 100644 (file)
@@ -55,6 +55,13 @@ properties:
   label:
     description: Descriptive name of the SPI controller.
 
+  resets:
+    maxItems: 1
+
+  reset-names:
+    items:
+      - const: spi
+
 required:
   - compatible
   - reg
diff --git a/Bindings/spi/spi-fsl-dspi.txt b/Bindings/spi/spi-fsl-dspi.txt
deleted file mode 100644 (file)
index 30a79da..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-ARM Freescale DSPI controller
-
-Required properties:
-- compatible : must be one of:
-       "fsl,vf610-dspi",
-       "fsl,ls1021a-v1.0-dspi",
-       "fsl,ls1012a-dspi" (optionally followed by "fsl,ls1021a-v1.0-dspi"),
-       "fsl,ls1028a-dspi",
-       "fsl,ls1043a-dspi" (optionally followed by "fsl,ls1021a-v1.0-dspi"),
-       "fsl,ls1046a-dspi" (optionally followed by "fsl,ls1021a-v1.0-dspi"),
-       "fsl,ls1088a-dspi" (optionally followed by "fsl,ls1021a-v1.0-dspi"),
-       "fsl,ls2080a-dspi" (optionally followed by "fsl,ls2085a-dspi"),
-       "fsl,ls2085a-dspi",
-       "fsl,lx2160a-dspi",
-- reg : Offset and length of the register set for the device
-- interrupts : Should contain SPI controller interrupt
-- clocks: from common clock binding: handle to dspi clock.
-- clock-names: from common clock binding: Shall be "dspi".
-- pinctrl-0: pin control group to be used for this controller.
-- pinctrl-names: must contain a "default" entry.
-- spi-num-chipselects : the number of the chipselect signals.
-
-Optional property:
-- big-endian: If present the dspi device's registers are implemented
-  in big endian mode.
-- bus-num : the slave chip chipselect signal number.
-
-Optional SPI slave node properties:
-- fsl,spi-cs-sck-delay: a delay in nanoseconds between activating chip
-  select and the start of clock signal, at the start of a transfer.
-- fsl,spi-sck-cs-delay: a delay in nanoseconds between stopping the clock
-  signal and deactivating chip select, at the end of a transfer.
-
-Example:
-
-dspi0@4002c000 {
-       #address-cells = <1>;
-       #size-cells = <0>;
-       compatible = "fsl,vf610-dspi";
-       reg = <0x4002c000 0x1000>;
-       interrupts = <0 67 0x04>;
-       clocks = <&clks VF610_CLK_DSPI0>;
-       clock-names = "dspi";
-       spi-num-chipselects = <5>;
-       bus-num = <0>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_dspi0_1>;
-       big-endian;
-
-       sflash: at26df081a@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "atmel,at26df081a";
-               spi-max-frequency = <16000000>;
-               spi-cpol;
-               spi-cpha;
-               reg = <0>;
-               linux,modalias = "m25p80";
-               modal = "at26df081a";
-               fsl,spi-cs-sck-delay = <100>;
-               fsl,spi-sck-cs-delay = <50>;
-       };
-};
-
-
index 2ff174244795708be706f53751a6ef51a53a552d..ed1d4aa41b8c6f636e48a716a70ae504ce12970e 100644 (file)
@@ -7,7 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale Low Power SPI (LPSPI) for i.MX
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+  - Fabio Estevam <festevam@gmail.com>
 
 allOf:
   - $ref: /schemas/spi/spi-controller.yaml#
index 15938f81fdce204454d2b0eec4c169d74700f36b..0bb443b8decda9b6c5eb0a3caa2fcfc4dc01d775 100644 (file)
@@ -122,6 +122,7 @@ properties:
 allOf:
   - $ref: arm,pl022-peripheral-props.yaml#
   - $ref: cdns,qspi-nor-peripheral-props.yaml#
+  - $ref: fsl,dspi-peripheral-props.yaml#
   - $ref: samsung,spi-peripheral-props.yaml#
   - $ref: nvidia,tegra210-quad-peripheral-props.yaml#
 
index a55c8633c32ce9c9fe4306695e31b66a15baf0a1..76e43c0ce36caa3f8f5ae1a80a214c002a28b761 100644 (file)
@@ -42,7 +42,7 @@ properties:
   dmas:
     description: |
       DMA specifiers for tx and rx dma. DMA fifo mode must be used. See
-      the STM32 DMA bindings Documentation/devicetree/bindings/dma/st,stm32-dma.yaml.
+      the STM32 DMA controllers bindings Documentation/devicetree/bindings/dma/stm32/*.yaml.
     items:
       - description: rx DMA channel
       - description: tx DMA channel
index cf07b8f787a6eda6fb7031407cbf5c37ff171bf1..d9322704f3588e036280d08deaf59972f1dfeb7f 100644 (file)
@@ -56,6 +56,9 @@ properties:
   ranges: true
 
 patternProperties:
+  "^regulators@[0-9a-f]+$":
+    $ref: /schemas/regulator/allwinner,sun20i-d1-system-ldos.yaml#
+
   "^sram@[a-f0-9]+":
     $ref: /schemas/sram/sram.yaml#
     unevaluatedProperties: false
@@ -130,3 +133,28 @@ examples:
         };
       };
     };
+
+  - |
+    syscon@3000000 {
+      compatible = "allwinner,sun20i-d1-system-control";
+      reg = <0x3000000 0x1000>;
+      ranges;
+      #address-cells = <1>;
+      #size-cells = <1>;
+
+      regulators@3000150 {
+        compatible = "allwinner,sun20i-d1-system-ldos";
+        reg = <0x3000150 0x4>;
+
+        reg_ldoa: ldoa {
+          regulator-min-microvolt = <1800000>;
+          regulator-max-microvolt = <1800000>;
+        };
+
+        reg_ldob: ldob {
+          regulator-name = "vcc-dram";
+          regulator-min-microvolt = <1500000>;
+          regulator-max-microvolt = <1500000>;
+        };
+      };
+    };
index 8025a852bc9c1f0fbf11330662634faf58cc9db2..faef3d6e0a941a8fcecd5819b72225668d20a5c7 100644 (file)
@@ -22,6 +22,7 @@ properties:
           - qcom,msm8974-imem
           - qcom,qcs404-imem
           - qcom,qdu1000-imem
+          - qcom,sa8775p-imem
           - qcom,sc7180-imem
           - qcom,sc7280-imem
           - qcom,sdm630-imem
index 6b3aea6d73b077ba537eeaf456840f61fb1cca6a..dad8de900495e892e9bf39a106ec9d0f32261008 100644 (file)
@@ -10,6 +10,8 @@ maintainers:
   - Vasily Khoruzhick <anarsoul@gmail.com>
   - Yangtao Li <tiny.windzz@gmail.com>
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     enum:
@@ -55,7 +57,6 @@ properties:
     maxItems: 1
     description: phandle to device controlling temperate offset SYS_CFG register
 
-  # See Documentation/devicetree/bindings/thermal/thermal-sensor.yaml for details
   "#thermal-sensor-cells":
     enum:
       - 0
@@ -135,9 +136,8 @@ required:
   - compatible
   - reg
   - interrupts
-  - '#thermal-sensor-cells'
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 01fccdfc41781a8a52022af87d29c95847d61c13..725303e1a364c48fe2f2ff6be1d020d3f670e4e7 100644 (file)
@@ -11,6 +11,8 @@ maintainers:
 
 description: Binding for Amlogic Thermal
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     oneOf:
@@ -44,17 +46,17 @@ required:
   - clocks
   - amlogic,ao-secure
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
-        cpu_temp: temperature-sensor@ff634800 {
-                compatible = "amlogic,g12a-cpu-thermal",
-                             "amlogic,g12a-thermal";
-                reg = <0xff634800 0x50>;
-                interrupts = <0x0 0x24 0x0>;
-                clocks = <&clk 164>;
-                #thermal-sensor-cells = <0>;
-                amlogic,ao-secure = <&sec_AO>;
-        };
+    temperature-sensor@ff634800 {
+        compatible = "amlogic,g12a-cpu-thermal",
+                     "amlogic,g12a-thermal";
+        reg = <0xff634800 0x50>;
+        interrupts = <0x0 0x24 0x0>;
+        clocks = <&clk 164>;
+        #thermal-sensor-cells = <0>;
+        amlogic,ao-secure = <&sec_AO>;
+    };
 ...
index 89a2c32c0ab29118b0620b4fa80e87e27e666ecb..29a9844e8b48ef59185031721ad746e9435d26f6 100644 (file)
@@ -19,30 +19,30 @@ description: |+
   Refer to the bindings described in
   Documentation/devicetree/bindings/mfd/syscon.yaml
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     const: brcm,bcm2711-thermal
 
-  # See Documentation/devicetree/bindings/thermal/thermal-sensor.yaml for details
   "#thermal-sensor-cells":
     const: 0
 
 required:
   - compatible
-  - '#thermal-sensor-cells'
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
-        avs-monitor@7d5d2000 {
-                compatible = "brcm,bcm2711-avs-monitor",
-                             "syscon", "simple-mfd";
-                reg = <0x7d5d2000 0xf00>;
-
-                thermal: thermal {
-                        compatible = "brcm,bcm2711-thermal";
-                        #thermal-sensor-cells = <0>;
-                };
+    avs-monitor@7d5d2000 {
+        compatible = "brcm,bcm2711-avs-monitor",
+                     "syscon", "simple-mfd";
+        reg = <0x7d5d2000 0xf00>;
+
+        thermal: thermal {
+            compatible = "brcm,bcm2711-thermal";
+            #thermal-sensor-cells = <0>;
         };
+    };
 ...
index 267a0f4235041947ad540831548db63205223d21..081486b44382e9d35bc018cc9bb0583ed4e4b447 100644 (file)
@@ -42,15 +42,14 @@ additionalProperties: false
 required:
   - compatible
   - reg
-  - "#thermal-sensor-cells"
 
 examples:
   - |
-     thermal@f04d1500 {
-          compatible = "brcm,avs-tmon-bcm7445", "brcm,avs-tmon";
-          reg = <0xf04d1500 0x28>;
-          interrupts = <0x6>;
-          interrupt-names = "tmon";
-          interrupt-parent = <&avs_host_l2_intc>;
-          #thermal-sensor-cells = <0>;
-     };
+    thermal@f04d1500 {
+        compatible = "brcm,avs-tmon-bcm7445", "brcm,avs-tmon";
+        reg = <0xf04d1500 0x28>;
+        interrupts = <0x6>;
+        interrupt-names = "tmon";
+        interrupt-parent = <&avs_host_l2_intc>;
+        #thermal-sensor-cells = <0>;
+    };
index 2b6026d9fbcf7fcc34df17bfd4a535235e579470..ddf0f20e5285e453f6cd04b4943d6ac924d92004 100644 (file)
@@ -34,7 +34,6 @@ required:
   - compatible
   - reg
   - clocks
-  - '#thermal-sensor-cells'
 
 examples:
   - |
index e02d04d4f71ef998cf180b0a8fb81e23886ee489..ceef318668bfbb61445a3efff47333fd36810538 100644 (file)
@@ -28,7 +28,6 @@ properties:
 
 required:
   - compatible
-  - '#thermal-sensor-cells'
 
 additionalProperties: false
 
index f1fc3b0d8608544b4cae3b637451c4776a11ee10..12e6418dc24d0d972299a2389a8c0090a517cc2f 100644 (file)
@@ -15,6 +15,8 @@ description:
   sensor resistor. The voltage read across the sensor is mapped to
   temperature using voltage-temperature lookup table.
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     const: generic-adc-thermal
@@ -44,11 +46,10 @@ properties:
 
 required:
   - compatible
-  - '#thermal-sensor-cells'
   - io-channels
   - io-channel-names
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
diff --git a/Bindings/thermal/hisilicon,tsensor.yaml b/Bindings/thermal/hisilicon,tsensor.yaml
new file mode 100644 (file)
index 0000000..11aca2b
--- /dev/null
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/thermal/hisilicon,tsensor.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Temperature Sensor on HiSilicon SoCs
+
+maintainers:
+  - Abdulrasaq Lawani <abdulrasaqolawani@gmail.com>
+
+allOf:
+  - $ref: thermal-sensor.yaml
+
+properties:
+  compatible:
+    enum:
+      - hisilicon,tsensor
+      - hisilicon,hi3660-tsensor
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    items:
+      - const: thermal_clk
+
+  interrupts:
+    maxItems: 1
+
+  '#thermal-sensor-cells':
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - '#thermal-sensor-cells'
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/hi6220-clock.h>
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+    temperature-sensor@f7030700 {
+        compatible = "hisilicon,tsensor";
+        reg = <0xf7030700 0x1000>;
+        interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&sys_ctrl HI6220_TSENSOR_CLK>;
+        clock-names = "thermal_clk";
+        #thermal-sensor-cells = <1>;
+    };
diff --git a/Bindings/thermal/hisilicon-thermal.txt b/Bindings/thermal/hisilicon-thermal.txt
deleted file mode 100644 (file)
index 4b19d80..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-* Temperature Sensor on hisilicon SoCs
-
-** Required properties :
-
-- compatible: "hisilicon,tsensor".
-- reg: physical base address of thermal sensor and length of memory mapped
-  region.
-- interrupt: The interrupt number to the cpu. Defines the interrupt used
-  by /SOCTHERM/tsensor.
-- clock-names: Input clock name, should be 'thermal_clk'.
-- clocks: phandles for clock specified in "clock-names" property.
-- #thermal-sensor-cells: Should be 1. See Documentation/devicetree/bindings/thermal/thermal-sensor.yaml for a description.
-
-Example :
-
-for Hi6220:
-       tsensor: tsensor@0,f7030700 {
-               compatible = "hisilicon,tsensor";
-               reg = <0x0 0xf7030700 0x0 0x1000>;
-               interrupts = <0 7 0x4>;
-               clocks = <&sys_ctrl HI6220_TSENSOR_CLK>;
-               clock-names = "thermal_clk";
-               #thermal-sensor-cells = <1>;
-       }
-
-for Hi3660:
-       tsensor: tsensor@fff30000 {
-               compatible = "hisilicon,hi3660-tsensor";
-               reg = <0x0 0xfff30000 0x0 0x1000>;
-               interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
-               #thermal-sensor-cells = <1>;
-       };
index 808d987bd8d1a9d72f88c8bf1e9c82ad3a9fb1e7..337560562337d1d8a85f3e896c369e91b54300d5 100644 (file)
@@ -8,7 +8,6 @@ title: NXP i.MX Thermal
 
 maintainers:
   - Shawn Guo <shawnguo@kernel.org>
-  - Anson Huang <Anson.Huang@nxp.com>
 
 properties:
   compatible:
index d2c1e4573c3278f5e391b3c4af708f214f9b0db8..bef0e95e7416804fc69586c58d9b26b7e127009b 100644 (file)
@@ -7,7 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: NXP i.MX8M Mini Thermal
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+  - Fabio Estevam <festevam@gmail.com>
 
 description: |
   i.MX8MM has TMU IP to allow temperature measurement, there are
@@ -16,6 +18,8 @@ description: |
   for i.MX8MM which has ONLY 1 sensor, v2 is for i.MX8MP which has
   2 sensors.
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     oneOf:
@@ -51,9 +55,8 @@ required:
   - compatible
   - reg
   - clocks
-  - '#thermal-sensor-cells'
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index ca81c8afba79c673aea6dba21e21deb0adbe43d1..79e691b08341c342fa4badcea516e6f5c73435a7 100644 (file)
@@ -38,7 +38,6 @@ required:
   - compatible
   - reg
   - interrupts
-  - '#thermal-sensor-cells'
 
 if:
   properties:
index 331cf4e662e3094b9122f4cbbb27d55e1c493079..0259cd3ce9c55fdd7e734108cf7fea1763beb419 100644 (file)
@@ -99,7 +99,6 @@ required:
   - resets
   - nvmem-cells
   - nvmem-cell-names
-  - "#thermal-sensor-cells"
 
 additionalProperties: false
 
index b0237d2360216ef748d37d1e22752be9b60b2794..19bb1f324183bb22bc75630798da67fc834920b8 100644 (file)
@@ -197,7 +197,6 @@ required:
   - clock-names
   - resets
   - reset-names
-  - "#thermal-sensor-cells"
 
 allOf:
   - $ref: thermal-sensor.yaml
index c91fd07e4061d848a62545a1fc93557a0aec9baf..978b9e6ab8a31b4409ea3ac4929dcf08e33fc866 100644 (file)
@@ -20,11 +20,7 @@ description: |
   node. See ../firmware/nvidia,tegra186-bpmp.yaml for details of the
   BPMP binding.
 
-  This node represents a thermal sensor. See
-
-    Documentation/devicetree/bindings/thermal/thermal-sensor.yaml
-
-  for details of the core thermal binding.
+$ref: thermal-sensor.yaml#
 
 properties:
   compatible:
@@ -33,10 +29,6 @@ properties:
       - nvidia,tegra194-bpmp-thermal
 
   '#thermal-sensor-cells':
-    $ref: /schemas/types.yaml#/definitions/uint32
-    description: Number of cells needed in the phandle specifier to
-      identify a given sensor. Must be 1 and the single cell specifies
-      the sensor index.
     const: 1
 
-additionalProperties: false
+unevaluatedProperties: false
index a35da257b070d8f325c0a3df2fb75ca3f5954b9e..63a29a1f7fe6c3d45baa920994082e60d7507ff5 100644 (file)
@@ -27,6 +27,8 @@ description: |
 
   TSENSOR has two channels which monitor two different spots of the SoC.
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     const: nvidia,tegra30-tsensor
@@ -46,19 +48,14 @@ properties:
   "#thermal-sensor-cells":
     const: 1
 
-  assigned-clock-parents: true
-  assigned-clock-rates: true
-  assigned-clocks: true
-
 required:
   - compatible
   - reg
   - clocks
   - resets
   - interrupts
-  - "#thermal-sensor-cells"
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 5f08b6e59b8a5c9c29295f78789f1d8c0de79449..30b22151aa82239906bf3d57203628fc1f3394e9 100644 (file)
@@ -42,7 +42,6 @@ required:
   - compatible
   - reg
   - interrupts
-  - '#thermal-sensor-cells'
 
 additionalProperties: false
 
index 7541e27704cad6ffc8199c5e8a110254759a39e6..bfad8130a042a54a937adb8b20f5777d58135af8 100644 (file)
@@ -8,6 +8,8 @@ title: Qualcomm's SPMI PMIC ADC HC Thermal Monitoring
 maintainers:
   - Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     const: qcom,spmi-adc-tm-hc
@@ -20,9 +22,6 @@ properties:
 
   "#thermal-sensor-cells":
     const: 1
-    description:
-      Number of cells required to uniquely identify the thermal sensors. Since
-      we have multiple sensors this is set to 1
 
   "#address-cells":
     const: 1
@@ -106,9 +105,8 @@ required:
   - interrupts
   - "#address-cells"
   - "#size-cells"
-  - "#thermal-sensor-cells"
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index d9d2657287cb48e6cb9a1ee13bc4152a33338c75..4470a5942fb2ad9386483e8514288a6db34f5234 100644 (file)
@@ -8,6 +8,8 @@ title: Qualcomm's SPMI PMIC ADC Thermal Monitoring
 maintainers:
   - Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     enum:
@@ -23,9 +25,6 @@ properties:
 
   "#thermal-sensor-cells":
     const: 1
-    description:
-      Number of cells required to uniquely identify the thermal sensors. Since
-      we have multiple sensors this is set to 1
 
   "#address-cells":
     const: 1
@@ -159,9 +158,8 @@ required:
   - interrupts
   - "#address-cells"
   - "#size-cells"
-  - "#thermal-sensor-cells"
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 99d9c526c0b6b4a02ecabc322d6eda4c88069d06..72048c5a0412e3cc3814d2a5f0f524867bb92c83 100644 (file)
@@ -67,6 +67,7 @@ properties:
               - qcom,sm8450-tsens
               - qcom,sm8550-tsens
               - qcom,sm8650-tsens
+              - qcom,x1e80100-tsens
           - const: qcom,tsens-v2
 
       - description: v2 of TSENS with combined interrupt
@@ -217,18 +218,16 @@ properties:
 
   "#thermal-sensor-cells":
     const: 1
-    description:
-      Number of cells required to uniquely identify the thermal sensors. Since
-      we have multiple sensors this is set to 1
 
 required:
   - compatible
   - interrupts
   - interrupt-names
-  - "#thermal-sensor-cells"
   - "#qcom,sensors"
 
 allOf:
+  - $ref: thermal-sensor.yaml#
+
   - if:
       properties:
         compatible:
@@ -292,27 +291,21 @@ allOf:
       required:
         - reg
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
-    // Example msm9860 based SoC (ipq8064):
-    gcc: clock-controller {
-
-           /* ... */
+    thermal-sensor {
+        compatible = "qcom,ipq8064-tsens";
 
-           tsens: thermal-sensor {
-                compatible = "qcom,ipq8064-tsens";
-
-                 nvmem-cells = <&tsens_calib>, <&tsens_calib_backup>;
-                 nvmem-cell-names = "calib", "calib_backup";
-                 interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
-                 interrupt-names = "uplow";
+        nvmem-cells = <&tsens_calib>, <&tsens_calib_backup>;
+        nvmem-cell-names = "calib", "calib_backup";
+        interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "uplow";
 
-                 #qcom,sensors = <11>;
-                 #thermal-sensor-cells = <1>;
-          };
+        #qcom,sensors = <11>;
+        #thermal-sensor-cells = <1>;
     };
 
   - |
@@ -349,66 +342,66 @@ examples:
     #include <dt-bindings/interrupt-controller/arm-gic.h>
     // Example 1 (legacy: for pre v1 IP):
     tsens1: thermal-sensor@4a9000 {
-           compatible = "qcom,msm8916-tsens", "qcom,tsens-v0_1";
-           reg = <0x4a9000 0x1000>, /* TM */
-                 <0x4a8000 0x1000>; /* SROT */
+        compatible = "qcom,msm8916-tsens", "qcom,tsens-v0_1";
+        reg = <0x4a9000 0x1000>, /* TM */
+              <0x4a8000 0x1000>; /* SROT */
 
-           nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
-           nvmem-cell-names = "calib", "calib_sel";
+        nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
+        nvmem-cell-names = "calib", "calib_sel";
 
-           interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
-           interrupt-names = "uplow";
+        interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "uplow";
 
-           #qcom,sensors = <5>;
-           #thermal-sensor-cells = <1>;
+        #qcom,sensors = <5>;
+        #thermal-sensor-cells = <1>;
     };
 
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
     // Example 2 (for any platform containing v1 of the TSENS IP):
     tsens2: thermal-sensor@4a9000 {
-          compatible = "qcom,qcs404-tsens", "qcom,tsens-v1";
-          reg = <0x004a9000 0x1000>, /* TM */
-                <0x004a8000 0x1000>; /* SROT */
+        compatible = "qcom,qcs404-tsens", "qcom,tsens-v1";
+        reg = <0x004a9000 0x1000>, /* TM */
+              <0x004a8000 0x1000>; /* SROT */
 
-          nvmem-cells = <&tsens_caldata>;
-          nvmem-cell-names = "calib";
+        nvmem-cells = <&tsens_caldata>;
+        nvmem-cell-names = "calib";
 
-          interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>;
-          interrupt-names = "uplow";
+        interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "uplow";
 
-          #qcom,sensors = <10>;
-          #thermal-sensor-cells = <1>;
+        #qcom,sensors = <10>;
+        #thermal-sensor-cells = <1>;
     };
 
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
     // Example 3 (for any platform containing v2 of the TSENS IP):
     tsens3: thermal-sensor@c263000 {
-           compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
-           reg = <0xc263000 0x1ff>,
-                 <0xc222000 0x1ff>;
+        compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
+        reg = <0xc263000 0x1ff>,
+              <0xc222000 0x1ff>;
 
-           interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>,
-                        <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>;
-           interrupt-names = "uplow", "critical";
+        interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "uplow", "critical";
 
-           #qcom,sensors = <13>;
-           #thermal-sensor-cells = <1>;
+        #qcom,sensors = <13>;
+        #thermal-sensor-cells = <1>;
     };
 
   - |
     #include <dt-bindings/interrupt-controller/arm-gic.h>
     // Example 4 (for any IPQ8074 based SoC-s):
     tsens4: thermal-sensor@4a9000 {
-           compatible = "qcom,ipq8074-tsens";
-           reg = <0x4a9000 0x1000>,
-                 <0x4a8000 0x1000>;
+        compatible = "qcom,ipq8074-tsens";
+        reg = <0x4a9000 0x1000>,
+              <0x4a8000 0x1000>;
 
-           interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
-           interrupt-names = "combined";
+        interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+        interrupt-names = "combined";
 
-           #qcom,sensors = <16>;
-           #thermal-sensor-cells = <1>;
+        #qcom,sensors = <16>;
+        #thermal-sensor-cells = <1>;
     };
 ...
index d155d6799da6fcf1744d3fbeb635f6f4d1542b25..aa756dae512a2c6e3f0b6bb1ab4a65c01e373ea7 100644 (file)
@@ -7,7 +7,11 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Thermal Monitoring Unit (TMU) on Freescale QorIQ SoCs
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+  - Fabio Estevam <festevam@gmail.com>
+
+$ref: thermal-sensor.yaml#
 
 properties:
   compatible:
@@ -68,9 +72,8 @@ required:
   - interrupts
   - fsl,tmu-range
   - fsl,tmu-calibration
-  - '#thermal-sensor-cells'
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 6a81cb6e11bc1e149af6152977239ac9c6a5b883..b6657d64cf3db323238b22ece2e0f191d6451385 100644 (file)
@@ -15,6 +15,8 @@ description:
 maintainers:
   - Niklas Söderlund <niklas.soderlund@ragnatech.se>
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     enum:
@@ -57,7 +59,6 @@ required:
   - clocks
   - power-domains
   - resets
-  - "#thermal-sensor-cells"
 
 if:
   properties:
@@ -96,7 +97,7 @@ else:
     required:
       - interrupts
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
@@ -105,33 +106,33 @@ examples:
     #include <dt-bindings/power/r8a7795-sysc.h>
 
     tsc: thermal@e6198000 {
-            compatible = "renesas,r8a7795-thermal";
-            reg = <0xe6198000 0x100>,
-                  <0xe61a0000 0x100>,
-                  <0xe61a8000 0x100>;
-            interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
-            clocks = <&cpg CPG_MOD 522>;
-            power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
-            resets = <&cpg 522>;
-            #thermal-sensor-cells = <1>;
+        compatible = "renesas,r8a7795-thermal";
+        reg = <0xe6198000 0x100>,
+              <0xe61a0000 0x100>,
+              <0xe61a8000 0x100>;
+        interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
+                     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&cpg CPG_MOD 522>;
+        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+        resets = <&cpg 522>;
+        #thermal-sensor-cells = <1>;
     };
 
     thermal-zones {
-            sensor_thermal: sensor-thermal {
-                    polling-delay-passive = <250>;
-                    polling-delay = <1000>;
-                    thermal-sensors = <&tsc 0>;
-
-                    trips {
-                            sensor1_crit: sensor1-crit {
-                                    temperature = <90000>;
-                                    hysteresis = <2000>;
-                                    type = "critical";
-                            };
-                    };
+        sensor_thermal: sensor-thermal {
+            polling-delay-passive = <250>;
+            polling-delay = <1000>;
+            thermal-sensors = <&tsc 0>;
+
+            trips {
+                sensor1_crit: sensor1-crit {
+                    temperature = <90000>;
+                    hysteresis = <2000>;
+                    type = "critical";
+                };
             };
+        };
     };
   - |
     #include <dt-bindings/clock/r8a779a0-cpg-mssr.h>
@@ -139,14 +140,14 @@ examples:
     #include <dt-bindings/power/r8a779a0-sysc.h>
 
     tsc_r8a779a0: thermal@e6190000 {
-            compatible = "renesas,r8a779a0-thermal";
-            reg = <0xe6190000 0x200>,
-                  <0xe6198000 0x200>,
-                  <0xe61a0000 0x200>,
-                  <0xe61a8000 0x200>,
-                  <0xe61b0000 0x200>;
-            clocks = <&cpg CPG_MOD 919>;
-            power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
-            resets = <&cpg 919>;
-            #thermal-sensor-cells = <1>;
+        compatible = "renesas,r8a779a0-thermal";
+        reg = <0xe6190000 0x200>,
+              <0xe6198000 0x200>,
+              <0xe61a0000 0x200>,
+              <0xe61a8000 0x200>,
+              <0xe61b0000 0x200>;
+        clocks = <&cpg CPG_MOD 919>;
+        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+        resets = <&cpg 919>;
+        #thermal-sensor-cells = <1>;
     };
index 119998d10ff418369c7e1d2ea22cc6cf5551422d..221a58d18cad1ea7b91ae8f34ed9728eba715f47 100644 (file)
@@ -98,8 +98,8 @@ examples:
   # Example (non interrupt support)
   - |
     thermal@ffc48000 {
-            compatible = "renesas,thermal-r8a7779", "renesas,rcar-thermal";
-            reg = <0xffc48000 0x38>;
+        compatible = "renesas,thermal-r8a7779", "renesas,rcar-thermal";
+        reg = <0xffc48000 0x38>;
     };
 
   # Example (interrupt support)
@@ -109,12 +109,12 @@ examples:
     #include <dt-bindings/interrupt-controller/irq.h>
 
     thermal@e61f0000 {
-            compatible = "renesas,thermal-r8a73a4", "renesas,rcar-thermal";
-            reg = <0xe61f0000 0x14>, <0xe61f0100 0x38>,
-                  <0xe61f0200 0x38>, <0xe61f0300 0x38>;
-            interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
-            clocks = <&mstp5_clks R8A73A4_CLK_THERMAL>;
-            power-domains = <&pd_c5>;
+        compatible = "renesas,thermal-r8a73a4", "renesas,rcar-thermal";
+        reg = <0xe61f0000 0x14>, <0xe61f0100 0x38>,
+              <0xe61f0200 0x38>, <0xe61f0300 0x38>;
+        interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&mstp5_clks R8A73A4_CLK_THERMAL>;
+        power-domains = <&pd_c5>;
     };
 
   # Example (with thermal-zone)
@@ -124,32 +124,32 @@ examples:
     #include <dt-bindings/power/r8a7790-sysc.h>
 
     thermal: thermal@e61f0000 {
-      compatible = "renesas,thermal-r8a7790",
-                   "renesas,rcar-gen2-thermal",
-                   "renesas,rcar-thermal";
-            reg = <0xe61f0000 0x10>, <0xe61f0100 0x38>;
-            interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
-            clocks = <&cpg CPG_MOD 522>;
-            power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
-            resets = <&cpg 522>;
-            #thermal-sensor-cells = <0>;
+        compatible = "renesas,thermal-r8a7790",
+                     "renesas,rcar-gen2-thermal",
+                     "renesas,rcar-thermal";
+        reg = <0xe61f0000 0x10>, <0xe61f0100 0x38>;
+        interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&cpg CPG_MOD 522>;
+        power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
+        resets = <&cpg 522>;
+        #thermal-sensor-cells = <0>;
     };
 
     thermal-zones {
-            cpu_thermal: cpu-thermal {
-                    polling-delay-passive = <1000>;
-                    polling-delay = <5000>;
-
-                    thermal-sensors = <&thermal>;
-
-                    trips {
-                            cpu-crit {
-                                    temperature = <115000>;
-                                    hysteresis = <0>;
-                                    type = "critical";
-                            };
-                    };
-                    cooling-maps {
-                    };
+        cpu_thermal: cpu-thermal {
+            polling-delay-passive = <1000>;
+            polling-delay = <5000>;
+
+            thermal-sensors = <&thermal>;
+
+            trips {
+                cpu-crit {
+                    temperature = <115000>;
+                    hysteresis = <0>;
+                    type = "critical";
+                };
             };
+            cooling-maps {
+            };
+        };
     };
index 55f8ec0bec0133c6fed255ae084a0e06e842487c..b717ea8261ca24ebaf709f410ec6372de1366b8a 100644 (file)
@@ -9,6 +9,8 @@ title: Temperature Sensor ADC (TSADC) on Rockchip SoCs
 maintainers:
   - Heiko Stuebner <heiko@sntech.de>
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     enum:
@@ -76,9 +78,8 @@ required:
   - clocks
   - clock-names
   - resets
-  - "#thermal-sensor-cells"
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 03f4b926e53c96b253c8c75446e8f9f336e6f516..136589f5adee2039dfac65e1242fd3d9cfa9816b 100644 (file)
@@ -13,6 +13,8 @@ description:
 maintainers:
   - Biju Das <biju.das.jz@bp.renesas.com>
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     items:
@@ -43,36 +45,35 @@ required:
   - clocks
   - power-domains
   - resets
-  - "#thermal-sensor-cells"
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
     #include <dt-bindings/clock/r9a07g044-cpg.h>
 
     tsu: thermal@10059400 {
-            compatible = "renesas,r9a07g044-tsu",
-                         "renesas,rzg2l-tsu";
-            reg = <0x10059400 0x400>;
-            clocks = <&cpg CPG_MOD R9A07G044_TSU_PCLK>;
-            resets = <&cpg R9A07G044_TSU_PRESETN>;
-            power-domains = <&cpg>;
-            #thermal-sensor-cells = <1>;
+        compatible = "renesas,r9a07g044-tsu",
+                     "renesas,rzg2l-tsu";
+        reg = <0x10059400 0x400>;
+        clocks = <&cpg CPG_MOD R9A07G044_TSU_PCLK>;
+        resets = <&cpg R9A07G044_TSU_PRESETN>;
+        power-domains = <&cpg>;
+        #thermal-sensor-cells = <1>;
     };
 
     thermal-zones {
-            cpu-thermal {
-                    polling-delay-passive = <250>;
-                    polling-delay = <1000>;
-                    thermal-sensors = <&tsu 0>;
-
-                    trips {
-                            sensor_crit: sensor-crit {
-                                    temperature = <125000>;
-                                    hysteresis = <1000>;
-                                    type = "critical";
-                            };
-                    };
+        cpu-thermal {
+            polling-delay-passive = <250>;
+            polling-delay = <1000>;
+            thermal-sensors = <&tsu 0>;
+
+            trips {
+                sensor_crit: sensor-crit {
+                    temperature = <125000>;
+                    hysteresis = <1000>;
+                    type = "critical";
+                };
             };
+        };
     };
index 1344df708e2d290accd1fd52bf011a01ef03fd62..29a08b0729eee8b7fbecdd3778e32719d41b7aea 100644 (file)
@@ -61,7 +61,8 @@ properties:
           TRIMINFO at 0x10068000 contains data for TMU channel 2
     minItems: 1
 
-  '#thermal-sensor-cells': true
+  '#thermal-sensor-cells':
+    const: 0
 
   vtmu-supply:
     description: The regulator node supplying voltage to TMU.
index 6f975821fa5efc4a26a46c01c21e6284f205b049..8210b7079721162ec52ef5127f43f32d056c4bd8 100644 (file)
@@ -14,6 +14,8 @@ description: |
 maintainers:
   - Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     enum:
@@ -38,9 +40,8 @@ properties:
 required:
   - compatible
   - interrupts
-  - "#thermal-sensor-cells"
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 76aaa004c8ac5c7cac106b52d8327fec0e42b91b..afa551f6185ff6d3552f1c2d059f68c8fdea74cb 100644 (file)
@@ -11,6 +11,8 @@ maintainers:
   - Baolin Wang <baolin.wang7@gmail.com>
   - Chunyan Zhang <zhang.lyra@gmail.com>
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     const: sprd,ums512-thermal
@@ -77,35 +79,34 @@ required:
   - clock-names
   - nvmem-cells
   - nvmem-cell-names
-  - "#thermal-sensor-cells"
   - "#address-cells"
   - "#size-cells"
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
-        ap_thm0: thermal@32200000 {
-                compatible = "sprd,ums512-thermal";
-                reg = <0x32200000 0x10000>;
-                clock-names = "enable";
-                clocks = <&aonapb_gate 32>;
-                #thermal-sensor-cells = <1>;
-                nvmem-cells = <&thm0_sign>, <&thm0_ratio>;
-                nvmem-cell-names = "thm_sign_cal", "thm_ratio_cal";
-                #address-cells = <1>;
-                #size-cells = <0>;
-
-                prometheus-sensor@0 {
-                        reg = <0>;
-                        nvmem-cells = <&thm0_sen0>;
-                        nvmem-cell-names = "sen_delta_cal";
-                };
-
-                ank-sensor@1 {
-                        reg = <1>;
-                        nvmem-cells = <&thm0_sen1>;
-                        nvmem-cell-names = "sen_delta_cal";
-                };
+    thermal@32200000 {
+        compatible = "sprd,ums512-thermal";
+        reg = <0x32200000 0x10000>;
+        clock-names = "enable";
+        clocks = <&aonapb_gate 32>;
+        #thermal-sensor-cells = <1>;
+        nvmem-cells = <&thm0_sign>, <&thm0_ratio>;
+        nvmem-cell-names = "thm_sign_cal", "thm_ratio_cal";
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        prometheus-sensor@0 {
+            reg = <0>;
+            nvmem-cells = <&thm0_sen0>;
+            nvmem-cell-names = "sen_delta_cal";
+        };
+
+        ank-sensor@1 {
+            reg = <1>;
+            nvmem-cells = <&thm0_sen1>;
+            nvmem-cell-names = "sen_delta_cal";
         };
+    };
 ...
index ab043084f6678b2123e144574da81fbfe660eda9..1c01a80a0cdde248305e879f987901f47ef909b9 100644 (file)
@@ -9,6 +9,8 @@ title: STMicroelectronics STM32 digital thermal sensor (DTS)
 maintainers:
   - Pascal Paillet <p.paillet@foss.st.com>
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     const: st,stm32-thermal
@@ -30,14 +32,13 @@ properties:
     const: 0
 
 required:
-  - "#thermal-sensor-cells"
   - compatible
   - reg
   - interrupts
   - clocks
   - clock-names
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
index 68398e7e8655657f77eb7b186137af522d675fd6..0f435be1dbd8cfb4502be9d198ed6d51058f453b 100644 (file)
@@ -49,7 +49,10 @@ properties:
       to take when the temperature crosses those thresholds.
 
 patternProperties:
-  "^[a-zA-Z][a-zA-Z0-9\\-]{1,12}-thermal$":
+  # Node name is limited in size due to Linux kernel requirements - 19
+  # characters in total (see THERMAL_NAME_LENGTH, including terminating NUL
+  # byte):
+  "^[a-zA-Z][a-zA-Z0-9\\-]{1,10}-thermal$":
     type: object
     description:
       Each thermal zone node contains information about how frequently it
@@ -229,7 +232,6 @@ patternProperties:
 
     required:
       - thermal-sensors
-      - trips
 
     additionalProperties: false
 
index 7ed0abe9290f66d993a64aacbbc6c032f572205c..c123d907052542f22f050216049d04a5979a7ab0 100644 (file)
@@ -9,6 +9,8 @@ title: Texas Instruments AM654 VTM (DTS)
 maintainers:
   - Keerthy <j-keerthy@ti.com>
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     const: ti,am654-vtm
@@ -26,9 +28,8 @@ required:
   - compatible
   - reg
   - power-domains
-  - "#thermal-sensor-cells"
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
@@ -46,11 +47,11 @@ examples:
         thermal-sensors = <&vtm0 0>;
 
         trips {
-                mpu0_crit: mpu0_crit {
-                        temperature = <125000>; /* milliCelsius */
-                        hysteresis = <2000>; /* milliCelsius */
-                        type = "critical";
-                };
+            mpu0_crit: mpu0_crit {
+                temperature = <125000>; /* milliCelsius */
+                hysteresis = <2000>; /* milliCelsius */
+                type = "critical";
+            };
         };
     };
 ...
index 171b3622ed847533ae7d1d527554be0276def8f5..82b77b9795a395c879cf87c3a6ad82e65197f14e 100644 (file)
@@ -22,6 +22,8 @@ description: |
   Temp(C) = (-9.2627e-12) * x^4 + (6.0373e-08) * x^3 + \
             (-1.7058e-04) * x^2 + (3.2512e-01) * x   + (-4.9003e+01)
 
+$ref: thermal-sensor.yaml#
+
 properties:
   compatible:
     enum:
@@ -64,9 +66,8 @@ required:
   - compatible
   - reg
   - power-domains
-  - "#thermal-sensor-cells"
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
diff --git a/Bindings/timer/realtek,otto-timer.yaml b/Bindings/timer/realtek,otto-timer.yaml
new file mode 100644 (file)
index 0000000..7b6ec2c
--- /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/timer/realtek,otto-timer.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Realtek Otto SoCs Timer/Counter
+
+description:
+  Realtek SoCs support a number of timers/counters. These are used
+  as a per CPU clock event generator and an overall CPU clocksource.
+
+maintainers:
+  - Chris Packham <chris.packham@alliedtelesis.co.nz>
+
+properties:
+  $nodename:
+    pattern: "^timer@[0-9a-f]+$"
+
+  compatible:
+    items:
+      - enum:
+          - realtek,rtl9302-timer
+      - const: realtek,otto-timer
+
+  reg:
+    items:
+      - description: timer0 registers
+      - description: timer1 registers
+      - description: timer2 registers
+      - description: timer3 registers
+      - description: timer4 registers
+
+  clocks:
+    maxItems: 1
+
+  interrupts:
+    items:
+      - description: timer0 interrupt
+      - description: timer1 interrupt
+      - description: timer2 interrupt
+      - description: timer3 interrupt
+      - description: timer4 interrupt
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    timer@3200 {
+      compatible = "realtek,rtl9302-timer", "realtek,otto-timer";
+      reg = <0x3200 0x10>, <0x3210 0x10>, <0x3220 0x10>,
+            <0x3230 0x10>, <0x3240 0x10>;
+
+      interrupt-parent = <&intc>;
+      interrupts = <7>, <8>, <9>, <10>, <11>;
+      clocks = <&lx_clk>;
+    };
index 360a5cf1ae9c7462c0e927f151eeff3e04cd8dbd..75b0e7c70b62c89f458bc268ebcce16680e40ec2 100644 (file)
@@ -21,13 +21,24 @@ properties:
   compatible:
     items:
       - enum:
+          - renesas,tmu-r8a73a4  # R-Mobile APE6
           - renesas,tmu-r8a7740  # R-Mobile A1
+          - renesas,tmu-r8a7742  # RZ/G1H
+          - renesas,tmu-r8a7743  # RZ/G1M
+          - renesas,tmu-r8a7744  # RZ/G1N
+          - renesas,tmu-r8a7745  # RZ/G1E
+          - renesas,tmu-r8a77470 # RZ/G1C
           - renesas,tmu-r8a774a1 # RZ/G2M
           - renesas,tmu-r8a774b1 # RZ/G2N
           - renesas,tmu-r8a774c0 # RZ/G2E
           - renesas,tmu-r8a774e1 # RZ/G2H
           - renesas,tmu-r8a7778  # R-Car M1A
           - renesas,tmu-r8a7779  # R-Car H1
+          - renesas,tmu-r8a7790  # R-Car H2
+          - renesas,tmu-r8a7791  # R-Car M2-W
+          - renesas,tmu-r8a7792  # R-Car V2H
+          - renesas,tmu-r8a7793  # R-Car M2-N
+          - renesas,tmu-r8a7794  # R-Car E2
           - renesas,tmu-r8a7795  # R-Car H3
           - renesas,tmu-r8a7796  # R-Car M3-W
           - renesas,tmu-r8a77961 # R-Car M3-W+
@@ -84,6 +95,7 @@ required:
   - compatible
   - reg
   - interrupts
+  - interrupt-names
   - clocks
   - clock-names
   - power-domains
@@ -94,6 +106,7 @@ if:
       compatible:
         contains:
           enum:
+            - renesas,tmu-r8a73a4
             - renesas,tmu-r8a7740
             - renesas,tmu-r8a7778
             - renesas,tmu-r8a7779
index fced6f2d8ecbb35955e3800f19d58980b792a764..b42d43d2de488f6db2a6e320c6b0524825171c06 100644 (file)
@@ -40,6 +40,7 @@ properties:
               - allwinner,sun20i-d1-clint
               - sophgo,cv1800b-clint
               - sophgo,cv1812h-clint
+              - sophgo,sg2002-clint
               - thead,th1520-clint
           - const: thead,c900-clint
       - items:
diff --git a/Bindings/timer/sprd,sc9860-timer.yaml b/Bindings/timer/sprd,sc9860-timer.yaml
new file mode 100644 (file)
index 0000000..62c6da8
--- /dev/null
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/timer/sprd,sc9860-timer.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Spreadtrum SC9860 timer
+
+maintainers:
+  - Orson Zhai <orsonzhai@gmail.com>
+  - Baolin Wang <baolin.wang7@gmail.com>
+  - Chunyan Zhang <zhang.lyra@gmail.com>
+
+description:
+  The Spreadtrum SC9860 platform provides 3 general-purpose timers.
+  These timers can support 32bit or 64bit counter, as well as supporting
+  period mode or one-shot mode, and they can be a wakeup source
+  during deep sleep.
+
+properties:
+  compatible:
+    enum:
+      - sprd,sc9860-timer
+      - sprd,sc9860-suspend-timer
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: sprd,sc9860-timer
+    then:
+      required:
+        - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    soc {
+      #address-cells = <2>;
+      #size-cells = <2>;
+
+      timer@40050000 {
+        compatible = "sprd,sc9860-timer";
+        reg = <0 0x40050000 0 0x20>;
+        interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+        clocks = <&ext_32k>;
+      };
+    };
+...
diff --git a/Bindings/timer/spreadtrum,sprd-timer.txt b/Bindings/timer/spreadtrum,sprd-timer.txt
deleted file mode 100644 (file)
index 6d97e7d..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-Spreadtrum timers
-
-The Spreadtrum SC9860 platform provides 3 general-purpose timers.
-These timers can support 32bit or 64bit counter, as well as supporting
-period mode or one-shot mode, and they are can be wakeup source
-during deep sleep.
-
-Required properties:
-- compatible: should be "sprd,sc9860-timer" for SC9860 platform.
-- reg: The register address of the timer device.
-- interrupts: Should contain the interrupt for the timer device.
-- clocks: The phandle to the source clock (usually a 32.768 KHz fixed clock).
-
-Example:
-       timer@40050000 {
-               compatible = "sprd,sc9860-timer";
-               reg = <0 0x40050000 0 0x20>;
-               interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&ext_32k>;
-       };
index 0a419453d183292d76ada29739c6b603eb0bd5d3..7913ca9b6b54020c58e387b3618922386ce03763 100644 (file)
@@ -168,6 +168,8 @@ properties:
           - isil,isl69269
             # Intersil ISL76682 Ambient Light Sensor
           - isil,isl76682
+            # JEDEC JESD300 (SPD5118) Hub and Serial Presence Detect
+          - jedec,spd5118
             # Linear Technology LTC2488
           - lineartechnology,ltc2488
             # 5 Bit Programmable, Pulse-Width Modulator
@@ -286,14 +288,22 @@ properties:
           - mps,mp2857
             # Monolithic Power Systems Inc. multi-phase controller mp2888
           - mps,mp2888
+            # Monolithic Power Systems Inc. multi-phase controller mp2891
+          - mps,mp2891
             # Monolithic Power Systems Inc. multi-phase controller mp2971
           - mps,mp2971
             # Monolithic Power Systems Inc. multi-phase controller mp2973
           - mps,mp2973
             # Monolithic Power Systems Inc. multi-phase controller mp2975
           - mps,mp2975
+            # Monolithic Power Systems Inc. multi-phase controller mp2993
+          - mps,mp2993
+            # Monolithic Power Systems Inc. multi-phase hot-swap controller mp5920
+          - mps,mp5920
             # Monolithic Power Systems Inc. multi-phase hot-swap controller mp5990
           - mps,mp5990
+            # Monolithic Power Systems Inc. digital step-down converter mp9941
+          - mps,mp9941
             # Monolithic Power Systems Inc. synchronous step-down converter mpq8785
           - mps,mpq8785
             # Temperature sensor with integrated fan control
@@ -318,7 +328,9 @@ properties:
           - renesas,hs3001
             # Renesas ISL29501 time-of-flight sensor
           - renesas,isl29501
-            # Rohm DH2228FV
+            # Rohm BH2228FV 8 channel DAC
+          - rohm,bh2228fv
+            # Rohm DH2228FV - This device does not exist, use rohm,bh2228fv instead.
           - rohm,dh2228fv
             # S524AD0XF1 (128K/256K-bit Serial EEPROM for Low Power)
           - samsung,24ad0xd1
@@ -354,6 +366,8 @@ properties:
           - sparkfun,qwiic-joystick
             # i2c serial eeprom (24cxx)
           - st,24c256
+            # Sierra Wireless mangOH Green SPI IoT interface
+          - swir,mangoh-iotport-spi
             # Ambient Light Sensor with SMBUS/Two Wire Serial Interface
           - taos,tsl2550
             # Temperature Monitoring and Fan Control
index cd3680dc002f961f0bb95164b98e08279a755a41..25a5edeea164592944cb9ce36b1559cd3cf52e87 100644 (file)
@@ -46,11 +46,11 @@ properties:
 
   clocks:
     minItems: 7
-    maxItems: 11
+    maxItems: 9
 
   clock-names:
     minItems: 7
-    maxItems: 11
+    maxItems: 9
 
   dma-coherent: true
 
@@ -217,16 +217,14 @@ allOf:
     then:
       properties:
         clocks:
-          minItems: 11
-          maxItems: 11
+          minItems: 9
+          maxItems: 9
         clock-names:
           items:
-            - const: core_clk_src
             - const: core_clk
             - const: bus_clk
             - const: bus_aggr_clk
             - const: iface_clk
-            - const: core_clk_unipro_src
             - const: core_clk_unipro
             - const: core_clk_ice
             - const: ref_clk
@@ -287,7 +285,7 @@ allOf:
           maxItems: 2
         clocks:
           minItems: 7
-          maxItems: 11
+          maxItems: 9
 
 unevaluatedProperties: false
 
index 69a93a0722f07f5c45ec6d5f817eed79231463ab..f454ddd9bbaa6268b21f465ff607d4546e60bf01 100644 (file)
@@ -42,8 +42,11 @@ properties:
       - const: otg
       - const: wakeup
 
-  dr_mode:
-    enum: [host, otg, peripheral]
+  port:
+    $ref: /schemas/graph.yaml#/properties/port
+    description:
+      This port is used with the 'usb-role-switch' property to connect the
+      cdns3 to type C connector.
 
   maximum-speed:
     enum: [super-speed, high-speed, full-speed]
@@ -70,6 +73,9 @@ properties:
     description: Enable resetting of PHY if Rx fail is detected
     type: boolean
 
+dependencies:
+  port: [ usb-role-switch ]
+
 required:
   - compatible
   - reg
@@ -77,7 +83,10 @@ required:
   - interrupts
   - interrupt-names
 
-additionalProperties: false
+allOf:
+  - $ref: usb-drd.yaml#
+
+unevaluatedProperties: false
 
 examples:
   - |
index 4f36a22aa6d7292d609d9a84472df1b0a7cc692c..a5f2e3442a0ebf88bc6be1cb7ec3d8f29698022a 100644 (file)
@@ -188,7 +188,7 @@ required:
   - clocks
   - clock-names
 
-additionalProperties: false
+unevaluatedProperties: false
 
 examples:
   - |
diff --git a/Bindings/usb/fsl,usb2.yaml b/Bindings/usb/fsl,usb2.yaml
new file mode 100644 (file)
index 0000000..caedf11
--- /dev/null
@@ -0,0 +1,95 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/fsl,usb2.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Freescale SOC USB controllers
+
+maintainers:
+  - Frank Li <Frank.Li@nxp.com>
+
+description: |
+  The device node for a USB controller that is part of a Freescale
+  SOC is as described in the document "Open Firmware Recommended
+  Practice: Universal Serial Bus" with the following modifications
+  and additions.
+
+properties:
+  compatible:
+    oneOf:
+      - enum:
+          - fsl-usb2-mph
+          - fsl-usb2-dr
+      - items:
+          - enum:
+              - fsl-usb2-dr-v2.2
+              - fsl-usb2-dr-v2.5
+          - const: fsl-usb2-dr
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  phy_type:
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [ulpi, serial, utmi, utmi_wide]
+
+  port0:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Indicates port0 is connected for fsl-usb2-mph compatible controllers.
+
+  port1:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Indicates port1 is connected for "fsl-usb2-mph" compatible controllers.
+
+  fsl,invert-drvvbus:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      for MPC5121 USB0 only. Indicates the
+      port power polarity of internal PHY signal DRVVBUS is inverted.
+
+  fsl,invert-pwr-fault:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      for MPC5121 USB0 only. Indicates
+      the PWR_FAULT signal polarity is inverted.
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - phy_type
+
+allOf:
+  - $ref: usb-drd.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    usb@22000 {
+        compatible = "fsl-usb2-mph";
+        reg = <22000 1000>;
+        interrupts = <27 IRQ_TYPE_EDGE_RISING>;
+        phy_type = "ulpi";
+        port0;
+        port1;
+    };
+
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    usb@23000 {
+        compatible = "fsl-usb2-dr";
+        reg = <23000 1000>;
+        interrupts = <26 IRQ_TYPE_EDGE_RISING>;
+        dr_mode = "otg";
+        phy_type = "ulpi";
+    };
diff --git a/Bindings/usb/fsl-usb.txt b/Bindings/usb/fsl-usb.txt
deleted file mode 100644 (file)
index 0b08b00..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-Freescale SOC USB controllers
-
-The device node for a USB controller that is part of a Freescale
-SOC is as described in the document "Open Firmware Recommended
-Practice : Universal Serial Bus" with the following modifications
-and additions :
-
-Required properties :
- - compatible : Should be "fsl-usb2-mph" for multi port host USB
-   controllers, or "fsl-usb2-dr" for dual role USB controllers
-   or "fsl,mpc5121-usb2-dr" for dual role USB controllers of MPC5121.
-   Wherever applicable, the IP version of the USB controller should
-   also be mentioned (for eg. fsl-usb2-dr-v2.2 for bsc9132).
- - phy_type : For multi port host USB controllers, should be one of
-   "ulpi", or "serial". For dual role USB controllers, should be
-   one of "ulpi", "utmi", "utmi_wide", or "serial".
- - reg : Offset and length of the register set for the device
- - port0 : boolean; if defined, indicates port0 is connected for
-   fsl-usb2-mph compatible controllers.  Either this property or
-   "port1" (or both) must be defined for "fsl-usb2-mph" compatible
-   controllers.
- - port1 : boolean; if defined, indicates port1 is connected for
-   fsl-usb2-mph compatible controllers.  Either this property or
-   "port0" (or both) must be defined for "fsl-usb2-mph" compatible
-   controllers.
- - dr_mode : indicates the working mode for "fsl-usb2-dr" compatible
-   controllers.  Can be "host", "peripheral", or "otg".  Default to
-   "host" if not defined for backward compatibility.
-
-Recommended properties :
- - interrupts : <a b> where a is the interrupt number and b is a
-   field that represents an encoding of the sense and level
-   information for the interrupt.  This should be encoded based on
-   the information in section 2) depending on the type of interrupt
-   controller you have.
-
-Optional properties :
- - fsl,invert-drvvbus : boolean; for MPC5121 USB0 only. Indicates the
-   port power polarity of internal PHY signal DRVVBUS is inverted.
- - fsl,invert-pwr-fault : boolean; for MPC5121 USB0 only. Indicates
-   the PWR_FAULT signal polarity is inverted.
-
-Example multi port host USB controller device node :
-       usb@22000 {
-               compatible = "fsl-usb2-mph";
-               reg = <22000 1000>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupt-parent = <700>;
-               interrupts = <27 1>;
-               phy_type = "ulpi";
-               port0;
-               port1;
-       };
-
-Example dual role USB controller device node :
-       usb@23000 {
-               compatible = "fsl-usb2-dr";
-               reg = <23000 1000>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupt-parent = <700>;
-               interrupts = <26 1>;
-               dr_mode = "otg";
-               phy = "ulpi";
-       };
-
-Example dual role USB controller device node for MPC5121ADS:
-
-       usb@4000 {
-               compatible = "fsl,mpc5121-usb2-dr";
-               reg = <0x4000 0x1000>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interrupt-parent = < &ipic >;
-               interrupts = <44 0x8>;
-               dr_mode = "otg";
-               phy_type = "utmi_wide";
-               fsl,invert-drvvbus;
-               fsl,invert-pwr-fault;
-       };
index 37cf5249e526bb8ebce78d12ba228b3f460e218c..fc833363cfb4925828ccfd7c136001ec15b7bf59 100644 (file)
@@ -9,9 +9,6 @@ title: Genesys Logic USB hub controller
 maintainers:
   - Icenowy Zheng <uwu@icenowy.me>
 
-allOf:
-  - $ref: usb-device.yaml#
-
 properties:
   compatible:
     enum:
@@ -27,17 +24,44 @@ properties:
 
   vdd-supply:
     description:
-      the regulator that provides 3.3V core power to the hub.
+      The regulator that provides 3.3V or 5.0V core power to the hub.
 
   peer-hub:
     $ref: /schemas/types.yaml#/definitions/phandle
     description:
-      phandle to the peer hub on the controller.
+      For onboard hub controllers that support USB 3.x and USB 2.0 hubs
+      with shared resets and power supplies, this property is used to identify
+      the hubs with which these are shared.
 
 required:
   - compatible
   - reg
 
+allOf:
+  - $ref: usb-device.yaml#
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - usb5e3,608
+    then:
+      properties:
+        peer-hub: false
+        vdd-supply: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - usb5e3,610
+              - usb5e3,620
+    then:
+      properties:
+        peer-hub: true
+        vdd-supply: true
+
 additionalProperties: false
 
 examples:
@@ -54,3 +78,29 @@ examples:
             reset-gpios = <&pio 7 2 GPIO_ACTIVE_LOW>;
         };
     };
+
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    usb {
+        dr_mode = "host";
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        /* 2.0 hub on port 1 */
+        hub_2_0: hub@1 {
+            compatible = "usb5e3,610";
+            reg = <1>;
+            peer-hub = <&hub_3_0>;
+            reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+            vdd-supply = <&vcc_5v>;
+        };
+
+        /* 3.1 hub on port 4 */
+        hub_3_0: hub@2 {
+            compatible = "usb5e3,620";
+            reg = <2>;
+            peer-hub = <&hub_2_0>;
+            reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
+            vdd-supply = <&vcc_5v>;
+        };
+    };
index 88e1607cf053ac11ae7bf76ea13f09ad4b15c7da..8a5f837eff94b27bbd55bfe45f8d1156e3d183eb 100644 (file)
@@ -22,6 +22,7 @@ properties:
           - nxp,cbdtu02043
           - onnn,fsusb43l10x
           - pericom,pi3usb102
+          - ti,tmuxhs4212
       - const: gpio-sbu-mux
 
   enable-gpios:
@@ -44,13 +45,18 @@ properties:
 
 required:
   - compatible
-  - enable-gpios
   - select-gpios
   - orientation-switch
   - port
 
 allOf:
   - $ref: usb-switch.yaml#
+  - if:
+      required:
+        - mode-switch
+    then:
+      required:
+        - enable-gpios
 
 additionalProperties: false
 
index c5e9ce2e7bc2a3a8a98216e7e633ed995c0645a6..27b909de49922f76eb4dae5a558e8d35fbc01a85 100644 (file)
@@ -34,6 +34,13 @@ properties:
   clocks:
     maxItems: 1
 
+  microchip,ext-vbus-drv:
+    description:
+      Some ULPI USB PHYs do not support an internal VBUS supply and driving
+      the CPEN pin requires the configuration of the UPLI_USE__EXTVBUS
+      bit in ULPI_BUSCONTROL.
+    $ref: /schemas/types.yaml#/definitions/flag
+
 required:
   - compatible
   - reg
index 783c27591e564c7b8020d0be5c603f557661cda7..b14e6f37b2987c40b6ed26dc759064cf021ff4f9 100644 (file)
@@ -10,7 +10,7 @@ maintainers:
   - Fabio Estevam <festevam@gmail.com>
 
 allOf:
-  - $ref: usb-hcd.yaml#
+  - $ref: usb-device.yaml#
 
 properties:
   compatible:
@@ -18,6 +18,7 @@ properties:
       - usb424,2412
       - usb424,2417
       - usb424,2514
+      - usb424,2517
 
   reg: true
 
@@ -35,6 +36,13 @@ required:
   - compatible
   - reg
 
+patternProperties:
+  "^.*@[0-9a-f]{1,2}$":
+    description: The hard wired USB devices
+    type: object
+    $ref: /schemas/usb/usb-device.yaml
+    additionalProperties: true
+
 unevaluatedProperties: false
 
 examples:
index cf633d488c3f261f3cbe1e9120d5326840fcace1..efde47a5b145565d1bd6cbe1d96196ce873fef77 100644 (file)
@@ -30,6 +30,8 @@ properties:
           - qcom,sa8775p-dwc3
           - qcom,sc7180-dwc3
           - qcom,sc7280-dwc3
+          - qcom,sc8180x-dwc3
+          - qcom,sc8180x-dwc3-mp
           - qcom,sc8280xp-dwc3
           - qcom,sc8280xp-dwc3-mp
           - qcom,sdm660-dwc3
@@ -334,6 +336,8 @@ allOf:
           contains:
             enum:
               - qcom,qcm2290-dwc3
+              - qcom,sc8180x-dwc3
+              - qcom,sc8180x-dwc3-mp
               - qcom,sm6115-dwc3
               - qcom,sm6125-dwc3
               - qcom,sm8150-dwc3
@@ -448,6 +452,7 @@ allOf:
               - qcom,sa8775p-dwc3
               - qcom,sc7180-dwc3
               - qcom,sc7280-dwc3
+              - qcom,sc8180x-dwc3
               - qcom,sc8280xp-dwc3
               - qcom,sdm670-dwc3
               - qcom,sdm845-dwc3
@@ -475,6 +480,30 @@ allOf:
             - const: dm_hs_phy_irq
             - const: ss_phy_irq
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sc8180x-dwc3-mp
+    then:
+      properties:
+        interrupts:
+          minItems: 10
+          maxItems: 10
+        interrupt-names:
+          items:
+            - const: pwr_event_1
+            - const: pwr_event_2
+            - const: hs_phy_1
+            - const: hs_phy_2
+            - const: dp_hs_phy_1
+            - const: dm_hs_phy_1
+            - const: dp_hs_phy_2
+            - const: dm_hs_phy_2
+            - const: ss_phy_1
+            - const: ss_phy_2
+
   - if:
       properties:
         compatible:
index fbf47f0bacf1ae3f4f20013278008e0ca2ddd485..a70ce43b3dc032027172b1ed3611b5ff08d16af8 100644 (file)
@@ -246,6 +246,8 @@ patternProperties:
     description: CALAO Systems SAS
   "^calxeda,.*":
     description: Calxeda
+  "^cameo,.*":
+    description: Cameo Communications, Inc
   "^canaan,.*":
     description: Canaan, Inc.
   "^caninos,.*":
@@ -338,6 +340,8 @@ patternProperties:
     description: Czech Technical University in Prague
   "^cubietech,.*":
     description: Cubietech, Ltd.
+  "^cudy,.*":
+    description: Shenzhen Cudy Technology Co., Ltd.
   "^cui,.*":
     description: CUI Devices
   "^cypress,.*":
@@ -394,6 +398,8 @@ patternProperties:
     description: DPTechnics
   "^dragino,.*":
     description: Dragino Technology Co., Limited
+  "^dream,.*":
+    description: Dream Property GmbH
   "^ds,.*":
     description: DaSheng, Inc.
   "^dserve,.*":
@@ -820,6 +826,8 @@ patternProperties:
     description: Lichee Pi
   "^linaro,.*":
     description: Linaro Limited
+  "^lincolntech,.*":
+    description: Lincoln Technology Solutions
   "^lineartechnology,.*":
     description: Linear Technology
   "^linksprite,.*":
@@ -924,6 +932,8 @@ patternProperties:
     description: Microsoft Corporation
   "^microsys,.*":
     description: MicroSys Electronics GmbH
+  "^microtips,.*":
+    description: Microtips Technology USA
   "^mikroe,.*":
     description: MikroElektronika d.o.o.
   "^mikrotik,.*":
@@ -995,6 +1005,8 @@ patternProperties:
     description: MYIR Tech Limited
   "^national,.*":
     description: National Semiconductor
+  "^neardi,.*":
+    description: Shanghai Neardi Technology Co., Ltd.
   "^nec,.*":
     description: NEC LCD Technologies, Ltd.
   "^neonode,.*":
@@ -1082,6 +1094,8 @@ patternProperties:
     description: OpenPandora GmbH
   "^openrisc,.*":
     description: OpenRISC.io
+  "^openwrt,.*":
+    description: OpenWrt
   "^option,.*":
     description: Option NV
   "^oranth,.*":
@@ -1160,6 +1174,8 @@ patternProperties:
     description: PowerVR (deprecated, use img)
   "^powkiddy,.*":
     description: Powkiddy
+  "^primeview,.*":
+    description: Prime View International (PVI)
   "^primux,.*":
     description: Primux Trading, S.L.
   "^probox2,.*":
@@ -1254,6 +1270,10 @@ patternProperties:
     description: Smart Battery System
   "^schindler,.*":
     description: Schindler
+  "^schneider,.*":
+    description: Schneider Electric
+  "^sciosense,.*":
+    description: ScioSense B.V.
   "^seagate,.*":
     description: Seagate Technology PLC
   "^seeed,.*":
index 69845ec32e818bbd9ba43048c7a84fcafcbd49e0..d0eff1ea52b4f166de3b198daaa929551fd1375f 100644 (file)
@@ -21,6 +21,7 @@ properties:
           - amlogic,t7-wdt
       - items:
           - enum:
+              - amlogic,a4-wdt
               - amlogic,c3-wdt
               - amlogic,s4-wdt
           - const: amlogic,t7-wdt
index c8f69812059725b02bb0e21dd0f3607ceff7a6d1..64619ba08d40dfe0ddfa24298c3521853dec872c 100644 (file)
@@ -28,7 +28,7 @@ properties:
       Add this property to disable the watchdog during suspend.
       Only use this option if you can't use the watchdog automatic suspend
       function during a suspend (see register CONTROL_B).
-  
+
   dlg,wdt-sd:
     $ref: /schemas/types.yaml#/definitions/uint32
     enum: [0, 1]
index 181f0cc5b5bde2dfb5426169dc6d424d31032162..36b836d0620c9be49b3d5fbd39b08ad11600fb1c 100644 (file)
@@ -7,7 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale i.MX Watchdog Timer (WDT) Controller
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+  - Fabio Estevam <festevam@gmail.com>
 
 properties:
   compatible:
index 9c50766bf690fd0f6e4a5517edbd319502f10fad..a09686b3030db32bf70d3f817248182d07b042aa 100644 (file)
@@ -7,7 +7,9 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 title: Freescale i.MX7ULP Watchdog Timer (WDT) Controller
 
 maintainers:
-  - Anson Huang <Anson.Huang@nxp.com>
+  - Shawn Guo <shawnguo@kernel.org>
+  - Sascha Hauer <s.hauer@pengutronix.de>
+  - Fabio Estevam <festevam@gmail.com>
 
 allOf:
   - $ref: watchdog.yaml#
diff --git a/Bindings/watchdog/img,pdc-wdt.yaml b/Bindings/watchdog/img,pdc-wdt.yaml
new file mode 100644 (file)
index 0000000..a88a273
--- /dev/null
@@ -0,0 +1,55 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/watchdog/img,pdc-wdt.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ImgTec PowerDown Controller (PDC) Watchdog Timer (WDT)
+
+maintainers:
+  - Shresth Prasad <shresthprasad7@gmail.com>
+
+allOf:
+  - $ref: watchdog.yaml#
+
+properties:
+  compatible:
+    enum:
+      - img,pdc-wdt
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: watchdog counter clock
+      - description: register interface clock
+
+  clock-names:
+    items:
+      - const: wdt
+      - const: sys
+
+  interrupts:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - interrupts
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    watchdog@18102100 {
+      compatible = "img,pdc-wdt";
+      reg = <0x18102100 0x100>;
+      clocks = <&pdc_wdt_clk>, <&sys_clk>;
+      clock-names = "wdt", "sys";
+      interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
+    };
diff --git a/Bindings/watchdog/imgpdc-wdt.txt b/Bindings/watchdog/imgpdc-wdt.txt
deleted file mode 100644 (file)
index b2fa11f..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-*ImgTec PowerDown Controller (PDC) Watchdog Timer (WDT)
-
-Required properties:
-- compatible : Should be "img,pdc-wdt"
-- reg : Should contain WDT registers location and length
-- clocks: Must contain an entry for each entry in clock-names.
-- clock-names: Should contain "wdt" and "sys"; the watchdog counter
-               clock and register interface clock respectively.
-- interrupts : Should contain WDT interrupt
-
-Examples:
-
-watchdog@18102100 {
-       compatible = "img,pdc-wdt";
-       reg = <0x18102100 0x100>;
-       clocks = <&pdc_wdt_clk>, <&sys_clk>;
-       clock-names = "wdt", "sys";
-       interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
-};
index ffb17add491af98b703ac67a2c45830bec9e962b..eba454d1680f15eb0207c4869c10bb52bdfa45aa 100644 (file)
@@ -29,6 +29,7 @@ properties:
               - renesas,r9a07g043-wdt    # RZ/G2UL and RZ/Five
               - renesas,r9a07g044-wdt    # RZ/G2{L,LC}
               - renesas,r9a07g054-wdt    # RZ/V2L
+              - renesas,r9a08g045-wdt    # RZ/G3S
           - const: renesas,rzg2l-wdt
 
       - items:
index d040033dc8eea0530cd9ddf530a1f0d67679f6d2..d6c9e9472121d2020dccf43eccaddf1988e58738 100644 (file)
 #define QCOM_ID_SDA630                 327
 #define QCOM_ID_MSM8905                        331
 #define QCOM_ID_SDX202                 333
+#define QCOM_ID_SDM670                 336
 #define QCOM_ID_SDM450                 338
 #define QCOM_ID_SM8150                 339
 #define QCOM_ID_SDA845                 341
 #define QCOM_ID_QCS8550                        603
 #define QCOM_ID_QCM8550                        604
 #define QCOM_ID_IPQ5300                        624
+#define QCOM_ID_IPQ5321                        650
 
 /*
  * The board type and revision information, used by Qualcomm bootloaders and
index 06f198ee7623f6dc32c830949dd7cbc04da7613d..2ce1a06dc735201dbba61d08bcf7e66948647b7b 100644 (file)
 #define CLKID_DMC_SEL          151
 #define CLKID_DMC_DIV          152
 #define CLKID_DMC_SEL2         153
+#define CLKID_SYS_PLL_DIV16    154
 
 #endif /* __A1_PERIPHERALS_CLKC_H */
index 2b660c0f2c9f3742eb4b04834fcae422e28dd77d..0dfc5e78a2d518541891676afc6e35787694751a 100644 (file)
@@ -21,5 +21,6 @@
 #define CLKID_FCLK_DIV5                8
 #define CLKID_FCLK_DIV7                9
 #define CLKID_HIFI_PLL         10
+#define CLKID_SYS_PLL          11
 
 #endif /* __A1_PLL_CLKC_H */
diff --git a/include/dt-bindings/clock/amlogic,c3-peripherals-clkc.h b/include/dt-bindings/clock/amlogic,c3-peripherals-clkc.h
new file mode 100644 (file)
index 0000000..d115c74
--- /dev/null
@@ -0,0 +1,212 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright (c) 2023 Amlogic, Inc. All rights reserved.
+ * Author: Chuan Liu <chuan.liu@amlogic.com>
+ */
+
+#ifndef _DT_BINDINGS_CLOCK_AMLOGIC_C3_PERIPHERALS_CLKC_H
+#define _DT_BINDINGS_CLOCK_AMLOGIC_C3_PERIPHERALS_CLKC_H
+
+#define CLKID_RTC_XTAL_CLKIN                   0
+#define CLKID_RTC_32K_DIV                      1
+#define CLKID_RTC_32K_MUX                      2
+#define CLKID_RTC_32K                          3
+#define CLKID_RTC_CLK                          4
+#define CLKID_SYS_RESET_CTRL                   5
+#define CLKID_SYS_PWR_CTRL                     6
+#define CLKID_SYS_PAD_CTRL                     7
+#define CLKID_SYS_CTRL                         8
+#define CLKID_SYS_TS_PLL                       9
+#define CLKID_SYS_DEV_ARB                      10
+#define CLKID_SYS_MMC_PCLK                     11
+#define CLKID_SYS_CPU_CTRL                     12
+#define CLKID_SYS_JTAG_CTRL                    13
+#define CLKID_SYS_IR_CTRL                      14
+#define CLKID_SYS_IRQ_CTRL                     15
+#define CLKID_SYS_MSR_CLK                      16
+#define CLKID_SYS_ROM                          17
+#define CLKID_SYS_UART_F                       18
+#define CLKID_SYS_CPU_ARB                      19
+#define CLKID_SYS_RSA                          20
+#define CLKID_SYS_SAR_ADC                      21
+#define CLKID_SYS_STARTUP                      22
+#define CLKID_SYS_SECURE                       23
+#define CLKID_SYS_SPIFC                                24
+#define CLKID_SYS_NNA                          25
+#define CLKID_SYS_ETH_MAC                      26
+#define CLKID_SYS_GIC                          27
+#define CLKID_SYS_RAMA                         28
+#define CLKID_SYS_BIG_NIC                      29
+#define CLKID_SYS_RAMB                         30
+#define CLKID_SYS_AUDIO_PCLK                   31
+#define CLKID_SYS_PWM_KL                       32
+#define CLKID_SYS_PWM_IJ                       33
+#define CLKID_SYS_USB                          34
+#define CLKID_SYS_SD_EMMC_A                    35
+#define CLKID_SYS_SD_EMMC_C                    36
+#define CLKID_SYS_PWM_AB                       37
+#define CLKID_SYS_PWM_CD                       38
+#define CLKID_SYS_PWM_EF                       39
+#define CLKID_SYS_PWM_GH                       40
+#define CLKID_SYS_SPICC_1                      41
+#define CLKID_SYS_SPICC_0                      42
+#define CLKID_SYS_UART_A                       43
+#define CLKID_SYS_UART_B                       44
+#define CLKID_SYS_UART_C                       45
+#define CLKID_SYS_UART_D                       46
+#define CLKID_SYS_UART_E                       47
+#define CLKID_SYS_I2C_M_A                      48
+#define CLKID_SYS_I2C_M_B                      49
+#define CLKID_SYS_I2C_M_C                      50
+#define CLKID_SYS_I2C_M_D                      51
+#define CLKID_SYS_I2S_S_A                      52
+#define CLKID_SYS_RTC                          53
+#define CLKID_SYS_GE2D                         54
+#define CLKID_SYS_ISP                          55
+#define CLKID_SYS_GPV_ISP_NIC                  56
+#define CLKID_SYS_GPV_CVE_NIC                  57
+#define CLKID_SYS_MIPI_DSI_HOST                        58
+#define CLKID_SYS_MIPI_DSI_PHY                 59
+#define CLKID_SYS_ETH_PHY                      60
+#define CLKID_SYS_ACODEC                       61
+#define CLKID_SYS_DWAP                         62
+#define CLKID_SYS_DOS                          63
+#define CLKID_SYS_CVE                          64
+#define CLKID_SYS_VOUT                         65
+#define CLKID_SYS_VC9000E                      66
+#define CLKID_SYS_PWM_MN                       67
+#define CLKID_SYS_SD_EMMC_B                    68
+#define CLKID_AXI_SYS_NIC                      69
+#define CLKID_AXI_ISP_NIC                      70
+#define CLKID_AXI_CVE_NIC                      71
+#define CLKID_AXI_RAMB                         72
+#define CLKID_AXI_RAMA                         73
+#define CLKID_AXI_CPU_DMC                      74
+#define CLKID_AXI_NIC                          75
+#define CLKID_AXI_DMA                          76
+#define CLKID_AXI_MUX_NIC                      77
+#define CLKID_AXI_CVE                          78
+#define CLKID_AXI_DEV1_DMC                     79
+#define CLKID_AXI_DEV0_DMC                     80
+#define CLKID_AXI_DSP_DMC                      81
+#define CLKID_12_24M_IN                                82
+#define CLKID_12M_24M                          83
+#define CLKID_FCLK_25M_DIV                     84
+#define CLKID_FCLK_25M                         85
+#define CLKID_GEN_SEL                          86
+#define CLKID_GEN_DIV                          87
+#define CLKID_GEN                              88
+#define CLKID_SARADC_SEL                       89
+#define CLKID_SARADC_DIV                       90
+#define CLKID_SARADC                           91
+#define CLKID_PWM_A_SEL                                92
+#define CLKID_PWM_A_DIV                                93
+#define CLKID_PWM_A                            94
+#define CLKID_PWM_B_SEL                                95
+#define CLKID_PWM_B_DIV                                96
+#define CLKID_PWM_B                            97
+#define CLKID_PWM_C_SEL                                98
+#define CLKID_PWM_C_DIV                                99
+#define CLKID_PWM_C                            100
+#define CLKID_PWM_D_SEL                                101
+#define CLKID_PWM_D_DIV                                102
+#define CLKID_PWM_D                            103
+#define CLKID_PWM_E_SEL                                104
+#define CLKID_PWM_E_DIV                                105
+#define CLKID_PWM_E                            106
+#define CLKID_PWM_F_SEL                                107
+#define CLKID_PWM_F_DIV                                108
+#define CLKID_PWM_F                            109
+#define CLKID_PWM_G_SEL                                110
+#define CLKID_PWM_G_DIV                                111
+#define CLKID_PWM_G                            112
+#define CLKID_PWM_H_SEL                                113
+#define CLKID_PWM_H_DIV                                114
+#define CLKID_PWM_H                            115
+#define CLKID_PWM_I_SEL                                116
+#define CLKID_PWM_I_DIV                                117
+#define CLKID_PWM_I                            118
+#define CLKID_PWM_J_SEL                                119
+#define CLKID_PWM_J_DIV                                120
+#define CLKID_PWM_J                            121
+#define CLKID_PWM_K_SEL                                122
+#define CLKID_PWM_K_DIV                                123
+#define CLKID_PWM_K                            124
+#define CLKID_PWM_L_SEL                                125
+#define CLKID_PWM_L_DIV                                126
+#define CLKID_PWM_L                            127
+#define CLKID_PWM_M_SEL                                128
+#define CLKID_PWM_M_DIV                                129
+#define CLKID_PWM_M                            130
+#define CLKID_PWM_N_SEL                                131
+#define CLKID_PWM_N_DIV                                132
+#define CLKID_PWM_N                            133
+#define CLKID_SPICC_A_SEL                      134
+#define CLKID_SPICC_A_DIV                      135
+#define CLKID_SPICC_A                          136
+#define CLKID_SPICC_B_SEL                      137
+#define CLKID_SPICC_B_DIV                      138
+#define CLKID_SPICC_B                          139
+#define CLKID_SPIFC_SEL                                140
+#define CLKID_SPIFC_DIV                                141
+#define CLKID_SPIFC                            142
+#define CLKID_SD_EMMC_A_SEL                    143
+#define CLKID_SD_EMMC_A_DIV                    144
+#define CLKID_SD_EMMC_A                                145
+#define CLKID_SD_EMMC_B_SEL                    146
+#define CLKID_SD_EMMC_B_DIV                    147
+#define CLKID_SD_EMMC_B                                148
+#define CLKID_SD_EMMC_C_SEL                    149
+#define CLKID_SD_EMMC_C_DIV                    150
+#define CLKID_SD_EMMC_C                                151
+#define CLKID_TS_DIV                           152
+#define CLKID_TS                               153
+#define CLKID_ETH_125M_DIV                     154
+#define CLKID_ETH_125M                         155
+#define CLKID_ETH_RMII_DIV                     156
+#define CLKID_ETH_RMII                         157
+#define CLKID_MIPI_DSI_MEAS_SEL                        158
+#define CLKID_MIPI_DSI_MEAS_DIV                        159
+#define CLKID_MIPI_DSI_MEAS                    160
+#define CLKID_DSI_PHY_SEL                      161
+#define CLKID_DSI_PHY_DIV                      162
+#define CLKID_DSI_PHY                          163
+#define CLKID_VOUT_MCLK_SEL                    164
+#define CLKID_VOUT_MCLK_DIV                    165
+#define CLKID_VOUT_MCLK                                166
+#define CLKID_VOUT_ENC_SEL                     167
+#define CLKID_VOUT_ENC_DIV                     168
+#define CLKID_VOUT_ENC                         169
+#define CLKID_HCODEC_0_SEL                     170
+#define CLKID_HCODEC_0_DIV                     171
+#define CLKID_HCODEC_0                         172
+#define CLKID_HCODEC_1_SEL                     173
+#define CLKID_HCODEC_1_DIV                     174
+#define CLKID_HCODEC_1                         175
+#define CLKID_HCODEC                           176
+#define CLKID_VC9000E_ACLK_SEL                 177
+#define CLKID_VC9000E_ACLK_DIV                 178
+#define CLKID_VC9000E_ACLK                     179
+#define CLKID_VC9000E_CORE_SEL                 180
+#define CLKID_VC9000E_CORE_DIV                 181
+#define CLKID_VC9000E_CORE                     182
+#define CLKID_CSI_PHY0_SEL                     183
+#define CLKID_CSI_PHY0_DIV                     184
+#define CLKID_CSI_PHY0                         185
+#define CLKID_DEWARPA_SEL                      186
+#define CLKID_DEWARPA_DIV                      187
+#define CLKID_DEWARPA                          188
+#define CLKID_ISP0_SEL                         189
+#define CLKID_ISP0_DIV                         190
+#define CLKID_ISP0                             191
+#define CLKID_NNA_CORE_SEL                     192
+#define CLKID_NNA_CORE_DIV                     193
+#define CLKID_NNA_CORE                         194
+#define CLKID_GE2D_SEL                         195
+#define CLKID_GE2D_DIV                         196
+#define CLKID_GE2D                             197
+#define CLKID_VAPB_SEL                         198
+#define CLKID_VAPB_DIV                         199
+#define CLKID_VAPB                             200
+
+#endif  /* _DT_BINDINGS_CLOCK_AMLOGIC_C3_PERIPHERALS_CLKC_H */
diff --git a/include/dt-bindings/clock/amlogic,c3-pll-clkc.h b/include/dt-bindings/clock/amlogic,c3-pll-clkc.h
new file mode 100644 (file)
index 0000000..fcdc558
--- /dev/null
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright (c) 2023 Amlogic, Inc. All rights reserved.
+ * Author: Chuan Liu <chuan.liu@amlogic.com>
+ */
+
+#ifndef _DT_BINDINGS_CLOCK_AMLOGIC_C3_PLL_CLKC_H
+#define _DT_BINDINGS_CLOCK_AMLOGIC_C3_PLL_CLKC_H
+
+#define CLKID_FCLK_50M_EN                      0
+#define CLKID_FCLK_50M                         1
+#define CLKID_FCLK_DIV2_DIV                    2
+#define CLKID_FCLK_DIV2                                3
+#define CLKID_FCLK_DIV2P5_DIV                  4
+#define CLKID_FCLK_DIV2P5                      5
+#define CLKID_FCLK_DIV3_DIV                    6
+#define CLKID_FCLK_DIV3                                7
+#define CLKID_FCLK_DIV4_DIV                    8
+#define CLKID_FCLK_DIV4                                9
+#define CLKID_FCLK_DIV5_DIV                    10
+#define CLKID_FCLK_DIV5                                11
+#define CLKID_FCLK_DIV7_DIV                    12
+#define CLKID_FCLK_DIV7                                13
+#define CLKID_GP0_PLL_DCO                      14
+#define CLKID_GP0_PLL                          15
+#define CLKID_HIFI_PLL_DCO                     16
+#define CLKID_HIFI_PLL                         17
+#define CLKID_MCLK_PLL_DCO                     18
+#define CLKID_MCLK_PLL_OD                      19
+#define CLKID_MCLK_PLL                         20
+#define CLKID_MCLK0_SEL                                21
+#define CLKID_MCLK0_SEL_EN                     22
+#define CLKID_MCLK0_DIV                                23
+#define CLKID_MCLK0                            24
+#define CLKID_MCLK1_SEL                                25
+#define CLKID_MCLK1_SEL_EN                     26
+#define CLKID_MCLK1_DIV                                27
+#define CLKID_MCLK1                            28
+
+#endif  /* _DT_BINDINGS_CLOCK_AMLOGIC_C3_PLL_CLKC_H */
diff --git a/include/dt-bindings/clock/amlogic,c3-scmi-clkc.h b/include/dt-bindings/clock/amlogic,c3-scmi-clkc.h
new file mode 100644 (file)
index 0000000..663c9b3
--- /dev/null
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright (c) 2023 Amlogic, Inc. All rights reserved.
+ * Author: Chuan Liu <chuan.liu@amlogic.com>
+ */
+
+#ifndef __AMLOGIC_C3_SCMI_CLKC_H
+#define __AMLOGIC_C3_SCMI_CLKC_H
+
+#define CLKID_DDR_PLL_OSC                      0
+#define CLKID_DDR_PHY                          1
+#define CLKID_TOP_PLL_OSC                      2
+#define CLKID_USB_PLL_OSC                      3
+#define CLKID_MIPIISP_VOUT                     4
+#define CLKID_MCLK_PLL_OSC                     5
+#define CLKID_USB_CTRL                         6
+#define CLKID_ETH_PLL_OSC                      7
+#define CLKID_OSC                              8
+#define CLKID_SYS_CLK                          9
+#define CLKID_AXI_CLK                          10
+#define CLKID_CPU_CLK                          11
+#define CLKID_FIXED_PLL_OSC                    12
+#define CLKID_GP1_PLL_OSC                      13
+#define CLKID_SYS_PLL_DIV16                    14
+#define CLKID_CPU_CLK_DIV16                    15
+
+#endif /* __AMLOGIC_C3_SCMI_CLKC_H */
index 08fd3a37acaa20be3a325226bbdc854fb6bcc385..52123c5a09fa1d908e56019ca6ae1c8313060d2d 100644 (file)
 #define GCC_CRYPTO_AHB_CLK                             207
 #define GCC_USB0_PIPE_CLK                              208
 #define GCC_USB0_SLEEP_CLK                             209
+#define GCC_PCIE0_PIPE_CLK                             210
+#define GCC_PCIE1_PIPE_CLK                             211
+#define GCC_PCIE2_PIPE_CLK                             212
+#define GCC_PCIE3_PIPE_CLK                             213
 #endif
diff --git a/include/dt-bindings/clock/qcom,qca8k-nsscc.h b/include/dt-bindings/clock/qcom,qca8k-nsscc.h
new file mode 100644 (file)
index 0000000..0ac3e4c
--- /dev/null
@@ -0,0 +1,101 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_QCA8K_NSS_CC_H
+#define _DT_BINDINGS_CLK_QCOM_QCA8K_NSS_CC_H
+
+#define NSS_CC_SWITCH_CORE_CLK_SRC                             0
+#define NSS_CC_SWITCH_CORE_CLK                                 1
+#define NSS_CC_APB_BRIDGE_CLK                                  2
+#define NSS_CC_MAC0_TX_CLK_SRC                                 3
+#define NSS_CC_MAC0_TX_DIV_CLK_SRC                             4
+#define NSS_CC_MAC0_TX_CLK                                     5
+#define NSS_CC_MAC0_TX_SRDS1_CLK                               6
+#define NSS_CC_MAC0_RX_CLK_SRC                                 7
+#define NSS_CC_MAC0_RX_DIV_CLK_SRC                             8
+#define NSS_CC_MAC0_RX_CLK                                     9
+#define NSS_CC_MAC0_RX_SRDS1_CLK                               10
+#define NSS_CC_MAC1_TX_CLK_SRC                                 11
+#define NSS_CC_MAC1_TX_DIV_CLK_SRC                             12
+#define NSS_CC_MAC1_SRDS1_CH0_XGMII_RX_DIV_CLK_SRC             13
+#define NSS_CC_MAC1_SRDS1_CH0_RX_CLK                           14
+#define NSS_CC_MAC1_TX_CLK                                     15
+#define NSS_CC_MAC1_GEPHY0_TX_CLK                              16
+#define NSS_CC_MAC1_SRDS1_CH0_XGMII_RX_CLK                     17
+#define NSS_CC_MAC1_RX_CLK_SRC                                 18
+#define NSS_CC_MAC1_RX_DIV_CLK_SRC                             19
+#define NSS_CC_MAC1_SRDS1_CH0_XGMII_TX_DIV_CLK_SRC             20
+#define NSS_CC_MAC1_SRDS1_CH0_TX_CLK                           21
+#define NSS_CC_MAC1_RX_CLK                                     22
+#define NSS_CC_MAC1_GEPHY0_RX_CLK                              23
+#define NSS_CC_MAC1_SRDS1_CH0_XGMII_TX_CLK                     24
+#define NSS_CC_MAC2_TX_CLK_SRC                                 25
+#define NSS_CC_MAC2_TX_DIV_CLK_SRC                             26
+#define NSS_CC_MAC2_SRDS1_CH1_XGMII_RX_DIV_CLK_SRC             27
+#define NSS_CC_MAC2_SRDS1_CH1_RX_CLK                           28
+#define NSS_CC_MAC2_TX_CLK                                     29
+#define NSS_CC_MAC2_GEPHY1_TX_CLK                              30
+#define NSS_CC_MAC2_SRDS1_CH1_XGMII_RX_CLK                     31
+#define NSS_CC_MAC2_RX_CLK_SRC                                 32
+#define NSS_CC_MAC2_RX_DIV_CLK_SRC                             33
+#define NSS_CC_MAC2_SRDS1_CH1_XGMII_TX_DIV_CLK_SRC             34
+#define NSS_CC_MAC2_SRDS1_CH1_TX_CLK                           35
+#define NSS_CC_MAC2_RX_CLK                                     36
+#define NSS_CC_MAC2_GEPHY1_RX_CLK                              37
+#define NSS_CC_MAC2_SRDS1_CH1_XGMII_TX_CLK                     38
+#define NSS_CC_MAC3_TX_CLK_SRC                                 39
+#define NSS_CC_MAC3_TX_DIV_CLK_SRC                             40
+#define NSS_CC_MAC3_SRDS1_CH2_XGMII_RX_DIV_CLK_SRC             41
+#define NSS_CC_MAC3_SRDS1_CH2_RX_CLK                           42
+#define NSS_CC_MAC3_TX_CLK                                     43
+#define NSS_CC_MAC3_GEPHY2_TX_CLK                              44
+#define NSS_CC_MAC3_SRDS1_CH2_XGMII_RX_CLK                     45
+#define NSS_CC_MAC3_RX_CLK_SRC                                 46
+#define NSS_CC_MAC3_RX_DIV_CLK_SRC                             47
+#define NSS_CC_MAC3_SRDS1_CH2_XGMII_TX_DIV_CLK_SRC             48
+#define NSS_CC_MAC3_SRDS1_CH2_TX_CLK                           49
+#define NSS_CC_MAC3_RX_CLK                                     50
+#define NSS_CC_MAC3_GEPHY2_RX_CLK                              51
+#define NSS_CC_MAC3_SRDS1_CH2_XGMII_TX_CLK                     52
+#define NSS_CC_MAC4_TX_CLK_SRC                                 53
+#define NSS_CC_MAC4_TX_DIV_CLK_SRC                             54
+#define NSS_CC_MAC4_SRDS1_CH3_XGMII_RX_DIV_CLK_SRC             55
+#define NSS_CC_MAC4_SRDS1_CH3_RX_CLK                           56
+#define NSS_CC_MAC4_TX_CLK                                     57
+#define NSS_CC_MAC4_GEPHY3_TX_CLK                              58
+#define NSS_CC_MAC4_SRDS1_CH3_XGMII_RX_CLK                     59
+#define NSS_CC_MAC4_RX_CLK_SRC                                 60
+#define NSS_CC_MAC4_RX_DIV_CLK_SRC                             61
+#define NSS_CC_MAC4_SRDS1_CH3_XGMII_TX_DIV_CLK_SRC             62
+#define NSS_CC_MAC4_SRDS1_CH3_TX_CLK                           63
+#define NSS_CC_MAC4_RX_CLK                                     64
+#define NSS_CC_MAC4_GEPHY3_RX_CLK                              65
+#define NSS_CC_MAC4_SRDS1_CH3_XGMII_TX_CLK                     66
+#define NSS_CC_MAC5_TX_CLK_SRC                                 67
+#define NSS_CC_MAC5_TX_DIV_CLK_SRC                             68
+#define NSS_CC_MAC5_TX_SRDS0_CLK                               69
+#define NSS_CC_MAC5_TX_CLK                                     70
+#define NSS_CC_MAC5_RX_CLK_SRC                                 71
+#define NSS_CC_MAC5_RX_DIV_CLK_SRC                             72
+#define NSS_CC_MAC5_RX_SRDS0_CLK                               73
+#define NSS_CC_MAC5_RX_CLK                                     74
+#define NSS_CC_MAC5_TX_SRDS0_CLK_SRC                           75
+#define NSS_CC_MAC5_RX_SRDS0_CLK_SRC                           76
+#define NSS_CC_AHB_CLK_SRC                                     77
+#define NSS_CC_AHB_CLK                                         78
+#define NSS_CC_SEC_CTRL_AHB_CLK                                        79
+#define NSS_CC_TLMM_CLK                                                80
+#define NSS_CC_TLMM_AHB_CLK                                    81
+#define NSS_CC_CNOC_AHB_CLK                                    82
+#define NSS_CC_MDIO_AHB_CLK                                    83
+#define NSS_CC_MDIO_MASTER_AHB_CLK                             84
+#define NSS_CC_SYS_CLK_SRC                                     85
+#define NSS_CC_SRDS0_SYS_CLK                                   86
+#define NSS_CC_SRDS1_SYS_CLK                                   87
+#define NSS_CC_GEPHY0_SYS_CLK                                  88
+#define NSS_CC_GEPHY1_SYS_CLK                                  89
+#define NSS_CC_GEPHY2_SYS_CLK                                  90
+#define NSS_CC_GEPHY3_SYS_CLK                                  91
+#endif
diff --git a/include/dt-bindings/clock/qcom,qcm2290-gpucc.h b/include/dt-bindings/clock/qcom,qcm2290-gpucc.h
new file mode 100644 (file)
index 0000000..7c76dd0
--- /dev/null
@@ -0,0 +1,32 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2024, Linaro Limited
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_GPU_CC_QCM2290_H
+#define _DT_BINDINGS_CLK_QCOM_GPU_CC_QCM2290_H
+
+/* GPU_CC clocks */
+#define GPU_CC_AHB_CLK                 0
+#define GPU_CC_CRC_AHB_CLK             1
+#define GPU_CC_CX_GFX3D_CLK            2
+#define GPU_CC_CX_GMU_CLK              3
+#define GPU_CC_CX_SNOC_DVM_CLK         4
+#define GPU_CC_CXO_AON_CLK             5
+#define GPU_CC_CXO_CLK                 6
+#define GPU_CC_GMU_CLK_SRC             7
+#define GPU_CC_GX_GFX3D_CLK            8
+#define GPU_CC_GX_GFX3D_CLK_SRC                9
+#define GPU_CC_PLL0                    10
+#define GPU_CC_SLEEP_CLK               11
+#define GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK 12
+
+/* Resets */
+#define GPU_GX_BCR                     0
+
+/* GDSCs */
+#define GPU_CX_GDSC                    0
+#define GPU_GX_GDSC                    1
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm7150-camcc.h b/include/dt-bindings/clock/qcom,sm7150-camcc.h
new file mode 100644 (file)
index 0000000..ce73ef0
--- /dev/null
@@ -0,0 +1,113 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2018, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2024, Danila Tikhonov <danila@jiaxyga.com>
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_CAMCC_SM7150_H
+#define _DT_BINDINGS_CLK_QCOM_CAMCC_SM7150_H
+
+/* Hardware clocks */
+#define CAMCC_PLL0_OUT_EVEN                                    0
+#define CAMCC_PLL0_OUT_ODD                                     1
+#define CAMCC_PLL1_OUT_EVEN                                    2
+#define CAMCC_PLL2_OUT_EARLY                                   3
+#define CAMCC_PLL3_OUT_EVEN                                    4
+#define CAMCC_PLL4_OUT_EVEN                                    5
+
+/* CAMCC clock registers */
+#define CAMCC_PLL0                                             6
+#define CAMCC_PLL1                                             7
+#define CAMCC_PLL2                                             8
+#define CAMCC_PLL2_OUT_AUX                                     9
+#define CAMCC_PLL2_OUT_MAIN                                    10
+#define CAMCC_PLL3                                             11
+#define CAMCC_PLL4                                             12
+#define CAMCC_BPS_AHB_CLK                                      13
+#define CAMCC_BPS_AREG_CLK                                     14
+#define CAMCC_BPS_AXI_CLK                                      15
+#define CAMCC_BPS_CLK                                          16
+#define CAMCC_BPS_CLK_SRC                                      17
+#define CAMCC_CAMNOC_AXI_CLK                                   18
+#define CAMCC_CAMNOC_AXI_CLK_SRC                               19
+#define CAMCC_CAMNOC_DCD_XO_CLK                                        20
+#define CAMCC_CCI_0_CLK                                                21
+#define CAMCC_CCI_0_CLK_SRC                                    22
+#define CAMCC_CCI_1_CLK                                                23
+#define CAMCC_CCI_1_CLK_SRC                                    24
+#define CAMCC_CORE_AHB_CLK                                     25
+#define CAMCC_CPAS_AHB_CLK                                     26
+#define CAMCC_CPHY_RX_CLK_SRC                                  27
+#define CAMCC_CSI0PHYTIMER_CLK                                 28
+#define CAMCC_CSI0PHYTIMER_CLK_SRC                             29
+#define CAMCC_CSI1PHYTIMER_CLK                                 30
+#define CAMCC_CSI1PHYTIMER_CLK_SRC                             31
+#define CAMCC_CSI2PHYTIMER_CLK                                 32
+#define CAMCC_CSI2PHYTIMER_CLK_SRC                             33
+#define CAMCC_CSI3PHYTIMER_CLK                                 34
+#define CAMCC_CSI3PHYTIMER_CLK_SRC                             35
+#define CAMCC_CSIPHY0_CLK                                      36
+#define CAMCC_CSIPHY1_CLK                                      37
+#define CAMCC_CSIPHY2_CLK                                      38
+#define CAMCC_CSIPHY3_CLK                                      39
+#define CAMCC_FAST_AHB_CLK_SRC                                 40
+#define CAMCC_FD_CORE_CLK                                      41
+#define CAMCC_FD_CORE_CLK_SRC                                  42
+#define CAMCC_FD_CORE_UAR_CLK                                  43
+#define CAMCC_ICP_AHB_CLK                                      44
+#define CAMCC_ICP_CLK                                          45
+#define CAMCC_ICP_CLK_SRC                                      46
+#define CAMCC_IFE_0_AXI_CLK                                    47
+#define CAMCC_IFE_0_CLK                                                48
+#define CAMCC_IFE_0_CLK_SRC                                    49
+#define CAMCC_IFE_0_CPHY_RX_CLK                                        50
+#define CAMCC_IFE_0_CSID_CLK                                   51
+#define CAMCC_IFE_0_CSID_CLK_SRC                               52
+#define CAMCC_IFE_0_DSP_CLK                                    53
+#define CAMCC_IFE_1_AXI_CLK                                    54
+#define CAMCC_IFE_1_CLK                                                55
+#define CAMCC_IFE_1_CLK_SRC                                    56
+#define CAMCC_IFE_1_CPHY_RX_CLK                                        57
+#define CAMCC_IFE_1_CSID_CLK                                   58
+#define CAMCC_IFE_1_CSID_CLK_SRC                               59
+#define CAMCC_IFE_1_DSP_CLK                                    60
+#define CAMCC_IFE_LITE_CLK                                     61
+#define CAMCC_IFE_LITE_CLK_SRC                                 62
+#define CAMCC_IFE_LITE_CPHY_RX_CLK                             63
+#define CAMCC_IFE_LITE_CSID_CLK                                        64
+#define CAMCC_IFE_LITE_CSID_CLK_SRC                            65
+#define CAMCC_IPE_0_AHB_CLK                                    66
+#define CAMCC_IPE_0_AREG_CLK                                   67
+#define CAMCC_IPE_0_AXI_CLK                                    68
+#define CAMCC_IPE_0_CLK                                                69
+#define CAMCC_IPE_0_CLK_SRC                                    70
+#define CAMCC_IPE_1_AHB_CLK                                    71
+#define CAMCC_IPE_1_AREG_CLK                                   72
+#define CAMCC_IPE_1_AXI_CLK                                    73
+#define CAMCC_IPE_1_CLK                                                74
+#define CAMCC_JPEG_CLK                                         75
+#define CAMCC_JPEG_CLK_SRC                                     76
+#define CAMCC_LRME_CLK                                         77
+#define CAMCC_LRME_CLK_SRC                                     78
+#define CAMCC_MCLK0_CLK                                                79
+#define CAMCC_MCLK0_CLK_SRC                                    80
+#define CAMCC_MCLK1_CLK                                                81
+#define CAMCC_MCLK1_CLK_SRC                                    82
+#define CAMCC_MCLK2_CLK                                                83
+#define CAMCC_MCLK2_CLK_SRC                                    84
+#define CAMCC_MCLK3_CLK                                                85
+#define CAMCC_MCLK3_CLK_SRC                                    86
+#define CAMCC_SLEEP_CLK                                                87
+#define CAMCC_SLEEP_CLK_SRC                                    88
+#define CAMCC_SLOW_AHB_CLK_SRC                                 89
+#define CAMCC_XO_CLK_SRC                                       90
+
+/* CAMCC GDSCRs */
+#define BPS_GDSC                                               0
+#define IFE_0_GDSC                                             1
+#define IFE_1_GDSC                                             2
+#define IPE_0_GDSC                                             3
+#define IPE_1_GDSC                                             4
+#define TITAN_TOP_GDSC                                         5
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm7150-dispcc.h b/include/dt-bindings/clock/qcom,sm7150-dispcc.h
new file mode 100644 (file)
index 0000000..fc1fefe
--- /dev/null
@@ -0,0 +1,59 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2018, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2024, Danila Tikhonov <danila@jiaxyga.com>
+ * Copyright (c) 2024, David Wronek <david@mainlining.org>
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_DISPCC_SM7150_H
+#define _DT_BINDINGS_CLK_QCOM_DISPCC_SM7150_H
+
+/* DISPCC clock registers */
+#define DISPCC_PLL0                            0
+#define DISPCC_MDSS_AHB_CLK                    1
+#define DISPCC_MDSS_AHB_CLK_SRC                        2
+#define DISPCC_MDSS_BYTE0_CLK                  3
+#define DISPCC_MDSS_BYTE0_CLK_SRC              4
+#define DISPCC_MDSS_BYTE0_DIV_CLK_SRC          5
+#define DISPCC_MDSS_BYTE0_INTF_CLK             6
+#define DISPCC_MDSS_BYTE1_CLK                  7
+#define DISPCC_MDSS_BYTE1_CLK_SRC              8
+#define DISPCC_MDSS_BYTE1_DIV_CLK_SRC          9
+#define DISPCC_MDSS_BYTE1_INTF_CLK             10
+#define DISPCC_MDSS_DP_AUX_CLK                 11
+#define DISPCC_MDSS_DP_AUX_CLK_SRC             12
+#define DISPCC_MDSS_DP_CRYPTO_CLK              13
+#define DISPCC_MDSS_DP_CRYPTO_CLK_SRC          14
+#define DISPCC_MDSS_DP_LINK_CLK                        15
+#define DISPCC_MDSS_DP_LINK_CLK_SRC            16
+#define DISPCC_MDSS_DP_LINK_INTF_CLK           17
+#define DISPCC_MDSS_DP_PIXEL1_CLK              18
+#define DISPCC_MDSS_DP_PIXEL1_CLK_SRC          19
+#define DISPCC_MDSS_DP_PIXEL_CLK               20
+#define DISPCC_MDSS_DP_PIXEL_CLK_SRC           21
+#define DISPCC_MDSS_ESC0_CLK                   22
+#define DISPCC_MDSS_ESC0_CLK_SRC               23
+#define DISPCC_MDSS_ESC1_CLK                   24
+#define DISPCC_MDSS_ESC1_CLK_SRC               25
+#define DISPCC_MDSS_MDP_CLK                    26
+#define DISPCC_MDSS_MDP_CLK_SRC                        27
+#define DISPCC_MDSS_MDP_LUT_CLK                        28
+#define DISPCC_MDSS_NON_GDSC_AHB_CLK           29
+#define DISPCC_MDSS_PCLK0_CLK                  30
+#define DISPCC_MDSS_PCLK0_CLK_SRC              31
+#define DISPCC_MDSS_PCLK1_CLK                  32
+#define DISPCC_MDSS_PCLK1_CLK_SRC              33
+#define DISPCC_MDSS_ROT_CLK                    34
+#define DISPCC_MDSS_ROT_CLK_SRC                        35
+#define DISPCC_MDSS_RSCC_AHB_CLK               36
+#define DISPCC_MDSS_RSCC_VSYNC_CLK             37
+#define DISPCC_MDSS_VSYNC_CLK                  38
+#define DISPCC_MDSS_VSYNC_CLK_SRC              39
+#define DISPCC_XO_CLK_SRC                      40
+#define DISPCC_SLEEP_CLK                       41
+#define DISPCC_SLEEP_CLK_SRC                   42
+
+/* DISPCC GDSCR */
+#define MDSS_GDSC                              0
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm7150-videocc.h b/include/dt-bindings/clock/qcom,sm7150-videocc.h
new file mode 100644 (file)
index 0000000..d86e0fb
--- /dev/null
@@ -0,0 +1,28 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2018, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2024, Danila Tikhonov <danila@jiaxyga.com>
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_VIDEOCC_SM7150_H
+#define _DT_BINDINGS_CLK_QCOM_VIDEOCC_SM7150_H
+
+#define VIDEOCC_PLL0                   0
+#define VIDEOCC_IRIS_AHB_CLK           1
+#define VIDEOCC_IRIS_CLK_SRC           2
+#define VIDEOCC_MVS0_AXI_CLK           3
+#define VIDEOCC_MVS0_CORE_CLK          4
+#define VIDEOCC_MVS1_AXI_CLK           5
+#define VIDEOCC_MVS1_CORE_CLK          6
+#define VIDEOCC_MVSC_CORE_CLK          7
+#define VIDEOCC_MVSC_CTL_AXI_CLK       8
+#define VIDEOCC_VENUS_AHB_CLK          9
+#define VIDEOCC_XO_CLK                 10
+#define VIDEOCC_XO_CLK_SRC             11
+
+/* VIDEOCC GDSCRs */
+#define VENUS_GDSC                     0
+#define VCODEC0_GDSC                   1
+#define VCODEC1_GDSC                   2
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm8650-camcc.h b/include/dt-bindings/clock/qcom,sm8650-camcc.h
new file mode 100644 (file)
index 0000000..df73bf3
--- /dev/null
@@ -0,0 +1,195 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_CAM_CC_SM8650_H
+#define _DT_BINDINGS_CLK_QCOM_CAM_CC_SM8650_H
+
+/* CAM_CC clocks */
+#define CAM_CC_BPS_AHB_CLK                                     0
+#define CAM_CC_BPS_CLK                                         1
+#define CAM_CC_BPS_CLK_SRC                                     2
+#define CAM_CC_BPS_FAST_AHB_CLK                                        3
+#define CAM_CC_BPS_SHIFT_CLK                                   4
+#define CAM_CC_CAMNOC_AXI_NRT_CLK                              5
+#define CAM_CC_CAMNOC_AXI_RT_CLK                               6
+#define CAM_CC_CAMNOC_AXI_RT_CLK_SRC                           7
+#define CAM_CC_CAMNOC_DCD_XO_CLK                               8
+#define CAM_CC_CAMNOC_XO_CLK                                   9
+#define CAM_CC_CCI_0_CLK                                       10
+#define CAM_CC_CCI_0_CLK_SRC                                   11
+#define CAM_CC_CCI_1_CLK                                       12
+#define CAM_CC_CCI_1_CLK_SRC                                   13
+#define CAM_CC_CCI_2_CLK                                       14
+#define CAM_CC_CCI_2_CLK_SRC                                   15
+#define CAM_CC_CORE_AHB_CLK                                    16
+#define CAM_CC_CPAS_AHB_CLK                                    17
+#define CAM_CC_CPAS_BPS_CLK                                    18
+#define CAM_CC_CPAS_CRE_CLK                                    19
+#define CAM_CC_CPAS_FAST_AHB_CLK                               20
+#define CAM_CC_CPAS_IFE_0_CLK                                  21
+#define CAM_CC_CPAS_IFE_1_CLK                                  22
+#define CAM_CC_CPAS_IFE_2_CLK                                  23
+#define CAM_CC_CPAS_IFE_LITE_CLK                               24
+#define CAM_CC_CPAS_IPE_NPS_CLK                                        25
+#define CAM_CC_CPAS_SBI_CLK                                    26
+#define CAM_CC_CPAS_SFE_0_CLK                                  27
+#define CAM_CC_CPAS_SFE_1_CLK                                  28
+#define CAM_CC_CPAS_SFE_2_CLK                                  29
+#define CAM_CC_CPHY_RX_CLK_SRC                                 30
+#define CAM_CC_CRE_AHB_CLK                                     31
+#define CAM_CC_CRE_CLK                                         32
+#define CAM_CC_CRE_CLK_SRC                                     33
+#define CAM_CC_CSI0PHYTIMER_CLK                                        34
+#define CAM_CC_CSI0PHYTIMER_CLK_SRC                            35
+#define CAM_CC_CSI1PHYTIMER_CLK                                        36
+#define CAM_CC_CSI1PHYTIMER_CLK_SRC                            37
+#define CAM_CC_CSI2PHYTIMER_CLK                                        38
+#define CAM_CC_CSI2PHYTIMER_CLK_SRC                            39
+#define CAM_CC_CSI3PHYTIMER_CLK                                        40
+#define CAM_CC_CSI3PHYTIMER_CLK_SRC                            41
+#define CAM_CC_CSI4PHYTIMER_CLK                                        42
+#define CAM_CC_CSI4PHYTIMER_CLK_SRC                            43
+#define CAM_CC_CSI5PHYTIMER_CLK                                        44
+#define CAM_CC_CSI5PHYTIMER_CLK_SRC                            45
+#define CAM_CC_CSI6PHYTIMER_CLK                                        46
+#define CAM_CC_CSI6PHYTIMER_CLK_SRC                            47
+#define CAM_CC_CSI7PHYTIMER_CLK                                        48
+#define CAM_CC_CSI7PHYTIMER_CLK_SRC                            49
+#define CAM_CC_CSID_CLK                                                50
+#define CAM_CC_CSID_CLK_SRC                                    51
+#define CAM_CC_CSID_CSIPHY_RX_CLK                              52
+#define CAM_CC_CSIPHY0_CLK                                     53
+#define CAM_CC_CSIPHY1_CLK                                     54
+#define CAM_CC_CSIPHY2_CLK                                     55
+#define CAM_CC_CSIPHY3_CLK                                     56
+#define CAM_CC_CSIPHY4_CLK                                     57
+#define CAM_CC_CSIPHY5_CLK                                     58
+#define CAM_CC_CSIPHY6_CLK                                     59
+#define CAM_CC_CSIPHY7_CLK                                     60
+#define CAM_CC_DRV_AHB_CLK                                     61
+#define CAM_CC_DRV_XO_CLK                                      62
+#define CAM_CC_FAST_AHB_CLK_SRC                                        63
+#define CAM_CC_GDSC_CLK                                                64
+#define CAM_CC_ICP_AHB_CLK                                     65
+#define CAM_CC_ICP_CLK                                         66
+#define CAM_CC_ICP_CLK_SRC                                     67
+#define CAM_CC_IFE_0_CLK                                       68
+#define CAM_CC_IFE_0_CLK_SRC                                   69
+#define CAM_CC_IFE_0_FAST_AHB_CLK                              70
+#define CAM_CC_IFE_0_SHIFT_CLK                                 71
+#define CAM_CC_IFE_1_CLK                                       72
+#define CAM_CC_IFE_1_CLK_SRC                                   73
+#define CAM_CC_IFE_1_FAST_AHB_CLK                              74
+#define CAM_CC_IFE_1_SHIFT_CLK                                 75
+#define CAM_CC_IFE_2_CLK                                       76
+#define CAM_CC_IFE_2_CLK_SRC                                   77
+#define CAM_CC_IFE_2_FAST_AHB_CLK                              78
+#define CAM_CC_IFE_2_SHIFT_CLK                                 79
+#define CAM_CC_IFE_LITE_AHB_CLK                                        80
+#define CAM_CC_IFE_LITE_CLK                                    81
+#define CAM_CC_IFE_LITE_CLK_SRC                                        82
+#define CAM_CC_IFE_LITE_CPHY_RX_CLK                            83
+#define CAM_CC_IFE_LITE_CSID_CLK                               84
+#define CAM_CC_IFE_LITE_CSID_CLK_SRC                           85
+#define CAM_CC_IPE_NPS_AHB_CLK                                 86
+#define CAM_CC_IPE_NPS_CLK                                     87
+#define CAM_CC_IPE_NPS_CLK_SRC                                 88
+#define CAM_CC_IPE_NPS_FAST_AHB_CLK                            89
+#define CAM_CC_IPE_PPS_CLK                                     90
+#define CAM_CC_IPE_PPS_FAST_AHB_CLK                            91
+#define CAM_CC_IPE_SHIFT_CLK                                   92
+#define CAM_CC_JPEG_1_CLK                                      93
+#define CAM_CC_JPEG_CLK                                                94
+#define CAM_CC_JPEG_CLK_SRC                                    95
+#define CAM_CC_MCLK0_CLK                                       96
+#define CAM_CC_MCLK0_CLK_SRC                                   97
+#define CAM_CC_MCLK1_CLK                                       98
+#define CAM_CC_MCLK1_CLK_SRC                                   99
+#define CAM_CC_MCLK2_CLK                                       100
+#define CAM_CC_MCLK2_CLK_SRC                                   101
+#define CAM_CC_MCLK3_CLK                                       102
+#define CAM_CC_MCLK3_CLK_SRC                                   103
+#define CAM_CC_MCLK4_CLK                                       104
+#define CAM_CC_MCLK4_CLK_SRC                                   105
+#define CAM_CC_MCLK5_CLK                                       106
+#define CAM_CC_MCLK5_CLK_SRC                                   107
+#define CAM_CC_MCLK6_CLK                                       108
+#define CAM_CC_MCLK6_CLK_SRC                                   109
+#define CAM_CC_MCLK7_CLK                                       110
+#define CAM_CC_MCLK7_CLK_SRC                                   111
+#define CAM_CC_PLL0                                            112
+#define CAM_CC_PLL0_OUT_EVEN                                   113
+#define CAM_CC_PLL0_OUT_ODD                                    114
+#define CAM_CC_PLL1                                            115
+#define CAM_CC_PLL1_OUT_EVEN                                   116
+#define CAM_CC_PLL2                                            117
+#define CAM_CC_PLL3                                            118
+#define CAM_CC_PLL3_OUT_EVEN                                   119
+#define CAM_CC_PLL4                                            120
+#define CAM_CC_PLL4_OUT_EVEN                                   121
+#define CAM_CC_PLL5                                            122
+#define CAM_CC_PLL5_OUT_EVEN                                   123
+#define CAM_CC_PLL6                                            124
+#define CAM_CC_PLL6_OUT_EVEN                                   125
+#define CAM_CC_PLL7                                            126
+#define CAM_CC_PLL7_OUT_EVEN                                   127
+#define CAM_CC_PLL8                                            128
+#define CAM_CC_PLL8_OUT_EVEN                                   129
+#define CAM_CC_PLL9                                            130
+#define CAM_CC_PLL9_OUT_EVEN                                   131
+#define CAM_CC_PLL9_OUT_ODD                                    132
+#define CAM_CC_PLL10                                           133
+#define CAM_CC_PLL10_OUT_EVEN                                  134
+#define CAM_CC_QDSS_DEBUG_CLK                                  135
+#define CAM_CC_QDSS_DEBUG_CLK_SRC                              136
+#define CAM_CC_QDSS_DEBUG_XO_CLK                               137
+#define CAM_CC_SBI_CLK                                         138
+#define CAM_CC_SBI_FAST_AHB_CLK                                        139
+#define CAM_CC_SBI_SHIFT_CLK                                   140
+#define CAM_CC_SFE_0_CLK                                       141
+#define CAM_CC_SFE_0_CLK_SRC                                   142
+#define CAM_CC_SFE_0_FAST_AHB_CLK                              143
+#define CAM_CC_SFE_0_SHIFT_CLK                                 144
+#define CAM_CC_SFE_1_CLK                                       145
+#define CAM_CC_SFE_1_CLK_SRC                                   146
+#define CAM_CC_SFE_1_FAST_AHB_CLK                              147
+#define CAM_CC_SFE_1_SHIFT_CLK                                 148
+#define CAM_CC_SFE_2_CLK                                       149
+#define CAM_CC_SFE_2_CLK_SRC                                   150
+#define CAM_CC_SFE_2_FAST_AHB_CLK                              151
+#define CAM_CC_SFE_2_SHIFT_CLK                                 152
+#define CAM_CC_SLEEP_CLK                                       153
+#define CAM_CC_SLEEP_CLK_SRC                                   154
+#define CAM_CC_SLOW_AHB_CLK_SRC                                        155
+#define CAM_CC_TITAN_TOP_SHIFT_CLK                             156
+#define CAM_CC_XO_CLK_SRC                                      157
+
+/* CAM_CC power domains */
+#define CAM_CC_TITAN_TOP_GDSC                                  0
+#define CAM_CC_BPS_GDSC                                                1
+#define CAM_CC_IFE_0_GDSC                                      2
+#define CAM_CC_IFE_1_GDSC                                      3
+#define CAM_CC_IFE_2_GDSC                                      4
+#define CAM_CC_IPE_0_GDSC                                      5
+#define CAM_CC_SBI_GDSC                                                6
+#define CAM_CC_SFE_0_GDSC                                      7
+#define CAM_CC_SFE_1_GDSC                                      8
+#define CAM_CC_SFE_2_GDSC                                      9
+
+/* CAM_CC resets */
+#define CAM_CC_BPS_BCR                                         0
+#define CAM_CC_DRV_BCR                                         1
+#define CAM_CC_ICP_BCR                                         2
+#define CAM_CC_IFE_0_BCR                                       3
+#define CAM_CC_IFE_1_BCR                                       4
+#define CAM_CC_IFE_2_BCR                                       5
+#define CAM_CC_IPE_0_BCR                                       6
+#define CAM_CC_QDSS_DEBUG_BCR                                  7
+#define CAM_CC_SBI_BCR                                         8
+#define CAM_CC_SFE_0_BCR                                       9
+#define CAM_CC_SFE_1_BCR                                       10
+#define CAM_CC_SFE_2_BCR                                       11
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,sm8650-videocc.h b/include/dt-bindings/clock/qcom,sm8650-videocc.h
new file mode 100644 (file)
index 0000000..4e3c2d8
--- /dev/null
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_VIDEO_CC_SM8650_H
+#define _DT_BINDINGS_CLK_QCOM_VIDEO_CC_SM8650_H
+
+#include "qcom,sm8450-videocc.h"
+
+/* SM8650 introduces below new clocks and resets compared to SM8450 */
+
+/* VIDEO_CC clocks */
+#define VIDEO_CC_MVS0_SHIFT_CLK                                        12
+#define VIDEO_CC_MVS0C_SHIFT_CLK                               13
+#define VIDEO_CC_MVS1_SHIFT_CLK                                        14
+#define VIDEO_CC_MVS1C_SHIFT_CLK                               15
+#define VIDEO_CC_XO_CLK_SRC                                    16
+
+/* VIDEO_CC resets */
+#define VIDEO_CC_XO_CLK_ARES                                   7
+
+#endif
index 342a60b11934b4b188ebd3dc961efc4b6e4593fd..e39acdc6499c03c75ba4142719acf5689150e56c 100644 (file)
@@ -57,5 +57,4 @@
 #define R8A7779_CLK_MMC1       30
 #define R8A7779_CLK_MMC0       31
 
-
 #endif /* __DT_BINDINGS_CLOCK_R8A7779_H__ */
diff --git a/include/dt-bindings/clock/r8a7790-clock.h b/include/dt-bindings/clock/r8a7790-clock.h
deleted file mode 100644 (file)
index c92ff1e..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- * Copyright 2013 Ideas On Board SPRL
- */
-
-#ifndef __DT_BINDINGS_CLOCK_R8A7790_H__
-#define __DT_BINDINGS_CLOCK_R8A7790_H__
-
-/* CPG */
-#define R8A7790_CLK_MAIN               0
-#define R8A7790_CLK_PLL0               1
-#define R8A7790_CLK_PLL1               2
-#define R8A7790_CLK_PLL3               3
-#define R8A7790_CLK_LB                 4
-#define R8A7790_CLK_QSPI               5
-#define R8A7790_CLK_SDH                        6
-#define R8A7790_CLK_SD0                        7
-#define R8A7790_CLK_SD1                        8
-#define R8A7790_CLK_Z                  9
-#define R8A7790_CLK_RCAN               10
-#define R8A7790_CLK_ADSP               11
-
-/* MSTP0 */
-#define R8A7790_CLK_MSIOF0             0
-
-/* MSTP1 */
-#define R8A7790_CLK_VCP1               0
-#define R8A7790_CLK_VCP0               1
-#define R8A7790_CLK_VPC1               2
-#define R8A7790_CLK_VPC0               3
-#define R8A7790_CLK_JPU                        6
-#define R8A7790_CLK_SSP1               9
-#define R8A7790_CLK_TMU1               11
-#define R8A7790_CLK_3DG                        12
-#define R8A7790_CLK_2DDMAC             15
-#define R8A7790_CLK_FDP1_2             17
-#define R8A7790_CLK_FDP1_1             18
-#define R8A7790_CLK_FDP1_0             19
-#define R8A7790_CLK_TMU3               21
-#define R8A7790_CLK_TMU2               22
-#define R8A7790_CLK_CMT0               24
-#define R8A7790_CLK_TMU0               25
-#define R8A7790_CLK_VSP1_DU1           27
-#define R8A7790_CLK_VSP1_DU0           28
-#define R8A7790_CLK_VSP1_R             30
-#define R8A7790_CLK_VSP1_S             31
-
-/* MSTP2 */
-#define R8A7790_CLK_SCIFA2             2
-#define R8A7790_CLK_SCIFA1             3
-#define R8A7790_CLK_SCIFA0             4
-#define R8A7790_CLK_MSIOF2             5
-#define R8A7790_CLK_SCIFB0             6
-#define R8A7790_CLK_SCIFB1             7
-#define R8A7790_CLK_MSIOF1             8
-#define R8A7790_CLK_MSIOF3             15
-#define R8A7790_CLK_SCIFB2             16
-#define R8A7790_CLK_SYS_DMAC1          18
-#define R8A7790_CLK_SYS_DMAC0          19
-
-/* MSTP3 */
-#define R8A7790_CLK_IIC2               0
-#define R8A7790_CLK_TPU0               4
-#define R8A7790_CLK_MMCIF1             5
-#define R8A7790_CLK_SCIF2              10
-#define R8A7790_CLK_SDHI3              11
-#define R8A7790_CLK_SDHI2              12
-#define R8A7790_CLK_SDHI1              13
-#define R8A7790_CLK_SDHI0              14
-#define R8A7790_CLK_MMCIF0             15
-#define R8A7790_CLK_IIC0               18
-#define R8A7790_CLK_PCIEC              19
-#define R8A7790_CLK_IIC1               23
-#define R8A7790_CLK_SSUSB              28
-#define R8A7790_CLK_CMT1               29
-#define R8A7790_CLK_USBDMAC0           30
-#define R8A7790_CLK_USBDMAC1           31
-
-/* MSTP4 */
-#define R8A7790_CLK_IRQC               7
-#define R8A7790_CLK_INTC_SYS           8
-
-/* MSTP5 */
-#define R8A7790_CLK_AUDIO_DMAC1                1
-#define R8A7790_CLK_AUDIO_DMAC0                2
-#define R8A7790_CLK_ADSP_MOD           6
-#define R8A7790_CLK_THERMAL            22
-#define R8A7790_CLK_PWM                        23
-
-/* MSTP7 */
-#define R8A7790_CLK_EHCI               3
-#define R8A7790_CLK_HSUSB              4
-#define R8A7790_CLK_HSCIF1             16
-#define R8A7790_CLK_HSCIF0             17
-#define R8A7790_CLK_SCIF1              20
-#define R8A7790_CLK_SCIF0              21
-#define R8A7790_CLK_DU2                        22
-#define R8A7790_CLK_DU1                        23
-#define R8A7790_CLK_DU0                        24
-#define R8A7790_CLK_LVDS1              25
-#define R8A7790_CLK_LVDS0              26
-
-/* MSTP8 */
-#define R8A7790_CLK_MLB                        2
-#define R8A7790_CLK_VIN3               8
-#define R8A7790_CLK_VIN2               9
-#define R8A7790_CLK_VIN1               10
-#define R8A7790_CLK_VIN0               11
-#define R8A7790_CLK_ETHERAVB           12
-#define R8A7790_CLK_ETHER              13
-#define R8A7790_CLK_SATA1              14
-#define R8A7790_CLK_SATA0              15
-
-/* MSTP9 */
-#define R8A7790_CLK_GPIO5              7
-#define R8A7790_CLK_GPIO4              8
-#define R8A7790_CLK_GPIO3              9
-#define R8A7790_CLK_GPIO2              10
-#define R8A7790_CLK_GPIO1              11
-#define R8A7790_CLK_GPIO0              12
-#define R8A7790_CLK_RCAN1              15
-#define R8A7790_CLK_RCAN0              16
-#define R8A7790_CLK_QSPI_MOD           17
-#define R8A7790_CLK_IICDVFS            26
-#define R8A7790_CLK_I2C3               28
-#define R8A7790_CLK_I2C2               29
-#define R8A7790_CLK_I2C1               30
-#define R8A7790_CLK_I2C0               31
-
-/* MSTP10 */
-#define R8A7790_CLK_SSI_ALL            5
-#define R8A7790_CLK_SSI9               6
-#define R8A7790_CLK_SSI8               7
-#define R8A7790_CLK_SSI7               8
-#define R8A7790_CLK_SSI6               9
-#define R8A7790_CLK_SSI5               10
-#define R8A7790_CLK_SSI4               11
-#define R8A7790_CLK_SSI3               12
-#define R8A7790_CLK_SSI2               13
-#define R8A7790_CLK_SSI1               14
-#define R8A7790_CLK_SSI0               15
-#define R8A7790_CLK_SCU_ALL            17
-#define R8A7790_CLK_SCU_DVC1           18
-#define R8A7790_CLK_SCU_DVC0           19
-#define R8A7790_CLK_SCU_CTU1_MIX1      20
-#define R8A7790_CLK_SCU_CTU0_MIX0      21
-#define R8A7790_CLK_SCU_SRC9           22
-#define R8A7790_CLK_SCU_SRC8           23
-#define R8A7790_CLK_SCU_SRC7           24
-#define R8A7790_CLK_SCU_SRC6           25
-#define R8A7790_CLK_SCU_SRC5           26
-#define R8A7790_CLK_SCU_SRC4           27
-#define R8A7790_CLK_SCU_SRC3           28
-#define R8A7790_CLK_SCU_SRC2           29
-#define R8A7790_CLK_SCU_SRC1           30
-#define R8A7790_CLK_SCU_SRC0           31
-
-#endif /* __DT_BINDINGS_CLOCK_R8A7790_H__ */
diff --git a/include/dt-bindings/clock/r8a7791-clock.h b/include/dt-bindings/clock/r8a7791-clock.h
deleted file mode 100644 (file)
index bb4f18b..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- * Copyright 2013 Ideas On Board SPRL
- */
-
-#ifndef __DT_BINDINGS_CLOCK_R8A7791_H__
-#define __DT_BINDINGS_CLOCK_R8A7791_H__
-
-/* CPG */
-#define R8A7791_CLK_MAIN               0
-#define R8A7791_CLK_PLL0               1
-#define R8A7791_CLK_PLL1               2
-#define R8A7791_CLK_PLL3               3
-#define R8A7791_CLK_LB                 4
-#define R8A7791_CLK_QSPI               5
-#define R8A7791_CLK_SDH                        6
-#define R8A7791_CLK_SD0                        7
-#define R8A7791_CLK_Z                  8
-#define R8A7791_CLK_RCAN               9
-#define R8A7791_CLK_ADSP               10
-
-/* MSTP0 */
-#define R8A7791_CLK_MSIOF0             0
-
-/* MSTP1 */
-#define R8A7791_CLK_VCP0               1
-#define R8A7791_CLK_VPC0               3
-#define R8A7791_CLK_JPU                        6
-#define R8A7791_CLK_SSP1               9
-#define R8A7791_CLK_TMU1               11
-#define R8A7791_CLK_3DG                        12
-#define R8A7791_CLK_2DDMAC             15
-#define R8A7791_CLK_FDP1_1             18
-#define R8A7791_CLK_FDP1_0             19
-#define R8A7791_CLK_TMU3               21
-#define R8A7791_CLK_TMU2               22
-#define R8A7791_CLK_CMT0               24
-#define R8A7791_CLK_TMU0               25
-#define R8A7791_CLK_VSP1_DU1           27
-#define R8A7791_CLK_VSP1_DU0           28
-#define R8A7791_CLK_VSP1_S             31
-
-/* MSTP2 */
-#define R8A7791_CLK_SCIFA2             2
-#define R8A7791_CLK_SCIFA1             3
-#define R8A7791_CLK_SCIFA0             4
-#define R8A7791_CLK_MSIOF2             5
-#define R8A7791_CLK_SCIFB0             6
-#define R8A7791_CLK_SCIFB1             7
-#define R8A7791_CLK_MSIOF1             8
-#define R8A7791_CLK_SCIFB2             16
-#define R8A7791_CLK_SYS_DMAC1          18
-#define R8A7791_CLK_SYS_DMAC0          19
-
-/* MSTP3 */
-#define R8A7791_CLK_TPU0               4
-#define R8A7791_CLK_SDHI2              11
-#define R8A7791_CLK_SDHI1              12
-#define R8A7791_CLK_SDHI0              14
-#define R8A7791_CLK_MMCIF0             15
-#define R8A7791_CLK_IIC0               18
-#define R8A7791_CLK_PCIEC              19
-#define R8A7791_CLK_IIC1               23
-#define R8A7791_CLK_SSUSB              28
-#define R8A7791_CLK_CMT1               29
-#define R8A7791_CLK_USBDMAC0           30
-#define R8A7791_CLK_USBDMAC1           31
-
-/* MSTP4 */
-#define R8A7791_CLK_IRQC               7
-#define R8A7791_CLK_INTC_SYS           8
-
-/* MSTP5 */
-#define R8A7791_CLK_AUDIO_DMAC1                1
-#define R8A7791_CLK_AUDIO_DMAC0                2
-#define R8A7791_CLK_ADSP_MOD           6
-#define R8A7791_CLK_THERMAL            22
-#define R8A7791_CLK_PWM                        23
-
-/* MSTP7 */
-#define R8A7791_CLK_EHCI               3
-#define R8A7791_CLK_HSUSB              4
-#define R8A7791_CLK_HSCIF2             13
-#define R8A7791_CLK_SCIF5              14
-#define R8A7791_CLK_SCIF4              15
-#define R8A7791_CLK_HSCIF1             16
-#define R8A7791_CLK_HSCIF0             17
-#define R8A7791_CLK_SCIF3              18
-#define R8A7791_CLK_SCIF2              19
-#define R8A7791_CLK_SCIF1              20
-#define R8A7791_CLK_SCIF0              21
-#define R8A7791_CLK_DU1                        23
-#define R8A7791_CLK_DU0                        24
-#define R8A7791_CLK_LVDS0              26
-
-/* MSTP8 */
-#define R8A7791_CLK_IPMMU_SGX          0
-#define R8A7791_CLK_MLB                        2
-#define R8A7791_CLK_VIN2               9
-#define R8A7791_CLK_VIN1               10
-#define R8A7791_CLK_VIN0               11
-#define R8A7791_CLK_ETHERAVB           12
-#define R8A7791_CLK_ETHER              13
-#define R8A7791_CLK_SATA1              14
-#define R8A7791_CLK_SATA0              15
-
-/* MSTP9 */
-#define R8A7791_CLK_GYROADC            1
-#define R8A7791_CLK_GPIO7              4
-#define R8A7791_CLK_GPIO6              5
-#define R8A7791_CLK_GPIO5              7
-#define R8A7791_CLK_GPIO4              8
-#define R8A7791_CLK_GPIO3              9
-#define R8A7791_CLK_GPIO2              10
-#define R8A7791_CLK_GPIO1              11
-#define R8A7791_CLK_GPIO0              12
-#define R8A7791_CLK_RCAN1              15
-#define R8A7791_CLK_RCAN0              16
-#define R8A7791_CLK_QSPI_MOD           17
-#define R8A7791_CLK_I2C5               25
-#define R8A7791_CLK_IICDVFS            26
-#define R8A7791_CLK_I2C4               27
-#define R8A7791_CLK_I2C3               28
-#define R8A7791_CLK_I2C2               29
-#define R8A7791_CLK_I2C1               30
-#define R8A7791_CLK_I2C0               31
-
-/* MSTP10 */
-#define R8A7791_CLK_SSI_ALL            5
-#define R8A7791_CLK_SSI9               6
-#define R8A7791_CLK_SSI8               7
-#define R8A7791_CLK_SSI7               8
-#define R8A7791_CLK_SSI6               9
-#define R8A7791_CLK_SSI5               10
-#define R8A7791_CLK_SSI4               11
-#define R8A7791_CLK_SSI3               12
-#define R8A7791_CLK_SSI2               13
-#define R8A7791_CLK_SSI1               14
-#define R8A7791_CLK_SSI0               15
-#define R8A7791_CLK_SCU_ALL            17
-#define R8A7791_CLK_SCU_DVC1           18
-#define R8A7791_CLK_SCU_DVC0           19
-#define R8A7791_CLK_SCU_CTU1_MIX1      20
-#define R8A7791_CLK_SCU_CTU0_MIX0      21
-#define R8A7791_CLK_SCU_SRC9           22
-#define R8A7791_CLK_SCU_SRC8           23
-#define R8A7791_CLK_SCU_SRC7           24
-#define R8A7791_CLK_SCU_SRC6           25
-#define R8A7791_CLK_SCU_SRC5           26
-#define R8A7791_CLK_SCU_SRC4           27
-#define R8A7791_CLK_SCU_SRC3           28
-#define R8A7791_CLK_SCU_SRC2           29
-#define R8A7791_CLK_SCU_SRC1           30
-#define R8A7791_CLK_SCU_SRC0           31
-
-/* MSTP11 */
-#define R8A7791_CLK_SCIFA3             6
-#define R8A7791_CLK_SCIFA4             7
-#define R8A7791_CLK_SCIFA5             8
-
-#endif /* __DT_BINDINGS_CLOCK_R8A7791_H__ */
diff --git a/include/dt-bindings/clock/r8a7792-clock.h b/include/dt-bindings/clock/r8a7792-clock.h
deleted file mode 100644 (file)
index 2948d9c..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- * Copyright (C) 2016 Cogent Embedded, Inc.
- */
-
-#ifndef __DT_BINDINGS_CLOCK_R8A7792_H__
-#define __DT_BINDINGS_CLOCK_R8A7792_H__
-
-/* CPG */
-#define R8A7792_CLK_MAIN               0
-#define R8A7792_CLK_PLL0               1
-#define R8A7792_CLK_PLL1               2
-#define R8A7792_CLK_PLL3               3
-#define R8A7792_CLK_LB                 4
-#define R8A7792_CLK_QSPI               5
-
-/* MSTP0 */
-#define R8A7792_CLK_MSIOF0             0
-
-/* MSTP1 */
-#define R8A7792_CLK_JPU                        6
-#define R8A7792_CLK_TMU1               11
-#define R8A7792_CLK_TMU3               21
-#define R8A7792_CLK_TMU2               22
-#define R8A7792_CLK_CMT0               24
-#define R8A7792_CLK_TMU0               25
-#define R8A7792_CLK_VSP1DU1            27
-#define R8A7792_CLK_VSP1DU0            28
-#define R8A7792_CLK_VSP1_SY            31
-
-/* MSTP2 */
-#define R8A7792_CLK_MSIOF1             8
-#define R8A7792_CLK_SYS_DMAC1          18
-#define R8A7792_CLK_SYS_DMAC0          19
-
-/* MSTP3 */
-#define R8A7792_CLK_TPU0               4
-#define R8A7792_CLK_SDHI0              14
-#define R8A7792_CLK_CMT1               29
-
-/* MSTP4 */
-#define R8A7792_CLK_IRQC               7
-#define R8A7792_CLK_INTC_SYS           8
-
-/* MSTP5 */
-#define R8A7792_CLK_AUDIO_DMAC0                2
-#define R8A7792_CLK_THERMAL            22
-#define R8A7792_CLK_PWM                        23
-
-/* MSTP7 */
-#define R8A7792_CLK_HSCIF1             16
-#define R8A7792_CLK_HSCIF0             17
-#define R8A7792_CLK_SCIF3              18
-#define R8A7792_CLK_SCIF2              19
-#define R8A7792_CLK_SCIF1              20
-#define R8A7792_CLK_SCIF0              21
-#define R8A7792_CLK_DU1                        23
-#define R8A7792_CLK_DU0                        24
-
-/* MSTP8 */
-#define R8A7792_CLK_VIN5               4
-#define R8A7792_CLK_VIN4               5
-#define R8A7792_CLK_VIN3               8
-#define R8A7792_CLK_VIN2               9
-#define R8A7792_CLK_VIN1               10
-#define R8A7792_CLK_VIN0               11
-#define R8A7792_CLK_ETHERAVB           12
-
-/* MSTP9 */
-#define R8A7792_CLK_GPIO7              4
-#define R8A7792_CLK_GPIO6              5
-#define R8A7792_CLK_GPIO5              7
-#define R8A7792_CLK_GPIO4              8
-#define R8A7792_CLK_GPIO3              9
-#define R8A7792_CLK_GPIO2              10
-#define R8A7792_CLK_GPIO1              11
-#define R8A7792_CLK_GPIO0              12
-#define R8A7792_CLK_GPIO11             13
-#define R8A7792_CLK_GPIO10             14
-#define R8A7792_CLK_CAN1               15
-#define R8A7792_CLK_CAN0               16
-#define R8A7792_CLK_QSPI_MOD           17
-#define R8A7792_CLK_GPIO9              19
-#define R8A7792_CLK_GPIO8              21
-#define R8A7792_CLK_I2C5               25
-#define R8A7792_CLK_IICDVFS            26
-#define R8A7792_CLK_I2C4               27
-#define R8A7792_CLK_I2C3               28
-#define R8A7792_CLK_I2C2               29
-#define R8A7792_CLK_I2C1               30
-#define R8A7792_CLK_I2C0               31
-
-/* MSTP10 */
-#define R8A7792_CLK_SSI_ALL            5
-#define R8A7792_CLK_SSI4               11
-#define R8A7792_CLK_SSI3               12
-
-#endif /* __DT_BINDINGS_CLOCK_R8A7792_H__ */
diff --git a/include/dt-bindings/clock/r8a7793-clock.h b/include/dt-bindings/clock/r8a7793-clock.h
deleted file mode 100644 (file)
index 49c66d8..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0
- *
- * r8a7793 clock definition
- *
- * Copyright (C) 2014  Renesas Electronics Corporation
- */
-
-#ifndef __DT_BINDINGS_CLOCK_R8A7793_H__
-#define __DT_BINDINGS_CLOCK_R8A7793_H__
-
-/* CPG */
-#define R8A7793_CLK_MAIN               0
-#define R8A7793_CLK_PLL0               1
-#define R8A7793_CLK_PLL1               2
-#define R8A7793_CLK_PLL3               3
-#define R8A7793_CLK_LB                 4
-#define R8A7793_CLK_QSPI               5
-#define R8A7793_CLK_SDH                        6
-#define R8A7793_CLK_SD0                        7
-#define R8A7793_CLK_Z                  8
-#define R8A7793_CLK_RCAN               9
-#define R8A7793_CLK_ADSP               10
-
-/* MSTP0 */
-#define R8A7793_CLK_MSIOF0             0
-
-/* MSTP1 */
-#define R8A7793_CLK_VCP0               1
-#define R8A7793_CLK_VPC0               3
-#define R8A7793_CLK_SSP1               9
-#define R8A7793_CLK_TMU1               11
-#define R8A7793_CLK_3DG                        12
-#define R8A7793_CLK_2DDMAC             15
-#define R8A7793_CLK_FDP1_1             18
-#define R8A7793_CLK_FDP1_0             19
-#define R8A7793_CLK_TMU3               21
-#define R8A7793_CLK_TMU2               22
-#define R8A7793_CLK_CMT0               24
-#define R8A7793_CLK_TMU0               25
-#define R8A7793_CLK_VSP1_DU1           27
-#define R8A7793_CLK_VSP1_DU0           28
-#define R8A7793_CLK_VSP1_S             31
-
-/* MSTP2 */
-#define R8A7793_CLK_SCIFA2             2
-#define R8A7793_CLK_SCIFA1             3
-#define R8A7793_CLK_SCIFA0             4
-#define R8A7793_CLK_MSIOF2             5
-#define R8A7793_CLK_SCIFB0             6
-#define R8A7793_CLK_SCIFB1             7
-#define R8A7793_CLK_MSIOF1             8
-#define R8A7793_CLK_SCIFB2             16
-#define R8A7793_CLK_SYS_DMAC1          18
-#define R8A7793_CLK_SYS_DMAC0          19
-
-/* MSTP3 */
-#define R8A7793_CLK_TPU0               4
-#define R8A7793_CLK_SDHI2              11
-#define R8A7793_CLK_SDHI1              12
-#define R8A7793_CLK_SDHI0              14
-#define R8A7793_CLK_MMCIF0             15
-#define R8A7793_CLK_IIC0               18
-#define R8A7793_CLK_PCIEC              19
-#define R8A7793_CLK_IIC1               23
-#define R8A7793_CLK_SSUSB              28
-#define R8A7793_CLK_CMT1               29
-#define R8A7793_CLK_USBDMAC0           30
-#define R8A7793_CLK_USBDMAC1           31
-
-/* MSTP4 */
-#define R8A7793_CLK_IRQC               7
-#define R8A7793_CLK_INTC_SYS           8
-
-/* MSTP5 */
-#define R8A7793_CLK_AUDIO_DMAC1                1
-#define R8A7793_CLK_AUDIO_DMAC0                2
-#define R8A7793_CLK_ADSP_MOD           6
-#define R8A7793_CLK_THERMAL            22
-#define R8A7793_CLK_PWM                        23
-
-/* MSTP7 */
-#define R8A7793_CLK_EHCI               3
-#define R8A7793_CLK_HSUSB              4
-#define R8A7793_CLK_HSCIF2             13
-#define R8A7793_CLK_SCIF5              14
-#define R8A7793_CLK_SCIF4              15
-#define R8A7793_CLK_HSCIF1             16
-#define R8A7793_CLK_HSCIF0             17
-#define R8A7793_CLK_SCIF3              18
-#define R8A7793_CLK_SCIF2              19
-#define R8A7793_CLK_SCIF1              20
-#define R8A7793_CLK_SCIF0              21
-#define R8A7793_CLK_DU1                        23
-#define R8A7793_CLK_DU0                        24
-#define R8A7793_CLK_LVDS0              26
-
-/* MSTP8 */
-#define R8A7793_CLK_IPMMU_SGX          0
-#define R8A7793_CLK_VIN2               9
-#define R8A7793_CLK_VIN1               10
-#define R8A7793_CLK_VIN0               11
-#define R8A7793_CLK_ETHER              13
-#define R8A7793_CLK_SATA1              14
-#define R8A7793_CLK_SATA0              15
-
-/* MSTP9 */
-#define R8A7793_CLK_GPIO7              4
-#define R8A7793_CLK_GPIO6              5
-#define R8A7793_CLK_GPIO5              7
-#define R8A7793_CLK_GPIO4              8
-#define R8A7793_CLK_GPIO3              9
-#define R8A7793_CLK_GPIO2              10
-#define R8A7793_CLK_GPIO1              11
-#define R8A7793_CLK_GPIO0              12
-#define R8A7793_CLK_RCAN1              15
-#define R8A7793_CLK_RCAN0              16
-#define R8A7793_CLK_QSPI_MOD           17
-#define R8A7793_CLK_I2C5               25
-#define R8A7793_CLK_IICDVFS            26
-#define R8A7793_CLK_I2C4               27
-#define R8A7793_CLK_I2C3               28
-#define R8A7793_CLK_I2C2               29
-#define R8A7793_CLK_I2C1               30
-#define R8A7793_CLK_I2C0               31
-
-/* MSTP10 */
-#define R8A7793_CLK_SSI_ALL            5
-#define R8A7793_CLK_SSI9               6
-#define R8A7793_CLK_SSI8               7
-#define R8A7793_CLK_SSI7               8
-#define R8A7793_CLK_SSI6               9
-#define R8A7793_CLK_SSI5               10
-#define R8A7793_CLK_SSI4               11
-#define R8A7793_CLK_SSI3               12
-#define R8A7793_CLK_SSI2               13
-#define R8A7793_CLK_SSI1               14
-#define R8A7793_CLK_SSI0               15
-#define R8A7793_CLK_SCU_ALL            17
-#define R8A7793_CLK_SCU_DVC1           18
-#define R8A7793_CLK_SCU_DVC0           19
-#define R8A7793_CLK_SCU_CTU1_MIX1      20
-#define R8A7793_CLK_SCU_CTU0_MIX0      21
-#define R8A7793_CLK_SCU_SRC9           22
-#define R8A7793_CLK_SCU_SRC8           23
-#define R8A7793_CLK_SCU_SRC7           24
-#define R8A7793_CLK_SCU_SRC6           25
-#define R8A7793_CLK_SCU_SRC5           26
-#define R8A7793_CLK_SCU_SRC4           27
-#define R8A7793_CLK_SCU_SRC3           28
-#define R8A7793_CLK_SCU_SRC2           29
-#define R8A7793_CLK_SCU_SRC1           30
-#define R8A7793_CLK_SCU_SRC0           31
-
-/* MSTP11 */
-#define R8A7793_CLK_SCIFA3             6
-#define R8A7793_CLK_SCIFA4             7
-#define R8A7793_CLK_SCIFA5             8
-
-#endif /* __DT_BINDINGS_CLOCK_R8A7793_H__ */
diff --git a/include/dt-bindings/clock/r8a7794-clock.h b/include/dt-bindings/clock/r8a7794-clock.h
deleted file mode 100644 (file)
index 649f005..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+
- *
- * Copyright (C) 2014 Renesas Electronics Corporation
- * Copyright 2013 Ideas On Board SPRL
- */
-
-#ifndef __DT_BINDINGS_CLOCK_R8A7794_H__
-#define __DT_BINDINGS_CLOCK_R8A7794_H__
-
-/* CPG */
-#define R8A7794_CLK_MAIN               0
-#define R8A7794_CLK_PLL0               1
-#define R8A7794_CLK_PLL1               2
-#define R8A7794_CLK_PLL3               3
-#define R8A7794_CLK_LB                 4
-#define R8A7794_CLK_QSPI               5
-#define R8A7794_CLK_SDH                        6
-#define R8A7794_CLK_SD0                        7
-#define R8A7794_CLK_RCAN               8
-
-/* MSTP0 */
-#define R8A7794_CLK_MSIOF0             0
-
-/* MSTP1 */
-#define R8A7794_CLK_VCP0               1
-#define R8A7794_CLK_VPC0               3
-#define R8A7794_CLK_TMU1               11
-#define R8A7794_CLK_3DG                        12
-#define R8A7794_CLK_2DDMAC             15
-#define R8A7794_CLK_FDP1_0             19
-#define R8A7794_CLK_TMU3               21
-#define R8A7794_CLK_TMU2               22
-#define R8A7794_CLK_CMT0               24
-#define R8A7794_CLK_TMU0               25
-#define R8A7794_CLK_VSP1_DU0           28
-#define R8A7794_CLK_VSP1_S             31
-
-/* MSTP2 */
-#define R8A7794_CLK_SCIFA2             2
-#define R8A7794_CLK_SCIFA1             3
-#define R8A7794_CLK_SCIFA0             4
-#define R8A7794_CLK_MSIOF2             5
-#define R8A7794_CLK_SCIFB0             6
-#define R8A7794_CLK_SCIFB1             7
-#define R8A7794_CLK_MSIOF1             8
-#define R8A7794_CLK_SCIFB2             16
-#define R8A7794_CLK_SYS_DMAC1          18
-#define R8A7794_CLK_SYS_DMAC0          19
-
-/* MSTP3 */
-#define R8A7794_CLK_SDHI2              11
-#define R8A7794_CLK_SDHI1              12
-#define R8A7794_CLK_SDHI0              14
-#define R8A7794_CLK_MMCIF0             15
-#define R8A7794_CLK_IIC0               18
-#define R8A7794_CLK_IIC1               23
-#define R8A7794_CLK_CMT1               29
-#define R8A7794_CLK_USBDMAC0           30
-#define R8A7794_CLK_USBDMAC1           31
-
-/* MSTP4 */
-#define R8A7794_CLK_IRQC               7
-#define R8A7794_CLK_INTC_SYS           8
-
-/* MSTP5 */
-#define R8A7794_CLK_AUDIO_DMAC0                2
-#define R8A7794_CLK_PWM                        23
-
-/* MSTP7 */
-#define R8A7794_CLK_EHCI               3
-#define R8A7794_CLK_HSUSB              4
-#define R8A7794_CLK_HSCIF2             13
-#define R8A7794_CLK_SCIF5              14
-#define R8A7794_CLK_SCIF4              15
-#define R8A7794_CLK_HSCIF1             16
-#define R8A7794_CLK_HSCIF0             17
-#define R8A7794_CLK_SCIF3              18
-#define R8A7794_CLK_SCIF2              19
-#define R8A7794_CLK_SCIF1              20
-#define R8A7794_CLK_SCIF0              21
-#define R8A7794_CLK_DU1                        23
-#define R8A7794_CLK_DU0                        24
-
-/* MSTP8 */
-#define R8A7794_CLK_VIN1               10
-#define R8A7794_CLK_VIN0               11
-#define R8A7794_CLK_ETHERAVB           12
-#define R8A7794_CLK_ETHER              13
-
-/* MSTP9 */
-#define R8A7794_CLK_GPIO6              5
-#define R8A7794_CLK_GPIO5              7
-#define R8A7794_CLK_GPIO4              8
-#define R8A7794_CLK_GPIO3              9
-#define R8A7794_CLK_GPIO2              10
-#define R8A7794_CLK_GPIO1              11
-#define R8A7794_CLK_GPIO0              12
-#define R8A7794_CLK_RCAN1              15
-#define R8A7794_CLK_RCAN0              16
-#define R8A7794_CLK_QSPI_MOD           17
-#define R8A7794_CLK_I2C5               25
-#define R8A7794_CLK_I2C4               27
-#define R8A7794_CLK_I2C3               28
-#define R8A7794_CLK_I2C2               29
-#define R8A7794_CLK_I2C1               30
-#define R8A7794_CLK_I2C0               31
-
-/* MSTP10 */
-#define R8A7794_CLK_SSI_ALL            5
-#define R8A7794_CLK_SSI9               6
-#define R8A7794_CLK_SSI8               7
-#define R8A7794_CLK_SSI7               8
-#define R8A7794_CLK_SSI6               9
-#define R8A7794_CLK_SSI5               10
-#define R8A7794_CLK_SSI4               11
-#define R8A7794_CLK_SSI3               12
-#define R8A7794_CLK_SSI2               13
-#define R8A7794_CLK_SSI1               14
-#define R8A7794_CLK_SSI0               15
-#define R8A7794_CLK_SCU_ALL            17
-#define R8A7794_CLK_SCU_DVC1           18
-#define R8A7794_CLK_SCU_DVC0           19
-#define R8A7794_CLK_SCU_CTU1_MIX1      20
-#define R8A7794_CLK_SCU_CTU0_MIX0      21
-#define R8A7794_CLK_SCU_SRC6           25
-#define R8A7794_CLK_SCU_SRC5           26
-#define R8A7794_CLK_SCU_SRC4           27
-#define R8A7794_CLK_SCU_SRC3           28
-#define R8A7794_CLK_SCU_SRC2           29
-#define R8A7794_CLK_SCU_SRC1           30
-
-/* MSTP11 */
-#define R8A7794_CLK_SCIFA3             6
-#define R8A7794_CLK_SCIFA4             7
-#define R8A7794_CLK_SCIFA5             8
-
-#endif /* __DT_BINDINGS_CLOCK_R8A7794_H__ */
index 6a47825dac5d93c6d40cb3a1543ab4ab9cb3011e..b609fcf96508316999bbc2d8848be2f741297bb2 100644 (file)
 #define PCLK_GMAC              367
 #define PCLK_PMU_PRE           368
 #define PCLK_SIM_CARD          369
+#define PCLK_MIPIPHY           370
 
 /* hclk gates */
 #define HCLK_SPDIF             440
 #define HCLK_TSP               475
 #define HCLK_CRYPTO            476
 #define HCLK_PERI              478
-
-#define CLK_NR_CLKS            (HCLK_PERI + 1)
+#define HCLK_SFC               479
 
 /* soft-reset indices */
 #define SRST_CORE0_PO          0
index afad90680fce47c8bc9f88a13375e9dbd0ceb407..01e14ab252a7db6074db45eb9c59302250386243 100644 (file)
 #define HCLK_VDPU              472
 #define HCLK_HDMI              473
 
-#define CLK_NR_CLKS            (HCLK_HDMI + 1)
-
 /* soft-reset indices */
 #define SRST_MCORE             2
 #define SRST_CORE0             3
diff --git a/include/dt-bindings/clock/sophgo,sg2042-clkgen.h b/include/dt-bindings/clock/sophgo,sg2042-clkgen.h
new file mode 100644 (file)
index 0000000..84f7857
--- /dev/null
@@ -0,0 +1,111 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
+/*
+ * Copyright (C) 2023 Sophgo Technology Inc. All rights reserved.
+ */
+
+#ifndef __DT_BINDINGS_SOPHGO_SG2042_CLKGEN_H__
+#define __DT_BINDINGS_SOPHGO_SG2042_CLKGEN_H__
+
+#define DIV_CLK_MPLL_RP_CPU_NORMAL_0   0
+#define DIV_CLK_MPLL_AXI_DDR_0         1
+#define DIV_CLK_FPLL_DDR01_1           2
+#define DIV_CLK_FPLL_DDR23_1           3
+#define DIV_CLK_FPLL_RP_CPU_NORMAL_1   4
+#define DIV_CLK_FPLL_50M_A53           5
+#define DIV_CLK_FPLL_TOP_RP_CMN_DIV2   6
+#define DIV_CLK_FPLL_UART_500M         7
+#define DIV_CLK_FPLL_AHB_LPC           8
+#define DIV_CLK_FPLL_EFUSE             9
+#define DIV_CLK_FPLL_TX_ETH0           10
+#define DIV_CLK_FPLL_PTP_REF_I_ETH0    11
+#define DIV_CLK_FPLL_REF_ETH0          12
+#define DIV_CLK_FPLL_EMMC              13
+#define DIV_CLK_FPLL_SD                        14
+#define DIV_CLK_FPLL_TOP_AXI0          15
+#define DIV_CLK_FPLL_TOP_AXI_HSPERI    16
+#define DIV_CLK_FPLL_AXI_DDR_1         17
+#define DIV_CLK_FPLL_DIV_TIMER1                18
+#define DIV_CLK_FPLL_DIV_TIMER2                19
+#define DIV_CLK_FPLL_DIV_TIMER3                20
+#define DIV_CLK_FPLL_DIV_TIMER4                21
+#define DIV_CLK_FPLL_DIV_TIMER5                22
+#define DIV_CLK_FPLL_DIV_TIMER6                23
+#define DIV_CLK_FPLL_DIV_TIMER7                24
+#define DIV_CLK_FPLL_DIV_TIMER8                25
+#define DIV_CLK_FPLL_100K_EMMC         26
+#define DIV_CLK_FPLL_100K_SD           27
+#define DIV_CLK_FPLL_GPIO_DB           28
+#define DIV_CLK_DPLL0_DDR01_0          29
+#define DIV_CLK_DPLL1_DDR23_0          30
+
+#define GATE_CLK_RP_CPU_NORMAL_DIV0    31
+#define GATE_CLK_AXI_DDR_DIV0          32
+
+#define GATE_CLK_RP_CPU_NORMAL_DIV1    33
+#define GATE_CLK_A53_50M               34
+#define GATE_CLK_TOP_RP_CMN_DIV2       35
+#define GATE_CLK_HSDMA                 36
+#define GATE_CLK_EMMC_100M             37
+#define GATE_CLK_SD_100M               38
+#define GATE_CLK_TX_ETH0               39
+#define GATE_CLK_PTP_REF_I_ETH0                40
+#define GATE_CLK_REF_ETH0              41
+#define GATE_CLK_UART_500M             42
+#define GATE_CLK_EFUSE                 43
+
+#define GATE_CLK_AHB_LPC               44
+#define GATE_CLK_AHB_ROM               45
+#define GATE_CLK_AHB_SF                        46
+
+#define GATE_CLK_APB_UART              47
+#define GATE_CLK_APB_TIMER             48
+#define GATE_CLK_APB_EFUSE             49
+#define GATE_CLK_APB_GPIO              50
+#define GATE_CLK_APB_GPIO_INTR         51
+#define GATE_CLK_APB_SPI               52
+#define GATE_CLK_APB_I2C               53
+#define GATE_CLK_APB_WDT               54
+#define GATE_CLK_APB_PWM               55
+#define GATE_CLK_APB_RTC               56
+
+#define GATE_CLK_AXI_PCIE0             57
+#define GATE_CLK_AXI_PCIE1             58
+#define GATE_CLK_SYSDMA_AXI            59
+#define GATE_CLK_AXI_DBG_I2C           60
+#define GATE_CLK_AXI_SRAM              61
+#define GATE_CLK_AXI_ETH0              62
+#define GATE_CLK_AXI_EMMC              63
+#define GATE_CLK_AXI_SD                        64
+#define GATE_CLK_TOP_AXI0              65
+#define GATE_CLK_TOP_AXI_HSPERI                66
+
+#define GATE_CLK_TIMER1                        67
+#define GATE_CLK_TIMER2                        68
+#define GATE_CLK_TIMER3                        69
+#define GATE_CLK_TIMER4                        70
+#define GATE_CLK_TIMER5                        71
+#define GATE_CLK_TIMER6                        72
+#define GATE_CLK_TIMER7                        73
+#define GATE_CLK_TIMER8                        74
+#define GATE_CLK_100K_EMMC             75
+#define GATE_CLK_100K_SD               76
+#define GATE_CLK_GPIO_DB               77
+
+#define GATE_CLK_AXI_DDR_DIV1          78
+#define GATE_CLK_DDR01_DIV1            79
+#define GATE_CLK_DDR23_DIV1            80
+
+#define GATE_CLK_DDR01_DIV0            81
+#define GATE_CLK_DDR23_DIV0            82
+
+#define GATE_CLK_DDR01                 83
+#define GATE_CLK_DDR23                 84
+#define GATE_CLK_RP_CPU_NORMAL         85
+#define GATE_CLK_AXI_DDR               86
+
+#define MUX_CLK_DDR01                  87
+#define MUX_CLK_DDR23                  88
+#define MUX_CLK_RP_CPU_NORMAL          89
+#define MUX_CLK_AXI_DDR                        90
+
+#endif /* __DT_BINDINGS_SOPHGO_SG2042_CLKGEN_H__ */
diff --git a/include/dt-bindings/clock/sophgo,sg2042-pll.h b/include/dt-bindings/clock/sophgo,sg2042-pll.h
new file mode 100644 (file)
index 0000000..2d519b3
--- /dev/null
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
+/*
+ * Copyright (C) 2023 Sophgo Technology Inc. All rights reserved.
+ */
+
+#ifndef __DT_BINDINGS_SOPHGO_SG2042_PLL_H__
+#define __DT_BINDINGS_SOPHGO_SG2042_PLL_H__
+
+#define MPLL_CLK                       0
+#define FPLL_CLK                       1
+#define DPLL0_CLK                      2
+#define DPLL1_CLK                      3
+
+#endif /* __DT_BINDINGS_SOPHGO_SG2042_PLL_H__ */
diff --git a/include/dt-bindings/clock/sophgo,sg2042-rpgate.h b/include/dt-bindings/clock/sophgo,sg2042-rpgate.h
new file mode 100644 (file)
index 0000000..8b4522d
--- /dev/null
@@ -0,0 +1,58 @@
+/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
+/*
+ * Copyright (C) 2023 Sophgo Technology Inc. All rights reserved.
+ */
+
+#ifndef __DT_BINDINGS_SOPHGO_SG2042_RPGATE_H__
+#define __DT_BINDINGS_SOPHGO_SG2042_RPGATE_H__
+
+#define GATE_CLK_RXU0                  0
+#define GATE_CLK_RXU1                  1
+#define GATE_CLK_RXU2                  2
+#define GATE_CLK_RXU3                  3
+#define GATE_CLK_RXU4                  4
+#define GATE_CLK_RXU5                  5
+#define GATE_CLK_RXU6                  6
+#define GATE_CLK_RXU7                  7
+#define GATE_CLK_RXU8                  8
+#define GATE_CLK_RXU9                  9
+#define GATE_CLK_RXU10                 10
+#define GATE_CLK_RXU11                 11
+#define GATE_CLK_RXU12                 12
+#define GATE_CLK_RXU13                 13
+#define GATE_CLK_RXU14                 14
+#define GATE_CLK_RXU15                 15
+#define GATE_CLK_RXU16                 16
+#define GATE_CLK_RXU17                 17
+#define GATE_CLK_RXU18                 18
+#define GATE_CLK_RXU19                 19
+#define GATE_CLK_RXU20                 20
+#define GATE_CLK_RXU21                 21
+#define GATE_CLK_RXU22                 22
+#define GATE_CLK_RXU23                 23
+#define GATE_CLK_RXU24                 24
+#define GATE_CLK_RXU25                 25
+#define GATE_CLK_RXU26                 26
+#define GATE_CLK_RXU27                 27
+#define GATE_CLK_RXU28                 28
+#define GATE_CLK_RXU29                 29
+#define GATE_CLK_RXU30                 30
+#define GATE_CLK_RXU31                 31
+#define GATE_CLK_MP0                   32
+#define GATE_CLK_MP1                   33
+#define GATE_CLK_MP2                   34
+#define GATE_CLK_MP3                   35
+#define GATE_CLK_MP4                   36
+#define GATE_CLK_MP5                   37
+#define GATE_CLK_MP6                   38
+#define GATE_CLK_MP7                   39
+#define GATE_CLK_MP8                   40
+#define GATE_CLK_MP9                   41
+#define GATE_CLK_MP10                  42
+#define GATE_CLK_MP11                  43
+#define GATE_CLK_MP12                  44
+#define GATE_CLK_MP13                  45
+#define GATE_CLK_MP14                  46
+#define GATE_CLK_MP15                  47
+
+#endif /* __DT_BINDINGS_SOPHGO_SG2042_RPGATE_H__ */
index 6f8f01e676284471e22963a0ae62a9aa10321026..ebb146ab7f8c7d6679f7db4e31196242844f9038 100644 (file)
 #define CLK_HDCP               126
 #define CLK_BUS_HDCP           127
 #define CLK_PLL_SYSTEM_32K     128
+#define CLK_BUS_GPADC          129
 
 #endif /* _DT_BINDINGS_CLK_SUN50I_H616_H_ */
diff --git a/include/dt-bindings/clock/thead,th1520-clk-ap.h b/include/dt-bindings/clock/thead,th1520-clk-ap.h
new file mode 100644 (file)
index 0000000..a199784
--- /dev/null
@@ -0,0 +1,96 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (C) 2023 Vivo Communication Technology Co. Ltd.
+ * Authors: Yangtao Li <frank.li@vivo.com>
+ */
+
+#ifndef _DT_BINDINGS_CLK_TH1520_H_
+#define _DT_BINDINGS_CLK_TH1520_H_
+
+#define CLK_CPU_PLL0           0
+#define CLK_CPU_PLL1           1
+#define CLK_GMAC_PLL           2
+#define CLK_VIDEO_PLL          3
+#define CLK_DPU0_PLL           4
+#define CLK_DPU1_PLL           5
+#define CLK_TEE_PLL            6
+#define CLK_C910_I0            7
+#define CLK_C910               8
+#define CLK_BROM               9
+#define CLK_BMU                        10
+#define CLK_AHB2_CPUSYS_HCLK   11
+#define CLK_APB3_CPUSYS_PCLK   12
+#define CLK_AXI4_CPUSYS2_ACLK  13
+#define CLK_AON2CPU_A2X                14
+#define CLK_X2X_CPUSYS         15
+#define CLK_AXI_ACLK           16
+#define CLK_CPU2AON_X2H                17
+#define CLK_PERI_AHB_HCLK      18
+#define CLK_CPU2PERI_X2H       19
+#define CLK_PERI_APB_PCLK      20
+#define CLK_PERI2APB_PCLK      21
+#define CLK_PERISYS_APB1_HCLK  22
+#define CLK_PERISYS_APB2_HCLK  23
+#define CLK_PERISYS_APB3_HCLK  24
+#define CLK_PERISYS_APB4_HCLK  25
+#define CLK_OSC12M             26
+#define CLK_OUT1               27
+#define CLK_OUT2               28
+#define CLK_OUT3               29
+#define CLK_OUT4               30
+#define CLK_APB_PCLK           31
+#define CLK_NPU                        32
+#define CLK_NPU_AXI            33
+#define CLK_VI                 34
+#define CLK_VI_AHB             35
+#define CLK_VO_AXI             36
+#define CLK_VP_APB             37
+#define CLK_VP_AXI             38
+#define CLK_CPU2VP             39
+#define CLK_VENC               40
+#define CLK_DPU0               41
+#define CLK_DPU1               42
+#define CLK_EMMC_SDIO          43
+#define CLK_GMAC1              44
+#define CLK_PADCTRL1           45
+#define CLK_DSMART             46
+#define CLK_PADCTRL0           47
+#define CLK_GMAC_AXI           48
+#define CLK_GPIO3              49
+#define CLK_GMAC0              50
+#define CLK_PWM                        51
+#define CLK_QSPI0              52
+#define CLK_QSPI1              53
+#define CLK_SPI                        54
+#define CLK_UART0_PCLK         55
+#define CLK_UART1_PCLK         56
+#define CLK_UART2_PCLK         57
+#define CLK_UART3_PCLK         58
+#define CLK_UART4_PCLK         59
+#define CLK_UART5_PCLK         60
+#define CLK_GPIO0              61
+#define CLK_GPIO1              62
+#define CLK_GPIO2              63
+#define CLK_I2C0               64
+#define CLK_I2C1               65
+#define CLK_I2C2               66
+#define CLK_I2C3               67
+#define CLK_I2C4               68
+#define CLK_I2C5               69
+#define CLK_SPINLOCK           70
+#define CLK_DMA                        71
+#define CLK_MBOX0              72
+#define CLK_MBOX1              73
+#define CLK_MBOX2              74
+#define CLK_MBOX3              75
+#define CLK_WDT0               76
+#define CLK_WDT1               77
+#define CLK_TIMER0             78
+#define CLK_TIMER1             79
+#define CLK_SRAM0              80
+#define CLK_SRAM1              81
+#define CLK_SRAM2              82
+#define CLK_SRAM3              83
+#define CLK_PLL_GMAC_100M      84
+#define CLK_UART_SCLK          85
+#endif
diff --git a/include/dt-bindings/i3c/i3c.h b/include/dt-bindings/i3c/i3c.h
new file mode 100644 (file)
index 0000000..3734392
--- /dev/null
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+/*
+ * Copyright 2024 NXP
+ */
+
+#ifndef _DT_BINDINGS_I3C_I3C_H
+#define _DT_BINDINGS_I3C_I3C_H
+
+#define I2C_FM      (1 << 4)
+#define I2C_FM_PLUS (0 << 4)
+
+#define I2C_FILTER  (0 << 5)
+#define I2C_NO_FILTER_HIGH_FREQUENCY    (1 << 5)
+#define I2C_NO_FILTER_LOW_FREQUENCY     (2 << 5)
+
+#endif
diff --git a/include/dt-bindings/iio/adc/mediatek,mt6357-auxadc.h b/include/dt-bindings/iio/adc/mediatek,mt6357-auxadc.h
new file mode 100644 (file)
index 0000000..03ebb1d
--- /dev/null
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+
+#ifndef _DT_BINDINGS_MEDIATEK_MT6357_AUXADC_H
+#define _DT_BINDINGS_MEDIATEK_MT6357_AUXADC_H
+
+/* ADC Channel Index */
+#define MT6357_AUXADC_BATADC           0
+#define MT6357_AUXADC_ISENSE           1
+#define MT6357_AUXADC_VCDT             2
+#define MT6357_AUXADC_BAT_TEMP         3
+#define MT6357_AUXADC_CHIP_TEMP                4
+#define MT6357_AUXADC_ACCDET           5
+#define MT6357_AUXADC_VDCXO            6
+#define MT6357_AUXADC_TSX_TEMP         7
+#define MT6357_AUXADC_HPOFS_CAL                8
+#define MT6357_AUXADC_DCXO_TEMP                9
+#define MT6357_AUXADC_VCORE_TEMP       10
+#define MT6357_AUXADC_VPROC_TEMP       11
+#define MT6357_AUXADC_VBAT             12
+
+#endif
diff --git a/include/dt-bindings/iio/adc/mediatek,mt6358-auxadc.h b/include/dt-bindings/iio/adc/mediatek,mt6358-auxadc.h
new file mode 100644 (file)
index 0000000..efa0839
--- /dev/null
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+
+#ifndef _DT_BINDINGS_MEDIATEK_MT6358_AUXADC_H
+#define _DT_BINDINGS_MEDIATEK_MT6358_AUXADC_H
+
+/* ADC Channel Index */
+#define MT6358_AUXADC_BATADC           0
+#define MT6358_AUXADC_VCDT             1
+#define MT6358_AUXADC_BAT_TEMP         2
+#define MT6358_AUXADC_CHIP_TEMP                3
+#define MT6358_AUXADC_ACCDET           4
+#define MT6358_AUXADC_VDCXO            5
+#define MT6358_AUXADC_TSX_TEMP         6
+#define MT6358_AUXADC_HPOFS_CAL                7
+#define MT6358_AUXADC_DCXO_TEMP                8
+#define MT6358_AUXADC_VBIF             9
+#define MT6358_AUXADC_VCORE_TEMP       10
+#define MT6358_AUXADC_VPROC_TEMP       11
+#define MT6358_AUXADC_VGPU_TEMP                12
+#define MT6358_AUXADC_VBAT             13
+
+#endif
diff --git a/include/dt-bindings/iio/adc/mediatek,mt6359-auxadc.h b/include/dt-bindings/iio/adc/mediatek,mt6359-auxadc.h
new file mode 100644 (file)
index 0000000..5982639
--- /dev/null
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
+
+#ifndef _DT_BINDINGS_MEDIATEK_MT6359_AUXADC_H
+#define _DT_BINDINGS_MEDIATEK_MT6359_AUXADC_H
+
+/* ADC Channel Index */
+#define MT6359_AUXADC_BATADC           0
+#define MT6359_AUXADC_BAT_TEMP         1
+#define MT6359_AUXADC_CHIP_TEMP                2
+#define MT6359_AUXADC_ACCDET           3
+#define MT6359_AUXADC_VDCXO            4
+#define MT6359_AUXADC_TSX_TEMP         5
+#define MT6359_AUXADC_HPOFS_CAL                6
+#define MT6359_AUXADC_DCXO_TEMP                7
+#define MT6359_AUXADC_VBIF             8
+#define MT6359_AUXADC_VCORE_TEMP       9
+#define MT6359_AUXADC_VPROC_TEMP       10
+#define MT6359_AUXADC_VGPU_TEMP                11
+#define MT6359_AUXADC_VBAT             12
+#define MT6359_AUXADC_IBAT             13
+
+#endif
index f0ae03634a966721f00114395f788589d1d7c0d6..afc12f6aa642cb2f9a056536fcc296f184142700 100644 (file)
        MATRIX_KEY(0x07, 0x0b, KEY_UP)          \
        MATRIX_KEY(0x07, 0x0c, KEY_LEFT)
 
+/* No numpad */
+#define CROS_TOP_ROW_KEYMAP_V30 \
+       MATRIX_KEY(0x00, 0x01, KEY_F11)         /* T11 */       \
+       MATRIX_KEY(0x00, 0x02, KEY_F1)          /* T1 */        \
+       MATRIX_KEY(0x00, 0x04, KEY_F10)         /* T10 */       \
+       MATRIX_KEY(0x00, 0x0b, KEY_F14)         /* T14 */       \
+       MATRIX_KEY(0x00, 0x0c, KEY_F15)         /* T15 */       \
+       MATRIX_KEY(0x01, 0x02, KEY_F4)          /* T4 */        \
+       MATRIX_KEY(0x01, 0x04, KEY_F7)          /* T7 */        \
+       MATRIX_KEY(0x01, 0x05, KEY_F12)         /* T12 */       \
+       MATRIX_KEY(0x01, 0x09, KEY_F9)          /* T9 */        \
+       MATRIX_KEY(0x02, 0x02, KEY_F3)          /* T3 */        \
+       MATRIX_KEY(0x02, 0x04, KEY_F6)          /* T6 */        \
+       MATRIX_KEY(0x02, 0x0b, KEY_F8)          /* T8 */        \
+       MATRIX_KEY(0x03, 0x02, KEY_F2)          /* T2 */        \
+       MATRIX_KEY(0x03, 0x05, KEY_F13)         /* T13 */       \
+       MATRIX_KEY(0x04, 0x04, KEY_F5)          /* T5 */
+
+#define CROS_MAIN_KEYMAP_V30                   /* Keycode */   \
+       MATRIX_KEY(0x00, 0x03, KEY_B)           /* 50 */        \
+       MATRIX_KEY(0x00, 0x05, KEY_N)           /* 51 */        \
+       MATRIX_KEY(0x00, 0x06, KEY_RO)          /* 56 (JIS) */  \
+       MATRIX_KEY(0x00, 0x08, KEY_EQUAL)       /* 13 */        \
+       MATRIX_KEY(0x00, 0x09, KEY_HOME)        /* 80 (Numpad) */       \
+       MATRIX_KEY(0x00, 0x0a, KEY_RIGHTALT)    /* 62 */        \
+       MATRIX_KEY(0x00, 0x10, KEY_FN)          /* 127 */       \
+                                                               \
+       MATRIX_KEY(0x01, 0x01, KEY_ESC)         /* 110 */       \
+       MATRIX_KEY(0x01, 0x03, KEY_G)           /* 35 */        \
+       MATRIX_KEY(0x01, 0x06, KEY_H)           /* 36 */        \
+       MATRIX_KEY(0x01, 0x08, KEY_APOSTROPHE)  /* 41 */        \
+       MATRIX_KEY(0x01, 0x0b, KEY_BACKSPACE)   /* 15 */        \
+       MATRIX_KEY(0x01, 0x0c, KEY_HENKAN)      /* 65 (JIS) */  \
+       MATRIX_KEY(0x01, 0x0e, KEY_LEFTCTRL)    /* 58 */        \
+                                                               \
+       MATRIX_KEY(0x02, 0x01, KEY_TAB)         /* 16 */        \
+       MATRIX_KEY(0x02, 0x03, KEY_T)           /* 21 */        \
+       MATRIX_KEY(0x02, 0x05, KEY_RIGHTBRACE)  /* 28 */        \
+       MATRIX_KEY(0x02, 0x06, KEY_Y)           /* 22 */        \
+       MATRIX_KEY(0x02, 0x08, KEY_LEFTBRACE)   /* 27 */        \
+       MATRIX_KEY(0x02, 0x09, KEY_DELETE)      /* 76 (Numpad) */       \
+       MATRIX_KEY(0x02, 0x0c, KEY_PAGEUP)      /* 85 (Numpad) */       \
+       MATRIX_KEY(0x02, 0x011, KEY_YEN)        /* 14 (JIS) */  \
+                                                               \
+       MATRIX_KEY(0x03, 0x00, KEY_LEFTMETA)    /* Launcher */  \
+       MATRIX_KEY(0x03, 0x01, KEY_GRAVE)       /* 1 */ \
+       MATRIX_KEY(0x03, 0x03, KEY_5)           /* 6 */ \
+       MATRIX_KEY(0x03, 0x04, KEY_S)           /* 32 */        \
+       MATRIX_KEY(0x03, 0x06, KEY_MINUS)       /* 12 */        \
+       MATRIX_KEY(0x03, 0x08, KEY_6)           /* 7 */         \
+       MATRIX_KEY(0x03, 0x09, KEY_SLEEP)       /* Lock */      \
+       MATRIX_KEY(0x03, 0x0b, KEY_BACKSLASH)   /* 29 */        \
+       MATRIX_KEY(0x03, 0x0c, KEY_MUHENKAN)    /* 63 (JIS) */  \
+       MATRIX_KEY(0x03, 0x0e, KEY_RIGHTCTRL)   /* 64 */        \
+                                                               \
+       MATRIX_KEY(0x04, 0x01, KEY_A)           /* 31 */        \
+       MATRIX_KEY(0x04, 0x02, KEY_D)           /* 33 */        \
+       MATRIX_KEY(0x04, 0x03, KEY_F)           /* 34 */        \
+       MATRIX_KEY(0x04, 0x05, KEY_K)           /* 38 */        \
+       MATRIX_KEY(0x04, 0x06, KEY_J)           /* 37 */        \
+       MATRIX_KEY(0x04, 0x08, KEY_SEMICOLON)   /* 40 */        \
+       MATRIX_KEY(0x04, 0x09, KEY_L)           /* 39 */        \
+       MATRIX_KEY(0x04, 0x0b, KEY_ENTER)       /* 43 */        \
+       MATRIX_KEY(0x04, 0x0c, KEY_END)         /* 81 (Numpad) */       \
+                                                               \
+       MATRIX_KEY(0x05, 0x01, KEY_1)           /* 2 */ \
+       MATRIX_KEY(0x05, 0x02, KEY_COMMA)       /* 53 */        \
+       MATRIX_KEY(0x05, 0x03, KEY_DOT)         /* 54 */        \
+       MATRIX_KEY(0x05, 0x04, KEY_SLASH)       /* 55 */        \
+       MATRIX_KEY(0x05, 0x05, KEY_C)           /* 48 */        \
+       MATRIX_KEY(0x05, 0x06, KEY_SPACE)       /* 61 */        \
+       MATRIX_KEY(0x05, 0x07, KEY_LEFTSHIFT)   /* 44 */        \
+       MATRIX_KEY(0x05, 0x08, KEY_X)           /* 47 */        \
+       MATRIX_KEY(0x05, 0x09, KEY_V)           /* 49 */        \
+       MATRIX_KEY(0x05, 0x0b, KEY_M)           /* 52 */        \
+       MATRIX_KEY(0x05, 0x0c, KEY_PAGEDOWN)    /* 86 (Numpad) */       \
+                                                               \
+       MATRIX_KEY(0x06, 0x01, KEY_Z)           /* 46 */        \
+       MATRIX_KEY(0x06, 0x02, KEY_3)           /* 4 */         \
+       MATRIX_KEY(0x06, 0x03, KEY_4)           /* 5 */         \
+       MATRIX_KEY(0x06, 0x04, KEY_2)           /* 3 */         \
+       MATRIX_KEY(0x06, 0x05, KEY_8)           /* 9 */         \
+       MATRIX_KEY(0x06, 0x06, KEY_0)           /* 11 */        \
+       MATRIX_KEY(0x06, 0x08, KEY_7)           /* 8 */         \
+       MATRIX_KEY(0x06, 0x09, KEY_9)           /* 10 */        \
+       MATRIX_KEY(0x06, 0x0b, KEY_DOWN)        /* 84 */        \
+       MATRIX_KEY(0x06, 0x0c, KEY_RIGHT)       /* 89 */        \
+       MATRIX_KEY(0x06, 0x0d, KEY_LEFTALT)     /* 60 */        \
+       MATRIX_KEY(0x06, 0x0f, KEY_ASSISTANT)   /* 128 */       \
+       MATRIX_KEY(0x06, 0x11, KEY_BACKSLASH)   /* 42 (JIS, ISO) */     \
+                                                               \
+       MATRIX_KEY(0x07, 0x01, KEY_U)           /* 23 */        \
+       MATRIX_KEY(0x07, 0x02, KEY_I)           /* 24 */        \
+       MATRIX_KEY(0x07, 0x03, KEY_O)           /* 25 */        \
+       MATRIX_KEY(0x07, 0x04, KEY_P)           /* 26 */        \
+       MATRIX_KEY(0x07, 0x05, KEY_Q)           /* 17 */        \
+       MATRIX_KEY(0x07, 0x06, KEY_W)           /* 18 */        \
+       MATRIX_KEY(0x07, 0x07, KEY_RIGHTSHIFT)  /* 57 */        \
+       MATRIX_KEY(0x07, 0x08, KEY_E)           /* 19 */        \
+       MATRIX_KEY(0x07, 0x09, KEY_R)           /* 20 */        \
+       MATRIX_KEY(0x07, 0x0b, KEY_UP)          /* 83 */        \
+       MATRIX_KEY(0x07, 0x0c, KEY_LEFT)        /* 79 */        \
+       MATRIX_KEY(0x07, 0x11, KEY_102ND)       /* 45 (ISO) */
+
 #endif /* _CROS_EC_KEYBOARD_H */
diff --git a/include/dt-bindings/interconnect/mediatek,mt8183.h b/include/dt-bindings/interconnect/mediatek,mt8183.h
new file mode 100644 (file)
index 0000000..1088c35
--- /dev/null
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2021 MediaTek Inc.
+ * Copyright (c) 2024 Collabora Ltd.
+ *                    AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+ */
+
+#ifndef __DT_BINDINGS_INTERCONNECT_MEDIATEK_MT8183_H
+#define __DT_BINDINGS_INTERCONNECT_MEDIATEK_MT8183_H
+
+#define SLAVE_DDR_EMI          0
+#define MASTER_MCUSYS          1
+#define MASTER_MFG             2
+#define MASTER_MMSYS           3
+#define MASTER_MM_VPU          4
+#define MASTER_MM_DISP         5
+#define MASTER_MM_VDEC         6
+#define MASTER_MM_VENC         7
+#define MASTER_MM_CAM          8
+#define MASTER_MM_IMG          9
+#define MASTER_MM_MDP          10
+
+#endif
diff --git a/include/dt-bindings/interconnect/mediatek,mt8195.h b/include/dt-bindings/interconnect/mediatek,mt8195.h
new file mode 100644 (file)
index 0000000..33e0e6c
--- /dev/null
@@ -0,0 +1,44 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2020 MediaTek Inc.
+ * Copyright (c) 2024 Collabora Ltd.
+ *                    AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+ */
+
+#ifndef __DT_BINDINGS_INTERCONNECT_MEDIATEK_MT8195_H
+#define __DT_BINDINGS_INTERCONNECT_MEDIATEK_MT8195_H
+
+#define SLAVE_DDR_EMI          0
+#define MASTER_MCUSYS          1
+#define MASTER_GPUSYS          2
+#define MASTER_MMSYS           3
+#define MASTER_MM_VPU          4
+#define MASTER_MM_DISP         5
+#define MASTER_MM_VDEC         6
+#define MASTER_MM_VENC         7
+#define MASTER_MM_CAM          8
+#define MASTER_MM_IMG          9
+#define MASTER_MM_MDP          10
+#define MASTER_VPUSYS          11
+#define MASTER_VPU_0           12
+#define MASTER_VPU_1           13
+#define MASTER_MDLASYS         14
+#define MASTER_MDLA_0          15
+#define MASTER_UFS             16
+#define MASTER_PCIE_0          17
+#define MASTER_PCIE_1          18
+#define MASTER_USB             19
+#define MASTER_DBGIF           20
+#define SLAVE_HRT_DDR_EMI      21
+#define MASTER_HRT_MMSYS       22
+#define MASTER_HRT_MM_DISP     23
+#define MASTER_HRT_MM_VDEC     24
+#define MASTER_HRT_MM_VENC     25
+#define MASTER_HRT_MM_CAM      26
+#define MASTER_HRT_MM_IMG      27
+#define MASTER_HRT_MM_MDP      28
+#define MASTER_HRT_DBGIF       29
+#define MASTER_WIFI            30
+#define MASTER_BT              31
+#define MASTER_NETSYS          32
+#endif
diff --git a/include/dt-bindings/interconnect/qcom,ipq9574.h b/include/dt-bindings/interconnect/qcom,ipq9574.h
new file mode 100644 (file)
index 0000000..4201933
--- /dev/null
@@ -0,0 +1,59 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+#ifndef INTERCONNECT_QCOM_IPQ9574_H
+#define INTERCONNECT_QCOM_IPQ9574_H
+
+#define MASTER_ANOC_PCIE0              0
+#define SLAVE_ANOC_PCIE0               1
+#define MASTER_SNOC_PCIE0              2
+#define SLAVE_SNOC_PCIE0               3
+#define MASTER_ANOC_PCIE1              4
+#define SLAVE_ANOC_PCIE1               5
+#define MASTER_SNOC_PCIE1              6
+#define SLAVE_SNOC_PCIE1               7
+#define MASTER_ANOC_PCIE2              8
+#define SLAVE_ANOC_PCIE2               9
+#define MASTER_SNOC_PCIE2              10
+#define SLAVE_SNOC_PCIE2               11
+#define MASTER_ANOC_PCIE3              12
+#define SLAVE_ANOC_PCIE3               13
+#define MASTER_SNOC_PCIE3              14
+#define SLAVE_SNOC_PCIE3               15
+#define MASTER_USB                     16
+#define SLAVE_USB                      17
+#define MASTER_USB_AXI                 18
+#define SLAVE_USB_AXI                  19
+#define MASTER_NSSNOC_NSSCC            20
+#define SLAVE_NSSNOC_NSSCC             21
+#define MASTER_NSSNOC_SNOC_0           22
+#define SLAVE_NSSNOC_SNOC_0            23
+#define MASTER_NSSNOC_SNOC_1           24
+#define SLAVE_NSSNOC_SNOC_1            25
+#define MASTER_NSSNOC_PCNOC_1          26
+#define SLAVE_NSSNOC_PCNOC_1           27
+#define MASTER_NSSNOC_QOSGEN_REF       28
+#define SLAVE_NSSNOC_QOSGEN_REF                29
+#define MASTER_NSSNOC_TIMEOUT_REF      30
+#define SLAVE_NSSNOC_TIMEOUT_REF       31
+#define MASTER_NSSNOC_XO_DCD           32
+#define SLAVE_NSSNOC_XO_DCD            33
+#define MASTER_NSSNOC_ATB              34
+#define SLAVE_NSSNOC_ATB               35
+#define MASTER_MEM_NOC_NSSNOC          36
+#define SLAVE_MEM_NOC_NSSNOC           37
+#define MASTER_NSSNOC_MEMNOC           38
+#define SLAVE_NSSNOC_MEMNOC            39
+#define MASTER_NSSNOC_MEM_NOC_1                40
+#define SLAVE_NSSNOC_MEM_NOC_1         41
+
+#define MASTER_NSSNOC_PPE              0
+#define SLAVE_NSSNOC_PPE               1
+#define MASTER_NSSNOC_PPE_CFG          2
+#define SLAVE_NSSNOC_PPE_CFG           3
+#define MASTER_NSSNOC_NSS_CSR          4
+#define SLAVE_NSSNOC_NSS_CSR           5
+#define MASTER_NSSNOC_IMEM_QSB         6
+#define SLAVE_NSSNOC_IMEM_QSB          7
+#define MASTER_NSSNOC_IMEM_AHB         8
+#define SLAVE_NSSNOC_IMEM_AHB          9
+
+#endif /* INTERCONNECT_QCOM_IPQ9574_H */
diff --git a/include/dt-bindings/interconnect/qcom,msm8953.h b/include/dt-bindings/interconnect/qcom,msm8953.h
new file mode 100644 (file)
index 0000000..12564c4
--- /dev/null
@@ -0,0 +1,93 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Qualcomm MSM8953 interconnect IDs
+ */
+
+#ifndef __DT_BINDINGS_INTERCONNECT_QCOM_MSM8953_H
+#define __DT_BINDINGS_INTERCONNECT_QCOM_MSM8953_H
+
+/* BIMC fabric */
+#define MAS_APPS_PROC          0
+#define MAS_OXILI              1
+#define MAS_SNOC_BIMC_0                2
+#define MAS_SNOC_BIMC_2                3
+#define MAS_SNOC_BIMC_1                4
+#define MAS_TCU_0              5
+#define SLV_EBI                        6
+#define SLV_BIMC_SNOC          7
+
+/* PCNOC fabric */
+#define MAS_SPDM               0
+#define MAS_BLSP_1             1
+#define MAS_BLSP_2             2
+#define MAS_USB3               3
+#define MAS_CRYPTO             4
+#define MAS_SDCC_1             5
+#define MAS_SDCC_2             6
+#define MAS_SNOC_PCNOC         7
+#define PCNOC_M_0              8
+#define PCNOC_M_1              9
+#define PCNOC_INT_1            10
+#define PCNOC_INT_2            11
+#define PCNOC_S_0              12
+#define PCNOC_S_1              13
+#define PCNOC_S_2              14
+#define PCNOC_S_3              15
+#define PCNOC_S_4              16
+#define PCNOC_S_6              17
+#define PCNOC_S_7              18
+#define PCNOC_S_8              19
+#define PCNOC_S_9              20
+#define SLV_SPDM               21
+#define SLV_PDM                        22
+#define SLV_TCSR               23
+#define SLV_SNOC_CFG           24
+#define SLV_TLMM               25
+#define SLV_MESSAGE_RAM                26
+#define SLV_BLSP_1             27
+#define SLV_BLSP_2             28
+#define SLV_PRNG               29
+#define SLV_CAMERA_SS_CFG      30
+#define SLV_DISP_SS_CFG                31
+#define SLV_VENUS_CFG          32
+#define SLV_GPU_CFG            33
+#define SLV_SDCC_1             34
+#define SLV_SDCC_2             35
+#define SLV_CRYPTO_0_CFG       36
+#define SLV_PMIC_ARB           37
+#define SLV_USB3               38
+#define SLV_IPA_CFG            39
+#define SLV_TCU                        40
+#define SLV_PCNOC_SNOC         41
+
+/* SNOC fabric */
+#define MAS_QDSS_BAM           0
+#define MAS_BIMC_SNOC          1
+#define MAS_PCNOC_SNOC         2
+#define MAS_IPA                        3
+#define MAS_QDSS_ETR           4
+#define QDSS_INT               5
+#define SNOC_INT_0             6
+#define SNOC_INT_1             7
+#define SNOC_INT_2             8
+#define SLV_KPSS_AHB           9
+#define SLV_WCSS               10
+#define SLV_SNOC_BIMC_1                11
+#define SLV_IMEM               12
+#define SLV_SNOC_PCNOC         13
+#define SLV_QDSS_STM           14
+#define SLV_CATS_1             15
+#define SLV_LPASS              16
+
+/* SNOC-MM fabric */
+#define MAS_JPEG               0
+#define MAS_MDP                        1
+#define MAS_VENUS              2
+#define MAS_VFE0               3
+#define MAS_VFE1               4
+#define MAS_CPP                        5
+#define SLV_SNOC_BIMC_0                6
+#define SLV_SNOC_BIMC_2                7
+#define SLV_CATS_0             8
+
+#endif /* __DT_BINDINGS_INTERCONNECT_QCOM_MSM8953_H */
diff --git a/include/dt-bindings/mfd/qcom-pm8008.h b/include/dt-bindings/mfd/qcom-pm8008.h
deleted file mode 100644 (file)
index eca9448..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Copyright (c) 2021 The Linux Foundation. All rights reserved.
- */
-
-#ifndef __DT_BINDINGS_MFD_QCOM_PM8008_H
-#define __DT_BINDINGS_MFD_QCOM_PM8008_H
-
-/* PM8008 IRQ numbers */
-#define PM8008_IRQ_MISC_UVLO   0
-#define PM8008_IRQ_MISC_OVLO   1
-#define PM8008_IRQ_MISC_OTST2  2
-#define PM8008_IRQ_MISC_OTST3  3
-#define PM8008_IRQ_MISC_LDO_OCP        4
-#define PM8008_IRQ_TEMP_ALARM  5
-#define PM8008_IRQ_GPIO1       6
-#define PM8008_IRQ_GPIO2       7
-
-#endif
index 321cd08797d9a888b321fc7a3ca5a113f683dd4a..9dd15b9c743e949d84e5406cd2f7b518c2199832 100644 (file)
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0 */
+/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */
 /*
  * Copyright (C) STMicroelectronics 2018 - All Rights Reserved
  * Author: Philippe Peurichard <philippe.peurichard@st.com>,
diff --git a/include/dt-bindings/power/amlogic,a4-pwrc.h b/include/dt-bindings/power/amlogic,a4-pwrc.h
new file mode 100644 (file)
index 0000000..bd2f9c5
--- /dev/null
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright (C) 2024 Amlogic, Inc. All rights reserved
+ */
+#ifndef _DT_BINDINGS_AMLOGIC_A4_POWER_H
+#define _DT_BINDINGS_AMLOGIC_A4_POWER_H
+
+#define PWRC_A4_AUDIO_ID                               0
+#define PWRC_A4_SDIOA_ID                               1
+#define PWRC_A4_EMMC_ID                                        2
+#define PWRC_A4_USB_COMB_ID                            3
+#define PWRC_A4_ETH_ID                                 4
+#define PWRC_A4_VOUT_ID                                        5
+#define PWRC_A4_AUDIO_PDM_ID                           6
+#define PWRC_A4_DMC_ID                                 7
+#define PWRC_A4_SYS_WRAP_ID                            8
+#define PWRC_A4_AO_I2C_S_ID                            9
+#define PWRC_A4_AO_UART_ID                             10
+#define PWRC_A4_AO_IR_ID                               11
+
+#endif
diff --git a/include/dt-bindings/power/amlogic,a5-pwrc.h b/include/dt-bindings/power/amlogic,a5-pwrc.h
new file mode 100644 (file)
index 0000000..3a6f53e
--- /dev/null
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright (C) 2024 Amlogic, Inc. All rights reserved
+ */
+
+#ifndef _DT_BINDINGS_AMLOGIC_A5_POWER_H
+#define _DT_BINDINGS_AMLOGIC_A5_POWER_H
+
+#define PWRC_A5_NNA_ID                 0
+#define PWRC_A5_AUDIO_ID               1
+#define PWRC_A5_SDIOA_ID               2
+#define PWRC_A5_EMMC_ID                        3
+#define PWRC_A5_USB_COMB_ID            4
+#define PWRC_A5_ETH_ID                 5
+#define PWRC_A5_RSA_ID                 6
+#define PWRC_A5_AUDIO_PDM_ID           7
+#define PWRC_A5_DMC_ID                 8
+#define PWRC_A5_SYS_WRAP_ID            9
+#define PWRC_A5_DSPA_ID                        10
+
+#endif
diff --git a/include/dt-bindings/regulator/st,stm32mp25-regulator.h b/include/dt-bindings/regulator/st,stm32mp25-regulator.h
new file mode 100644 (file)
index 0000000..3c3d309
--- /dev/null
@@ -0,0 +1,48 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (C) 2024, STMicroelectronics - All Rights Reserved
+ */
+
+#ifndef __DT_BINDINGS_REGULATOR_ST_STM32MP25_REGULATOR_H
+#define __DT_BINDINGS_REGULATOR_ST_STM32MP25_REGULATOR_H
+
+/* SCMI voltage domains identifiers */
+
+/* SOC Internal regulators */
+#define VOLTD_SCMI_VDDIO1              0
+#define VOLTD_SCMI_VDDIO2              1
+#define VOLTD_SCMI_VDDIO3              2
+#define VOLTD_SCMI_VDDIO4              3
+#define VOLTD_SCMI_VDDIO               4
+#define VOLTD_SCMI_UCPD                        5
+#define VOLTD_SCMI_USB33               6
+#define VOLTD_SCMI_ADC                 7
+#define VOLTD_SCMI_GPU                 8
+#define VOLTD_SCMI_VREFBUF             9
+
+/* STPMIC2 regulators */
+#define VOLTD_SCMI_STPMIC2_BUCK1       10
+#define VOLTD_SCMI_STPMIC2_BUCK2       11
+#define VOLTD_SCMI_STPMIC2_BUCK3       12
+#define VOLTD_SCMI_STPMIC2_BUCK4       13
+#define VOLTD_SCMI_STPMIC2_BUCK5       14
+#define VOLTD_SCMI_STPMIC2_BUCK6       15
+#define VOLTD_SCMI_STPMIC2_BUCK7       16
+#define VOLTD_SCMI_STPMIC2_LDO1                17
+#define VOLTD_SCMI_STPMIC2_LDO2                18
+#define VOLTD_SCMI_STPMIC2_LDO3                19
+#define VOLTD_SCMI_STPMIC2_LDO4                20
+#define VOLTD_SCMI_STPMIC2_LDO5                21
+#define VOLTD_SCMI_STPMIC2_LDO6                22
+#define VOLTD_SCMI_STPMIC2_LDO7                23
+#define VOLTD_SCMI_STPMIC2_LDO8                24
+#define VOLTD_SCMI_STPMIC2_REFDDR      25
+
+/* External regulators */
+#define VOLTD_SCMI_REGU0               26
+#define VOLTD_SCMI_REGU1               27
+#define VOLTD_SCMI_REGU2               28
+#define VOLTD_SCMI_REGU3               29
+#define VOLTD_SCMI_REGU4               30
+
+#endif /*__DT_BINDINGS_REGULATOR_ST_STM32MP25_REGULATOR_H */
diff --git a/include/dt-bindings/reset/airoha,en7581-reset.h b/include/dt-bindings/reset/airoha,en7581-reset.h
new file mode 100644 (file)
index 0000000..6544a17
--- /dev/null
@@ -0,0 +1,66 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) 2024 AIROHA Inc
+ * Author: Lorenzo Bianconi <lorenzo@kernel.org>
+ */
+
+#ifndef __DT_BINDINGS_RESET_CONTROLLER_AIROHA_EN7581_H_
+#define __DT_BINDINGS_RESET_CONTROLLER_AIROHA_EN7581_H_
+
+/* RST_CTRL2 */
+#define EN7581_XPON_PHY_RST             0
+#define EN7581_CPU_TIMER2_RST           1
+#define EN7581_HSUART_RST               2
+#define EN7581_UART4_RST                3
+#define EN7581_UART5_RST                4
+#define EN7581_I2C2_RST                         5
+#define EN7581_XSI_MAC_RST              6
+#define EN7581_XSI_PHY_RST              7
+#define EN7581_NPU_RST                  8
+#define EN7581_I2S_RST                  9
+#define EN7581_TRNG_RST                        10
+#define EN7581_TRNG_MSTART_RST         11
+#define EN7581_DUAL_HSI0_RST           12
+#define EN7581_DUAL_HSI1_RST           13
+#define EN7581_HSI_RST                 14
+#define EN7581_DUAL_HSI0_MAC_RST       15
+#define EN7581_DUAL_HSI1_MAC_RST       16
+#define EN7581_HSI_MAC_RST             17
+#define EN7581_WDMA_RST                        18
+#define EN7581_WOE0_RST                        19
+#define EN7581_WOE1_RST                        20
+#define EN7581_HSDMA_RST               21
+#define EN7581_TDMA_RST                        22
+#define EN7581_EMMC_RST                        23
+#define EN7581_SOE_RST                 24
+#define EN7581_PCIE2_RST               25
+#define EN7581_XFP_MAC_RST             26
+#define EN7581_USB_HOST_P1_RST         27
+#define EN7581_USB_HOST_P1_U3_PHY_RST  28
+/* RST_CTRL1 */
+#define EN7581_PCM1_ZSI_ISI_RST                29
+#define EN7581_FE_PDMA_RST             30
+#define EN7581_FE_QDMA_RST             31
+#define EN7581_PCM_SPIWP_RST           32
+#define EN7581_CRYPTO_RST              33
+#define EN7581_TIMER_RST               34
+#define EN7581_PCM1_RST                        35
+#define EN7581_UART_RST                        36
+#define EN7581_GPIO_RST                        37
+#define EN7581_GDMA_RST                        38
+#define EN7581_I2C_MASTER_RST          39
+#define EN7581_PCM2_ZSI_ISI_RST                40
+#define EN7581_SFC_RST                 41
+#define EN7581_UART2_RST               42
+#define EN7581_GDMP_RST                        43
+#define EN7581_FE_RST                  44
+#define EN7581_USB_HOST_P0_RST         45
+#define EN7581_GSW_RST                 46
+#define EN7581_SFC2_PCM_RST            47
+#define EN7581_PCIE0_RST               48
+#define EN7581_PCIE1_RST               49
+#define EN7581_CPU_TIMER_RST           50
+#define EN7581_PCIE_HB_RST             51
+#define EN7581_XPON_MAC_RST            52
+
+#endif /* __DT_BINDINGS_RESET_CONTROLLER_AIROHA_EN7581_H_ */
diff --git a/include/dt-bindings/reset/qcom,qca8k-nsscc.h b/include/dt-bindings/reset/qcom,qca8k-nsscc.h
new file mode 100644 (file)
index 0000000..c71167a
--- /dev/null
@@ -0,0 +1,76 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_RESET_QCOM_QCA8K_NSS_CC_H
+#define _DT_BINDINGS_RESET_QCOM_QCA8K_NSS_CC_H
+
+#define NSS_CC_SWITCH_CORE_ARES                                1
+#define NSS_CC_APB_BRIDGE_ARES                         2
+#define NSS_CC_MAC0_TX_ARES                            3
+#define NSS_CC_MAC0_TX_SRDS1_ARES                      4
+#define NSS_CC_MAC0_RX_ARES                            5
+#define NSS_CC_MAC0_RX_SRDS1_ARES                      6
+#define NSS_CC_MAC1_SRDS1_CH0_RX_ARES                  7
+#define NSS_CC_MAC1_TX_ARES                            8
+#define NSS_CC_MAC1_GEPHY0_TX_ARES                     9
+#define NSS_CC_MAC1_SRDS1_CH0_XGMII_RX_ARES            10
+#define NSS_CC_MAC1_SRDS1_CH0_TX_ARES                  11
+#define NSS_CC_MAC1_RX_ARES                            12
+#define NSS_CC_MAC1_GEPHY0_RX_ARES                     13
+#define NSS_CC_MAC1_SRDS1_CH0_XGMII_TX_ARES            14
+#define NSS_CC_MAC2_SRDS1_CH1_RX_ARES                  15
+#define NSS_CC_MAC2_TX_ARES                            16
+#define NSS_CC_MAC2_GEPHY1_TX_ARES                     17
+#define NSS_CC_MAC2_SRDS1_CH1_XGMII_RX_ARES            18
+#define NSS_CC_MAC2_SRDS1_CH1_TX_ARES                  19
+#define NSS_CC_MAC2_RX_ARES                            20
+#define NSS_CC_MAC2_GEPHY1_RX_ARES                     21
+#define NSS_CC_MAC2_SRDS1_CH1_XGMII_TX_ARES            22
+#define NSS_CC_MAC3_SRDS1_CH2_RX_ARES                  23
+#define NSS_CC_MAC3_TX_ARES                            24
+#define NSS_CC_MAC3_GEPHY2_TX_ARES                     25
+#define NSS_CC_MAC3_SRDS1_CH2_XGMII_RX_ARES            26
+#define NSS_CC_MAC3_SRDS1_CH2_TX_ARES                  27
+#define NSS_CC_MAC3_RX_ARES                            28
+#define NSS_CC_MAC3_GEPHY2_RX_ARES                     29
+#define NSS_CC_MAC3_SRDS1_CH2_XGMII_TX_ARES            30
+#define NSS_CC_MAC4_SRDS1_CH3_RX_ARES                  31
+#define NSS_CC_MAC4_TX_ARES                            32
+#define NSS_CC_MAC4_GEPHY3_TX_ARES                     33
+#define NSS_CC_MAC4_SRDS1_CH3_XGMII_RX_ARES            34
+#define NSS_CC_MAC4_SRDS1_CH3_TX_ARES                  35
+#define NSS_CC_MAC4_RX_ARES                            36
+#define NSS_CC_MAC4_GEPHY3_RX_ARES                     37
+#define NSS_CC_MAC4_SRDS1_CH3_XGMII_TX_ARES            38
+#define NSS_CC_MAC5_TX_ARES                            39
+#define NSS_CC_MAC5_TX_SRDS0_ARES                      40
+#define NSS_CC_MAC5_RX_ARES                            41
+#define NSS_CC_MAC5_RX_SRDS0_ARES                      42
+#define NSS_CC_AHB_ARES                                        43
+#define NSS_CC_SEC_CTRL_AHB_ARES                       44
+#define NSS_CC_TLMM_ARES                               45
+#define NSS_CC_TLMM_AHB_ARES                           46
+#define NSS_CC_CNOC_AHB_ARES                           47
+#define NSS_CC_MDIO_AHB_ARES                           48
+#define NSS_CC_MDIO_MASTER_AHB_ARES                    49
+#define NSS_CC_SRDS0_SYS_ARES                          50
+#define NSS_CC_SRDS1_SYS_ARES                          51
+#define NSS_CC_GEPHY0_SYS_ARES                         52
+#define NSS_CC_GEPHY1_SYS_ARES                         53
+#define NSS_CC_GEPHY2_SYS_ARES                         54
+#define NSS_CC_GEPHY3_SYS_ARES                         55
+#define NSS_CC_SEC_CTRL_ARES                           56
+#define NSS_CC_SEC_CTRL_SENSE_ARES                     57
+#define NSS_CC_SLEEP_ARES                              58
+#define NSS_CC_DEBUG_ARES                              59
+#define NSS_CC_GEPHY0_ARES                             60
+#define NSS_CC_GEPHY1_ARES                             61
+#define NSS_CC_GEPHY2_ARES                             62
+#define NSS_CC_GEPHY3_ARES                             63
+#define NSS_CC_DSP_ARES                                        64
+#define NSS_CC_GEPHY_FULL_ARES                         65
+#define NSS_CC_GLOBAL_ARES                             66
+#define NSS_CC_XPCS_ARES                               67
+#endif
index 1bd8bb0a11bed8eca4dc24b9d8b77e31aeb2ba9f..ed177c04afdd172f7b2cefc3e19fef31b408b38c 100644 (file)
@@ -66,5 +66,6 @@
 #define RST_BUS_TVE0           57
 #define RST_BUS_HDCP           58
 #define RST_BUS_KEYADC         59
+#define RST_BUS_GPADC          60
 
 #endif /* _DT_BINDINGS_RESET_SUN50I_H616_H_ */
diff --git a/include/dt-bindings/sound/audio-graph.h b/include/dt-bindings/sound/audio-graph.h
new file mode 100644 (file)
index 0000000..bdb70c6
--- /dev/null
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: GPL-2.0
+ *
+ * audio-graph.h
+ *
+ * Copyright (c) 2024 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+ */
+#ifndef __AUDIO_GRAPH_H
+#define __AUDIO_GRAPH_H
+
+/*
+ * used in
+ *     link-trigger-order
+ *     link-trigger-order-start
+ *     link-trigger-order-stop
+ *
+ * default is
+ *     link-trigger-order = <SND_SOC_TRIGGER_LINK
+ *                           SND_SOC_TRIGGER_COMPONENT
+ *                           SND_SOC_TRIGGER_DAI>;
+ */
+#define SND_SOC_TRIGGER_LINK           0
+#define SND_SOC_TRIGGER_COMPONENT      1
+#define SND_SOC_TRIGGER_DAI            2
+#define SND_SOC_TRIGGER_SIZE           3       /* shoud be last */
+
+#endif /* __AUDIO_GRAPH_H */
index bf95309d2525f0c603b9ea370ceb34249a9d2ba6..ddc7302a510aa14bb575681f7072f20b3b89a165 100644 (file)
@@ -24,7 +24,7 @@
 #define MT8186_BIG_CPU1        5
 #define MT8186_NNA             6
 #define MT8186_ADSP            7
-#define MT8186_MFG             8
+#define MT8186_GPU             8
 
 #define MT8188_MCU_LITTLE_CPU0 0
 #define MT8188_MCU_LITTLE_CPU1 1
 #define MT8188_MCU_BIG_CPU1    5
 
 #define MT8188_AP_APU          0
-#define MT8188_AP_GPU1         1
-#define MT8188_AP_GPU2         2
-#define MT8188_AP_SOC1         3
-#define MT8188_AP_SOC2         4
-#define MT8188_AP_SOC3         5
+#define MT8188_AP_GPU0         1
+#define MT8188_AP_GPU1         2
+#define MT8188_AP_ADSP         3
+#define MT8188_AP_VDO          4
+#define MT8188_AP_INFRA                5
 #define MT8188_AP_CAM1         6
 #define MT8188_AP_CAM2         7
 
index a79e1d1d30a7b781efc72b096a0f02bf07a6b4c6..7f62aef9ca8a41d8e664fe0c6737a4e2be111e3f 100644 (file)
@@ -22,7 +22,7 @@
 
 / {
        /* Introduce a fixed regulator for the new ethernet controller */
-       veth: fixedregulator@0 {
+       veth: regulator-veth {
                compatible = "regulator-fixed";
                regulator-name = "veth";
                regulator-min-microvolt = <3300000>;
index fbb2258b451f904856d6fedd41af6e67afeea5ad..16f784da5a556da0a9ba76066dc013638a1841c3 100644 (file)
@@ -45,7 +45,7 @@
        };
 
        /* The voltage to the MMC card is hardwired at 3.3V */
-       vmmc: fixedregulator@0 {
+       vmmc: regulator-vmmc {
                compatible = "regulator-fixed";
                regulator-name = "vmmc";
                regulator-min-microvolt = <3300000>;
                regulator-boot-on;
         };
 
-       xtal24mhz: xtal24mhz@24M {
+       xtal24mhz: mclk: kmiclk: sspclk: uartclk: wdogclk: clock-24000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <24000000>;
        };
 
-       timclk: timclk@1M {
+       timclk: clock-1000000 {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <24>;
                clocks = <&xtal24mhz>;
        };
 
-       mclk: mclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       kmiclk: kmiclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       sspclk: sspclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       uartclk: uartclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       wdogclk: wdogclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
        /* FIXME: this actually hangs off the PLL clocks */
-       pclk: pclk@0 {
+       pclk: clock-pclk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <0>;
index d99bac02232b3703a04b8d03f36cf5eb12bd9f4e..b9b10cbd65aa81d00eb4af742cb10bc5c366d636 100644 (file)
                regulator-boot-on;
        };
 
-       xtal24mhz: xtal24mhz@24M {
+       xtal24mhz: mclk: kmiclk: sspclk: uartclk: clock-24000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <24000000>;
        };
 
-       timclk: timclk@1M {
+       timclk: clock-1000000 {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <24>;
                clocks = <&xtal24mhz>;
        };
 
-       mclk: mclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       kmiclk: kmiclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       sspclk: sspclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       uartclk: uartclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
        /* FIXME: this actually hangs off the PLL clocks */
-       pclk: pclk@0 {
+       pclk: clock-pclk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <0>;
index 89103d54ecc15c9afbdca380ab01b9427924cc9c..ce35748f3d25d09f0cfaaced3f0ba7bdb7e8801d 100644 (file)
                regulator-boot-on;
        };
 
-       xtal24mhz: xtal24mhz@24M {
+       xtal24mhz: mclk: kmiclk: sspclk: uartclk: wdogclk: clock-24000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <24000000>;
        };
 
-       refclk32khz: refclk32khz {
+       refclk32khz: clock-32768 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <32768>;
        };
 
-       timclk: timclk@1M {
+       timclk: clock-1000000 {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <24>;
                clocks = <&xtal24mhz>;
        };
 
-       mclk: mclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       kmiclk: kmiclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       sspclk: sspclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       uartclk: uartclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       wdogclk: wdogclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
        /* FIXME: this actually hangs off the PLL clocks */
-       pclk: pclk@0 {
+       pclk: clock-pclk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <0>;
index ec1507c5147c64ea978e133b5bc6bafc5238fa69..e625403a9456f452fcc2af3b8bf3b2daf10084d6 100644 (file)
                regulator-boot-on;
        };
 
-       xtal24mhz: xtal24mhz@24M {
+       xtal24mhz: mclk: kmiclk: sspclk: uartclk: wdogclk: clock-24000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <24000000>;
        };
 
-       refclk32khz: refclk32khz {
+       refclk32khz: clock-32768 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <32768>;
        };
 
-       timclk: timclk@1M {
+       timclk: clock-1000000 {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <24>;
                clocks = <&xtal24mhz>;
        };
 
-       mclk: mclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       kmiclk: kmiclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       sspclk: sspclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       uartclk: uartclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
-       wdogclk: wdogclk@24M {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
        /* FIXME: this actually hangs off the PLL clocks */
-       pclk: pclk@0 {
+       pclk: clock-pclk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <0>;
index 367850ea091287c9a166d5d7e53816d1d296f892..db13e09f2fabb003394008b43582e887c7961686 100644 (file)
@@ -54,7 +54,7 @@
        };
 
        /* Also used for the Smart Card Interface SCI */
-       impd1_uartclk: clock@1_4 {
+       impd1_uartclk: clock-uart {
                compatible = "fixed-factor-clock";
                #clock-cells = <0>;
                clock-div = <4>;
@@ -64,7 +64,7 @@
        };
 
        /* For the SSP the clock is divided by 64 */
-       impd1_sspclk: clock@1_64 {
+       impd1_sspclk: clock-ssp {
                compatible = "fixed-factor-clock";
                #clock-cells = <0>;
                clock-div = <64>;
index d9927d3181dce88ade9eb738c7ba29bb004d1555..9b6a1dbaf265f648891c8a125c4f53ba61bf8aed 100644 (file)
        };
 
        /* 24 MHz chrystal on the Integrator/AP development board */
-       xtal24mhz: xtal24mhz@24M {
+       xtal24mhz: pclk: clock-24000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <24000000>;
        };
 
-       pclk: pclk@0 {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clock-div = <1>;
-               clock-mult = <1>;
-               clocks = <&xtal24mhz>;
-       };
-
        /* The UART clock is 14.74 MHz divided by an ICS525 */
-       uartclk: uartclk@14.74M {
+       uartclk: clock-14745600 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <14745600>;
@@ -81,7 +73,7 @@
 
        core-module@10000000 {
                /* 24 MHz chrystal on the core module */
-               cm24mhz: cm24mhz@24M {
+               cm24mhz: clock-24000000 {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <24000000>;
index c011333eb165d769a2c0eca61470b1427469f936..8ad1a8957ace33f3b12b429301b118c896e3caf5 100644 (file)
         */
 
        /* The codec chrystal operates at 24.576 MHz */
-       xtal_codec: xtal24.576@24.576M {
+       xtal_codec: clock-24576000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <24576000>;
        };
 
        /* The chrystal is divided by 2 by the codec for the AACI bit clock */
-       aaci_bitclk: aaci_bitclk@12.288M {
+       aaci_bitclk: clock-12288000 {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <2>;
        };
 
        /* This is a 25MHz chrystal on the base board */
-       xtal25mhz: xtal25mhz@25M {
+       xtal25mhz: clock-25000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <25000000>;
        };
 
        /* The UART clock is 14.74 MHz divided from 25MHz by an ICS525 */
-       uartclk: uartclk@14.74M {
+       uartclk: clock-14745600 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <14745600>;
        };
 
        /* Actually sysclk I think */
-       pclk: pclk@0 {
+       pclk: clock-pclk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <0>;
@@ -85,7 +85,7 @@
 
        core-module@10000000 {
                /* 24 MHz chrystal on the core module */
-               cm24mhz: cm24mhz@24M {
+               cm24mhz: clock-24000000 {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <24000000>;
                };
 
                /* The timer clock is the 24 MHz oscillator divided to 1MHz */
-               timclk: timclk@1M {
+               timclk: clock-1000000 {
                        #clock-cells = <0>;
                        compatible = "fixed-factor-clock";
                        clock-div = <24>;
index ce308820765b8e7105f5a4e321eec5df3107411a..e240bc8aa605529c2484edc7d2dd2cef1e389871 100644 (file)
        #address-cells = <1>;
        #size-cells = <1>;
 
-       oscclk0: clk-osc0 {
+       oscclk0: clock-50000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <50000000>;
        };
 
-       oscclk1: clk-osc1 {
+       oscclk1: clock-24576000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <24576000>;
        };
 
-       oscclk2: clk-osc2 {
+       oscclk2: clock-25000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <25000000>;
        };
 
-       cfgclk: clk-cfg {
+       cfgclk: clock-5000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <5000000>;
        };
 
-       spicfgclk: clk-spicfg {
+       spicfgclk: clock-75000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <75000000>;
        };
 
-       sysclk: clk-sys {
+       sysclk: spiclcd: spicon: i2cclcd: i2caud: clock-sys {
                compatible = "fixed-factor-clock";
                clocks = <&oscclk0>;
                #clock-cells = <0>;
@@ -86,7 +86,7 @@
                clock-mult = <1>;
        };
 
-       audmclk: clk-audm {
+       audmclk: clk-12388000 {
                compatible = "fixed-factor-clock";
                clocks = <&oscclk1>;
                #clock-cells = <0>;
@@ -94,7 +94,7 @@
                clock-mult = <1>;
        };
 
-       audsclk: clk-auds {
+       audsclk: clk-3072000 {
                compatible = "fixed-factor-clock";
                clocks = <&oscclk1>;
                #clock-cells = <0>;
                clock-mult = <1>;
        };
 
-       spiclcd: clk-cpiclcd {
-               compatible = "fixed-factor-clock";
-               clocks = <&oscclk0>;
-               #clock-cells = <0>;
-               clock-div = <2>;
-               clock-mult = <1>;
-       };
-
-       spicon: clk-spicon {
-               compatible = "fixed-factor-clock";
-               clocks = <&oscclk0>;
-               #clock-cells = <0>;
-               clock-div = <2>;
-               clock-mult = <1>;
-       };
-
-       i2cclcd: clk-i2cclcd {
-               compatible = "fixed-factor-clock";
-               clocks = <&oscclk0>;
-               #clock-cells = <0>;
-               clock-div = <2>;
-               clock-mult = <1>;
-       };
-
-       i2caud: clk-i2caud {
-               compatible = "fixed-factor-clock";
-               clocks = <&oscclk0>;
-               #clock-cells = <0>;
-               clock-div = <2>;
-               clock-mult = <1>;
-       };
-
        soc {
                compatible = "simple-bus";
                ranges;
index de45aa99e2608911a8fbd6347b950d0cebf9f802..635ab92688999aa9f1dff02ba59860104d349b5f 100644 (file)
@@ -24,7 +24,7 @@
                reg = <0x0 0x08000000>;
        };
 
-       xtal24mhz: xtal24mhz@24M {
+       xtal24mhz: clock-24000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <24000000>;
                };
 
                /* OSC1 on AB, OSC4 on PB */
-               osc1: cm_aux_osc@24M {
+               osc1: clock-osc {
                        #clock-cells = <0>;
                        compatible = "arm,versatile-cm-auxosc";
                        clocks = <&xtal24mhz>;
                };
 
                /* The timer clock is the 24 MHz oscillator divided to 1MHz */
-               timclk: timclk@1M {
+               timclk: clock-1000000 {
                        #clock-cells = <0>;
                        compatible = "fixed-factor-clock";
                        clock-div = <24>;
                        clocks = <&xtal24mhz>;
                };
 
-               pclk: pclk@24M {
+               pclk: clock-pclk {
                        #clock-cells = <0>;
                        compatible = "fixed-factor-clock";
                        clock-div = <1>;
index 8af4b77fe655db89a1f929fab8be20bb8c6709e1..158b3923eae3ab3c3baa13c2fff1116e6804bcf9 100644 (file)
@@ -20,7 +20,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
 / {
-       v2m_fixed_3v3: fixed-regulator-0 {
+       v2m_fixed_3v3: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "3V3";
                regulator-min-microvolt = <3300000>;
                regulator-always-on;
        };
 
-       v2m_clk24mhz: clk24mhz {
+       v2m_clk24mhz: clock-24000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <24000000>;
                clock-output-names = "v2m:clk24mhz";
        };
 
-       v2m_refclk1mhz: refclk1mhz {
+       v2m_refclk1mhz: clock-1000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <1000000>;
                clock-output-names = "v2m:refclk1mhz";
        };
 
-       v2m_refclk32khz: refclk32khz {
+       v2m_refclk32khz: clock-32768 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <32768>;
index c5e92f6d2fcd8a6ff0d05dcfd5f7b4ff2b140ec7..be03f2a8a57a4b6bfad711182960ad47457068f2 100644 (file)
                                };
                        };
 
-                       v2m_fixed_3v3: fixed-regulator-0 {
+                       v2m_fixed_3v3: regulator-3v3 {
                                compatible = "regulator-fixed";
                                regulator-name = "3V3";
                                regulator-min-microvolt = <3300000>;
                                regulator-always-on;
                        };
 
-                       v2m_clk24mhz: clk24mhz {
+                       v2m_clk24mhz: clock-24000000 {
                                compatible = "fixed-clock";
                                #clock-cells = <0>;
                                clock-frequency = <24000000>;
                                clock-output-names = "v2m:clk24mhz";
                        };
 
-                       v2m_refclk1mhz: refclk1mhz {
+                       v2m_refclk1mhz: clock-1000000 {
                                compatible = "fixed-clock";
                                #clock-cells = <0>;
                                clock-frequency = <1000000>;
                                clock-output-names = "v2m:refclk1mhz";
                        };
 
-                       v2m_refclk32khz: refclk32khz {
+                       v2m_refclk32khz: clock-32768 {
                                compatible = "fixed-clock";
                                #clock-cells = <0>;
                                clock-frequency = <32768>;
                                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 679537e17ff5c7119ffb62ad158e2400090685c7..5a91e936edefc67589c8a6131b9a7be71304212e 100644 (file)
                compatible = "arm,vexpress,config-bus";
                arm,vexpress,config-bridge = <&v2m_sysreg>;
 
-               oscclk0 {
+               clock-controller-0 {
                        /* CPU PLL reference clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 0>;
                        clock-output-names = "oscclk0";
                };
 
-               oscclk4 {
+               clock-controller-4 {
                        /* Multiplexed AXI master clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 4>;
                        clock-output-names = "oscclk4";
                };
 
-               hdlcd_clk: oscclk5 {
+               hdlcd_clk: clock-controller-5 {
                        /* HDLCD PLL reference clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 5>;
                        clock-output-names = "oscclk5";
                };
 
-               smbclk: oscclk6 {
+               smbclk: clock-controller-6 {
                        /* SMB clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 6>;
                        clock-output-names = "oscclk6";
                };
 
-               sys_pll: oscclk7 {
+               sys_pll: clock-controller-7 {
                        /* SYS PLL reference clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 7>;
                        clock-output-names = "oscclk7";
                };
 
-               oscclk8 {
+               clock-controller-8 {
                        /* DDR2 PLL reference clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 8>;
                        clock-output-names = "oscclk8";
                };
 
-               volt-cores {
+               regulator-cores {
                        /* CPU core voltage */
                        compatible = "arm,vexpress-volt";
                        arm,vexpress-sysreg,func = <2 0>;
index 511e87cc2bc5e0aa3b8bb9b566e56c997ffc816c..6ef23c53d2d863c777ef265d8dd2c347278b762c 100644 (file)
                compatible = "arm,vexpress,config-bus";
                arm,vexpress,config-bridge = <&v2m_sysreg>;
 
-               oscclk0 {
+               clock-controller-0 {
                        /* A15 PLL 0 reference clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 0>;
                        clock-output-names = "oscclk0";
                };
 
-               oscclk1 {
+               clock-controller-1 {
                        /* A15 PLL 1 reference clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 1>;
                        clock-output-names = "oscclk1";
                };
 
-               oscclk2 {
+               clock-controller-2 {
                        /* A7 PLL 0 reference clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 2>;
                        clock-output-names = "oscclk2";
                };
 
-               oscclk3 {
+               clock-controller-3 {
                        /* A7 PLL 1 reference clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 3>;
                        clock-output-names = "oscclk3";
                };
 
-               oscclk4 {
+               clock-controller-4 {
                        /* External AXI master clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 4>;
                        clock-output-names = "oscclk4";
                };
 
-               hdlcd_clk: oscclk5 {
+               hdlcd_clk: clock-controller-5 {
                        /* HDLCD PLL reference clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 5>;
                        clock-output-names = "oscclk5";
                };
 
-               smbclk: oscclk6 {
+               smbclk: clock-controller-6 {
                        /* Static memory controller clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 6>;
                        clock-output-names = "oscclk6";
                };
 
-               oscclk7 {
+               clock-controller-7 {
                        /* SYS PLL reference clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 7>;
                        clock-output-names = "oscclk7";
                };
 
-               oscclk8 {
+               clock-controller-8 {
                        /* DDR2 PLL reference clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 8>;
                        clock-output-names = "oscclk8";
                };
 
-               volt-a15 {
+               regulator-a15 {
                        /* A15 CPU core voltage */
                        compatible = "arm,vexpress-volt";
                        arm,vexpress-sysreg,func = <2 0>;
                        label = "A15 Vcore";
                };
 
-               volt-a7 {
+               regulator-a7 {
                        /* A7 CPU core voltage */
                        compatible = "arm,vexpress-volt";
                        arm,vexpress-sysreg,func = <2 1>;
index ff1f9a1bcfcfc3bdffe1234ae103d876dfb891e9..e3896253f33e3e5360197095c44f37e83b015682 100644 (file)
                compatible = "arm,vexpress,config-bus";
                arm,vexpress,config-bridge = <&v2m_sysreg>;
 
-               cpu_clk: oscclk0 {
+               cpu_clk: clock-controller-0 {
                        /* CPU and internal AXI reference clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 0>;
                        clock-output-names = "oscclk0";
                };
 
-               axi_clk: oscclk1 {
+               axi_clk: clock-controller-1 {
                        /* Multiplexed AXI master clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 1>;
                        clock-output-names = "oscclk1";
                };
 
-               oscclk2 {
+               clock-controller-2 {
                        /* DDR2 */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 2>;
                        clock-output-names = "oscclk2";
                };
 
-               hdlcd_clk: oscclk3 {
+               hdlcd_clk: clock-controller-3 {
                        /* HDLCD */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 3>;
                        clock-output-names = "oscclk3";
                };
 
-               oscclk4 {
+               clock-controller-4 {
                        /* Test chip gate configuration */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 4>;
                        clock-output-names = "oscclk4";
                };
 
-               smbclk: oscclk5 {
+               smbclk: clock-controller-5 {
                        /* SMB clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 5>;
index 8bf35666412b1086a420ac3becacd348b8e7c8d8..43a5a4ab6ff0418f1875bcb609b84c8af52b6021 100644 (file)
                compatible = "arm,vexpress,config-bus";
                arm,vexpress,config-bridge = <&v2m_sysreg>;
 
-               oscclk0: extsaxiclk {
+               oscclk0: clock-controller-0 {
                        /* ACLK clock to the AXI master port on the test chip */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 0>;
                        clock-output-names = "extsaxiclk";
                };
 
-               oscclk1: clcdclk {
+               oscclk1: clock-controller-1 {
                        /* Reference clock for the CLCD */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 1>;
                        clock-output-names = "clcdclk";
                };
 
-               smbclk: oscclk2: tcrefclk {
+               smbclk: oscclk2: clock-controller-2 {
                        /* Reference clock for the test chip internal PLLs */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 2>;
                        clock-output-names = "tcrefclk";
                };
 
-               volt-vd10 {
+               regulator-vd10 {
                        /* Test Chip internal logic voltage */
                        compatible = "arm,vexpress-volt";
                        arm,vexpress-sysreg,func = <2 0>;
                        label = "VD10";
                };
 
-               volt-vd10-s2 {
+               regulator-vd10-s2 {
                        /* PL310, L2 cache, RAM cell supply (not PL310 logic) */
                        compatible = "arm,vexpress-volt";
                        arm,vexpress-sysreg,func = <2 1>;
                        label = "VD10_S2";
                };
 
-               volt-vd10-s3 {
+               regulator-vd10-s3 {
                        /* Cortex-A9 system supply, Cores, MPEs, SCU and PL310 logic */
                        compatible = "arm,vexpress-volt";
                        arm,vexpress-sysreg,func = <2 2>;
                        label = "VD10_S3";
                };
 
-               volt-vcc1v8 {
+               regulator-vcc1v8 {
                        /* DDR2 SDRAM and Test Chip DDR2 I/O supply */
                        compatible = "arm,vexpress-volt";
                        arm,vexpress-sysreg,func = <2 3>;
                        label = "VCC1V8";
                };
 
-               volt-ddr2vtt {
+               regulator-ddr2vtt {
                        /* DDR2 SDRAM VTT termination voltage */
                        compatible = "arm,vexpress-volt";
                        arm,vexpress-sysreg,func = <2 4>;
                        label = "DDR2VTT";
                };
 
-               volt-vcc3v3 {
+               regulator-vcc3v3 {
                        /* Local board supply for miscellaneous logic external to the Test Chip */
                        arm,vexpress-sysreg,func = <2 5>;
                        compatible = "arm,vexpress-volt";
index 857cb26ed6d7e8acd13c5695daa9fb3b8699c3c1..c669ec202085924b9c59a3860cb297a91144a151 100644 (file)
                interrupt-controller;
        };
 
-       i2c0: i2c-bus@40 {
+       i2c0: i2c@40 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                /* Does not need pinctrl properties */
        };
 
-       i2c1: i2c-bus@80 {
+       i2c1: i2c@80 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                /* Does not need pinctrl properties */
        };
 
-       i2c2: i2c-bus@c0 {
+       i2c2: i2c@c0 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c3: i2c-bus@100 {
+       i2c3: i2c@100 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c4: i2c-bus@140 {
+       i2c4: i2c@140 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c5: i2c-bus@180 {
+       i2c5: i2c@180 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c6: i2c-bus@1c0 {
+       i2c6: i2c@1c0 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c7: i2c-bus@300 {
+       i2c7: i2c@300 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c8: i2c-bus@340 {
+       i2c8: i2c@340 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c9: i2c-bus@380 {
+       i2c9: i2c@380 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c10: i2c-bus@3c0 {
+       i2c10: i2c@3c0 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c11: i2c-bus@400 {
+       i2c11: i2c@400 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c12: i2c-bus@440 {
+       i2c12: i2c@440 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c13: i2c-bus@480 {
+       i2c13: i2c@480 {
                #address-cells = <1>;
                #size-cells = <0>;
 
index e6f3cf3c721e574f8b9975254cdcc79e3ce3b725..6e05cbcce49cac50f2d3a1c293e56bdd2aed1388 100644 (file)
                interrupt-controller;
        };
 
-       i2c0: i2c-bus@40 {
+       i2c0: i2c@40 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                /* Does not need pinctrl properties */
        };
 
-       i2c1: i2c-bus@80 {
+       i2c1: i2c@80 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                /* Does not need pinctrl properties */
        };
 
-       i2c2: i2c-bus@c0 {
+       i2c2: i2c@c0 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c3: i2c-bus@100 {
+       i2c3: i2c@100 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c4: i2c-bus@140 {
+       i2c4: i2c@140 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c5: i2c-bus@180 {
+       i2c5: i2c@180 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c6: i2c-bus@1c0 {
+       i2c6: i2c@1c0 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c7: i2c-bus@300 {
+       i2c7: i2c@300 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c8: i2c-bus@340 {
+       i2c8: i2c@340 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c9: i2c-bus@380 {
+       i2c9: i2c@380 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c10: i2c-bus@3c0 {
+       i2c10: i2c@3c0 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c11: i2c-bus@400 {
+       i2c11: i2c@400 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c12: i2c-bus@440 {
+       i2c12: i2c@440 {
                #address-cells = <1>;
                #size-cells = <0>;
 
                status = "disabled";
        };
 
-       i2c13: i2c-bus@480 {
+       i2c13: i2c@480 {
                #address-cells = <1>;
                #size-cells = <0>;
 
index 7fb421153596b7d02d1e476217581890464655c4..0c00882f111aa3f23f120574f0ac208273bd44a2 100644 (file)
 #include "aspeed-g6-pinctrl.dtsi"
 
 &i2c {
-       i2c0: i2c-bus@80 {
+       i2c0: i2c@80 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x80 0x80>;
                status = "disabled";
        };
 
-       i2c1: i2c-bus@100 {
+       i2c1: i2c@100 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x100 0x80>;
                status = "disabled";
        };
 
-       i2c2: i2c-bus@180 {
+       i2c2: i2c@180 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x180 0x80>;
                status = "disabled";
        };
 
-       i2c3: i2c-bus@200 {
+       i2c3: i2c@200 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x200 0x80>;
                status = "disabled";
        };
 
-       i2c4: i2c-bus@280 {
+       i2c4: i2c@280 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x280 0x80>;
                status = "disabled";
        };
 
-       i2c5: i2c-bus@300 {
+       i2c5: i2c@300 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x300 0x80>;
                status = "disabled";
        };
 
-       i2c6: i2c-bus@380 {
+       i2c6: i2c@380 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x380 0x80>;
                status = "disabled";
        };
 
-       i2c7: i2c-bus@400 {
+       i2c7: i2c@400 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x400 0x80>;
                status = "disabled";
        };
 
-       i2c8: i2c-bus@480 {
+       i2c8: i2c@480 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x480 0x80>;
                status = "disabled";
        };
 
-       i2c9: i2c-bus@500 {
+       i2c9: i2c@500 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x500 0x80>;
                status = "disabled";
        };
 
-       i2c10: i2c-bus@580 {
+       i2c10: i2c@580 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x580 0x80>;
                status = "disabled";
        };
 
-       i2c11: i2c-bus@600 {
+       i2c11: i2c@600 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x600 0x80>;
                status = "disabled";
        };
 
-       i2c12: i2c-bus@680 {
+       i2c12: i2c@680 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x680 0x80>;
                status = "disabled";
        };
 
-       i2c13: i2c-bus@700 {
+       i2c13: i2c@700 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x700 0x80>;
                status = "disabled";
        };
 
-       i2c14: i2c-bus@780 {
+       i2c14: i2c@780 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x780 0x80>;
                status = "disabled";
        };
 
-       i2c15: i2c-bus@800 {
+       i2c15: i2c@800 {
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0x800 0x80>;
index 7fb532f227afb6c7b687ceee4561c1e65a481c31..808cd5778e27b9930037e74175bc4001dc3c7e32 100644 (file)
@@ -30,7 +30,7 @@
 
                display-timings {
                        native-mode = <&timing0>;
-                       timing0: 320x240 {
+                       timing0: timing-320x240 {
                                hactive = <320>;
                                hback-porch = <0>;
                                hfront-porch = <0>;
index 2eec5f63d3995d1af2f24bde3fffc0b248d99c4b..2f7c34c649ea2fe5a903fc2bfd6ccd5748c5bb3a 100644 (file)
                timeout-ms = <5000>;
        };
 
-       gpio-beeper {
-               compatible = "gpio-beeper";
+       gpio_pwm: pwm {
+               #pwm-cells = <3>;
+               compatible = "pwm-gpio";
                gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
        };
 
+       beeper {
+               compatible = "pwm-beeper";
+               pwms = <&gpio_pwm 0 1 0>;
+               beeper-hz = <1000>;
+       };
+
        soc {
                bus@c4000000 {
                        /* The first 16MB region at CS0 on the expansion bus */
index 0b8c2a64b36f949b7963aba394f5eabf4fcb216d..954c891e5aeebfe21f41fef929517ecff977b630 100644 (file)
                        mpic: interrupt-controller@20a00 {
                                compatible = "marvell,mpic";
                                #interrupt-cells = <1>;
-                               #size-cells = <1>;
                                interrupt-controller;
                                msi-controller;
                        };
index ddc49547d7867ad653213f89c6cd2f3399100692..99778b4b7e7b11b723b0c2c05554e96f39646a8a 100644 (file)
                                compatible = "marvell,mpic";
                                reg = <0x20a00 0x2d0>, <0x21070 0x58>;
                                #interrupt-cells = <1>;
-                               #size-cells = <1>;
                                interrupt-controller;
                                msi-controller;
                                interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
index 5a9ab8410b7b6ee130c3db005bb1b518d73861fd..2fb7304039be337c26cb97036ab5245fb896d121 100644 (file)
                        };
                };
        };
+
+       led-7seg {
+               compatible = "gpio-7-segment";
+               segment-gpios = <&led_7seg_gpio 0 GPIO_ACTIVE_LOW>,
+                               <&led_7seg_gpio 1 GPIO_ACTIVE_LOW>,
+                               <&led_7seg_gpio 2 GPIO_ACTIVE_LOW>,
+                               <&led_7seg_gpio 3 GPIO_ACTIVE_LOW>,
+                               <&led_7seg_gpio 4 GPIO_ACTIVE_LOW>,
+                               <&led_7seg_gpio 5 GPIO_ACTIVE_LOW>,
+                               <&led_7seg_gpio 6 GPIO_ACTIVE_LOW>;
+       };
 };
 
 &pciec {
                        #size-cells = <0>;
                        reg = <3>;
 
-                       gpio@20 {
+                       led_7seg_gpio: gpio@20 {
                                compatible = "nxp,pca9554";
                                gpio-controller;
                                #gpio-cells = <2>;
index 7b755bb4e4e7519dca60e87a734571a049b604bd..43202890c959590f43814d745c948830d4acbd7d 100644 (file)
                status = "disabled";
        };
 
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               front-button {
+                       label = "Front Button";
+                       linux,code = <KEY_VENDOR>;
+                       linux,can-disable;
+                       gpios = <&mcu 0 12 GPIO_ACTIVE_HIGH>;
+                       /* debouncing is done by the microcontroller */
+                       debounce-interval = <0>;
+               };
+       };
+
        sound {
                compatible = "simple-audio-card";
                simple-audio-card,name = "SPDIF";
                        #size-cells = <0>;
                        reg = <0>;
 
-                       /* STM32F0 command interface at address 0x2a */
+                       mcu: system-controller@2a {
+                               compatible = "cznic,turris-omnia-mcu";
+                               reg = <0x2a>;
+
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&mcu_pins>;
+
+                               interrupt-parent = <&gpio1>;
+                               interrupts = <11 IRQ_TYPE_NONE>;
+
+                               gpio-controller;
+                               #gpio-cells = <3>;
+
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                       };
 
                        led-controller@2b {
                                compatible = "cznic,turris-omnia-leds";
 };
 
 &pinctrl {
+       mcu_pins: mcu-pins {
+               marvell,pins = "mpp43";
+               marvell,function = "gpio";
+       };
+
        pcawan_pins: pcawan-pins {
                marvell,pins = "mpp46";
                marvell,function = "gpio";
index 446861b6b17b2ae628a42a4a32dca94a0b5b1f21..1181b13deabc6faebed4afcaf801dcefb886545d 100644 (file)
                                compatible = "marvell,mpic";
                                reg = <0x20a00 0x2d0>, <0x21070 0x58>;
                                #interrupt-cells = <1>;
-                               #size-cells = <1>;
                                interrupt-controller;
                                msi-controller;
                                interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
index 9d1cac49c022f07c315efabc57c5f08158c2833a..6d05835efb4293c1c66fef7df22c0c8720f439bf 100644 (file)
                                compatible = "marvell,mpic";
                                reg = <0x20a00 0x2d0>, <0x21070 0x58>;
                                #interrupt-cells = <1>;
-                               #size-cells = <1>;
                                interrupt-controller;
                                msi-controller;
                                interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
index 07fbfca444d5a37c0aff489c7645caf9b70d0f92..36b90c632fd6275b04c188c1ed1521ff90f5397c 100644 (file)
        gpio_keys {
                compatible = "gpio-keys";
 
-               reset {
+               button-reset {
                        label = "Reset";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
                };
 
-               button {
+               button-power {
                        label = "Power";
                        linux,code = <KEY_SLEEP>;
                        gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
@@ -51,7 +51,7 @@
        gpio-leds {
                compatible = "gpio-leds";
 
-               blue-power {
+               led-blue-power {
                        label = "nas220:blue:power";
                        gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "default-on";
index f59ff7578dfcd48f9afa78258dcfa86bfbddbfb3..7e3ee64d4bdf8c98815d463ea4d31ad2e1ee2599 100644 (file)
                pinctrl-0 = <&pmx_buttons>;
                pinctrl-names = "default";
 
-               power {
+               button-power {
                        label = "Power Button";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
                };
 
-               reset {
+               button-reset {
                        label = "Reset Button";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
                };
 
-               usb1 {
+               button-usb1 {
                        label = "USB1 Button";
                        linux,code = <BTN_0>;
                        gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
                };
 
-               usb2 {
+               button-usb2 {
                        label = "USB2 Button";
                        linux,code = <BTN_1>;
                        gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
index 448b0cd23b5f146ab6779f259f745934b0bebee7..151edcd140a073d3b334a28a53a81735ee24c308 100644 (file)
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
 
-               power {
+               key-power {
                        label = "Power push button";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
        gpio-leds {
                compatible = "gpio-leds";
 
-               red-fail {
+               led-red-fail {
                        label = "cloudbox:red:fail";
                        gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
                };
-               blue-sata {
+               led-blue-sata {
                        label = "cloudbox:blue:sata";
                        gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
                };
index bd3b266dd7660965a649173609bae7e2b2caa886..fcce8730d3e385516c03f727ec593e003d0bf7c3 100644 (file)
@@ -37,7 +37,7 @@
        gpio-leds {
                compatible = "gpio-leds";
 
-               red-fail {
+               led-red-fail {
                        label = "d2net_v2:red:fail";
                        gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
                };
index 0c0851cd9bece47492e3aea39534f8012809a171..2f6793f794cda6561f16062a45706901c6d57a11 100644 (file)
        gpio-leds {
                compatible = "gpio-leds";
 
-               blue-usb {
+               led-blue-usb {
                        label = "dir665:blue:usb";
                        gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
                };
-               blue-internet {
+               led-blue-internet {
                        /* Can only be turned on if the Internet
                         * Ethernet port has Link
                         */
                        label = "dir665:blue:internet";
                        gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
                };
-               amber-internet {
+               led-amber-internet {
                        label = "dir665:amber:internet";
                        gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
                };
-               blue-wifi5g {
+               led-blue-wifi5g {
                        label = "dir665:blue:5g";
                        gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
                };
-               blue-status {
+               led-blue-status {
                        label = "dir665:blue:status";
                        gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
                };
-               blue-wps {
+               led-blue-wps {
                        label = "dir665:blue:wps";
                        gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
                };
-               amber-status {
+               led-amber-status {
                        label = "dir665:amber:status";
                        gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
                };
-               blue-24g {
+               led-blue-24g {
                        label = "dir665:blue:24g";
                        gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
                };
 
        gpio-keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
 
-               reset {
+               button-reset {
                        label = "reset";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
                };
-               wps {
+               button-wps {
                        label = "wps";
                        linux,code = <KEY_WPS_BUTTON>;
                        gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
index d6b0f418fd0183a9beec46bbec127e3b6c2e0b34..d8279e0c4c4f426d32484ff9388808a8921567c9 100644 (file)
                             &pmx_led_white_usb>;
                pinctrl-names = "default";
 
-               blue-power {
+               led-blue-power {
                        label = "dns320:blue:power";
                        gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
                        default-state = "keep";
                };
-               blue-usb {
+               led-blue-usb {
                        label = "dns320:blue:usb";
                        gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
                };
-               orange-l_hdd {
+               led-orange-l_hdd {
                        label = "dns320:orange:l_hdd";
                        gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
                };
-               orange-r_hdd {
+               led-orange-r_hdd {
                        label = "dns320:orange:r_hdd";
                        gpios = <&gpio0 27 GPIO_ACTIVE_LOW>;
                };
-               orange-usb {
+               led-orange-usb {
                        label = "dns320:orange:usb";
                        gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; /* GPIO 35 */
                };
index 94d9c06cbbf5cd81a915acea05556a678ec94751..7f396195e977ff65a5049150e9812646d665204e 100644 (file)
                             &pmx_led_white_usb>;
                pinctrl-names = "default";
 
-               white-power {
+               led-white-power {
                        label = "dns325:white:power";
                        gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
                        default-state = "keep";
                };
-               white-usb {
+               led-white-usb {
                        label = "dns325:white:usb";
                        gpios = <&gpio1 11 GPIO_ACTIVE_LOW>; /* GPIO 43 */
                };
-               red-l_hdd {
+               led-red-l_hdd {
                        label = "dns325:red:l_hdd";
                        gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
                };
-               red-r_hdd {
+               led-red-r_hdd {
                        label = "dns325:red:r_hdd";
                        gpios = <&gpio0 27 GPIO_ACTIVE_LOW>;
                };
-               red-usb {
+               led-red-usb {
                        label = "dns325:red:usb";
                        gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
                };
index 0738eb679fcd7af8483b6a486237eb0f115e0396..20bcd031f3f5222f4fe1d681e03778681b12e4de 100644 (file)
@@ -8,23 +8,21 @@
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_button_power &pmx_button_unmount
                             &pmx_button_reset>;
                pinctrl-names = "default";
 
-               power {
+               button-power {
                        label = "Power button";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
                };
-               eject {
+               button-eject {
                        label = "USB unmount button";
                        linux,code = <KEY_EJECTCD>;
                        gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
                };
-               reset {
+               button-reset {
                        label = "Reset button";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
index 264938dfa4d940a21a96f3c78a01f128dee051a1..090f1e2e5bb68c40cb88fc5efbb7a22890b3d3af 100644 (file)
                pinctrl-0 = <&pmx_led_green &pmx_led_orange>;
                pinctrl-names = "default";
 
-               health {
+               led-health {
                        label = "status:green:health";
                        gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
                        default-state = "keep";
                };
-               fault {
+               led-fault {
                        label = "status:orange:fault";
                        gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
                };
index 328516351e8477ae4f8132e1a306b4da001a8fdc..590bee3c561c45b6ae0b280c3ce912eaf07bcd52 100644 (file)
                             &pmx_led_wifi_ap >;
                pinctrl-names = "default";
 
-               bluetooth {
+               led-bluetooth {
                        label = "dreamplug:blue:bluetooth";
                        gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
                };
-               wifi {
+               led-wifi {
                        label = "dreamplug:green:wifi";
                        gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
                };
-               wifi-ap {
+               led-wifi-ap {
                        label = "dreamplug:green:wifi_ap";
                        gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
                };
index d4cb3cd3e2a2dc808f2344508f1f63c325d77519..d5ac4e3974da76693b8a67b0c590c974168fe7e6 100644 (file)
                            >;
                pinctrl-names = "default";
 
-               health {
+               led-health {
                        label = "status:green:health";
                        gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
                        default-state = "keep";
                };
-               fault {
+               led-fault {
                        label = "status:orange:fault";
                        gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
                };
-               left0 {
+               led-left0 {
                        label = "status:white:left0";
                        gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
                };
-               left1 {
+               led-left1 {
                        label = "status:white:left1";
                        gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
                };
-               left2 {
+               led-left2 {
                        label = "status:white:left2";
                        gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
                };
-               left3 {
+               led-left3 {
                        label = "status:white:left3";
                        gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
                };
-               right0 {
+               led-right0 {
                        label = "status:white:right0";
                        gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
                };
-               right1 {
+               led-right1 {
                        label = "status:white:right1";
                        gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                };
-               right2 {
+               led-right2 {
                        label = "status:white:right2";
                        gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
                };
-               right3 {
+               led-right3 {
                        label = "status:white:right3";
                        gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
                };
index dfb41393941dbd81a2df0f60715edb9bb00b7613..d5aa8b505cc0aa816d12c64b5ab3d15c6a2b3008 100644 (file)
                              &pmx_led_wmode_r &pmx_led_wmode_g >;
                pinctrl-names = "default";
 
-               health-r {
+               led-health-r {
                        label = "guruplug:red:health";
                        gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
                };
-               health-g {
+               led-health-g {
                        label = "guruplug:green:health";
                        gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
                };
-               wmode-r {
+               led-wmode-r {
                        label = "guruplug:red:wmode";
                        gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
                };
-               wmode-g {
+               led-wmode-g {
                        label = "guruplug:green:wmode";
                        gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
                };
index 962a910a6f5ca63703ffac5ee85eba1f6078060a..018c6b8f3e8a8725a2528eb547210863528e44d7 100644 (file)
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_button_reset &pmx_button_usb_copy>;
                pinctrl-names = "default";
 
-               copy {
+               button-copy {
                        label = "USB Copy";
                        linux,code = <KEY_COPY>;
                        gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
                };
-               reset {
+               button-reset {
                        label = "Reset";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
                             &pmx_led_usb_transfer>;
                pinctrl-names = "default";
 
-               green-os {
+               led-green-os {
                        label = "ib62x0:green:os";
                        gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>;
                        default-state = "keep";
                };
-               red-os {
+               led-red-os {
                        label = "ib62x0:red:os";
                        gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
                };
-               usb-copy {
+               led-usb-copy {
                        label = "ib62x0:red:usb_copy";
                        gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>;
                };
index aed20185fd7ab10467bf858b555f3bf14659a977..91b46e77e0b6ad12998cb7186c666e1c7f498ab6 100644 (file)
                        gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                };
-               power-blue {
+               led-power-blue {
                        label = "power:blue";
                        gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
                        default-state = "keep";
                };
-               power-red {
+               led-power-red {
                        label = "power:red";
                        gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
                };
-               usb1 {
+               led-usb1 {
                        label = "usb1:blue";
                        gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
                };
-               usb2 {
+               led-usb2 {
                        label = "usb2:blue";
                        gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
                };
-               usb3 {
+               led-usb3 {
                        label = "usb3:blue";
                        gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
                };
-               usb4 {
+               led-usb4 {
                        label = "usb4:blue";
                        gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
                };
-               otb {
+               led-otb {
                        label = "otb:blue";
                        gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
                };
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = < &pmx_button_reset &pmx_button_otb >;
                pinctrl-names = "default";
 
-               otb {
+               button-otb {
                        label = "OTB Button";
                        linux,code = <KEY_COPY>;
                        gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
                        debounce-interval = <100>;
                };
-               reset {
+               button-reset {
                        label = "Reset";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
index 2338f495d5172e1ed29f018894140ac1bd72d500..039362152650e8b45b9e1a3668d50fa5bb04278b 100644 (file)
                              &pmx_led_rebuild &pmx_led_health >;
                pinctrl-names = "default";
 
-               power_led {
+               led-power-led {
                        label = "status:white:power_led";
                        gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
                        default-state = "keep";
                };
-               rebuild_led {
+               led-rebuild-led {
                        label = "status:white:rebuild_led";
                        gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
                };
-               health_led {
+               led-health-led {
                        label = "status:red:health_led";
                        gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
                };
-               backup_led {
+               led-backup-led {
                        label = "status:blue:backup_led";
                        gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
                };
        };
        gpio-keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_button_reset &pmx_button_power
                             &pmx_button_otb>;
                pinctrl-names = "default";
 
 
-               Power {
+               button-power {
                        label = "Power Button";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
                };
-               Reset {
+               button-reset {
                        label = "Reset Button";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
                };
-               OTB {
+               button-otb {
                        label = "OTB Button";
                        linux,code = <KEY_COPY>;
                        gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
index c841eb8e7fb1d0404301f4f8b21899fb60b77a25..974bc9de47025770201d9d2f01f31047051f2edd 100644 (file)
        leds {
                compatible = "gpio-leds";
 
-               status_green {
+               led-status-green {
                        label = "l-50:green:status";
                        gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
                };
 
-               status_red {
+               led-status-red {
                        label = "l-50:red:status";
                        gpios = <&gpio3 2 GPIO_ACTIVE_LOW>;
                };
 
-               wifi {
+               led-wifi {
                        label = "l-50:green:wifi";
                        gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "phy0tpt";
                };
 
-               internet_green {
+               led-internet-green {
                        label = "l-50:green:internet";
                        gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
                };
 
-               internet_red {
+               led-internet-red {
                        label = "l-50:red:internet";
                        gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
                };
 
-               usb1_green {
+               led-usb1-green {
                        label = "l-50:green:usb1";
                        gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "usbport";
                        trigger-sources = <&hub_port3>;
                };
 
-               usb1_red {
+               led-usb1-red {
                        label = "l-50:red:usb1";
                        gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
                };
 
-               usb2_green {
+               led-usb2-green {
                        label = "l-50:green:usb2";
                        gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "usbport";
                        trigger-sources = <&hub_port1>;
                };
 
-               usb2_red {
+               led-usb2-red {
                        label = "l-50:red:usb2";
                        gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
                };
        keys {
                compatible = "gpio-keys";
 
-               factory_defaults {
+               button-factory-defaults {
                        label = "factory_defaults";
                        gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_RESTART>;
index 8c2b540eaf4ffd1c8a460f6e04343aa95f48c60a..90ea6cdee8e012ab243733c27d5109681729e2d9 100644 (file)
@@ -51,7 +51,7 @@
        gpio_keys {
                compatible = "gpio-keys";
 
-               power {
+               button-power {
                        label = "Power push button";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
        gpio-leds {
                compatible = "gpio-leds";
 
-               red-fail {
+               led-red-fail {
                        label = "laplug_v2:red:power";
                        gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
                };
-               blue-power {
+               led-blue-power {
                        label = "laplug_v2:blue:power";
                        gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "default-on";
index b54c9980f636bb69202415b74ea11a7d38199426..8a11d2b9d44934c38ef29b3671e34371fd677f05 100644 (file)
@@ -88,8 +88,6 @@
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_button_function &pmx_power_switch
                             &pmx_power_auto_switch>;
                pinctrl-names = "default";
index 27fd6e2337d555e5d0fbcac18d8e1dd7f888d082..8a1c38ab611164c075ae2edc6e88d732273cd582 100644 (file)
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
                pinctrl-names = "default";
 
-               wps {
+               button-wps {
                        label = "WPS Button";
                        linux,code = <KEY_WPS_BUTTON>;
                        gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
                };
 
-               reset {
+               button-reset {
                        label = "Reset Button";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
                pinctrl-0 = < &pmx_led_white_health &pmx_led_white_pulse >;
                pinctrl-names = "default";
 
-               white-health {
+               led-white-health {
                        label = "viper:white:health";
                        gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
                };
 
-               white-pulse {
+               led-white-pulse {
                        label = "viper:white:pulse";
                        gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
                };
index f80af24b9e9008a59460276642627553b1cf46a8..5e0b139dd4fba8d526c98643c9ff87e3c96e95f0 100644 (file)
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_button_function &pmx_power_switch
                             &pmx_power_auto_switch>;
                pinctrl-names = "default";
 
-               option {
+               button-option {
                        label = "Function Button";
                        linux,code = <KEY_OPTION>;
                        gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
                };
-               reserved {
+               button-reserved {
                        label = "Power-on Switch";
                        linux,code = <KEY_RESERVED>;
                        linux,input-type = <5>;
                        gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
                };
-               power {
+               button-power {
                        label = "Power-auto Switch";
                        linux,code = <KEY_ESC>;
                        linux,input-type = <5>;
                             &pmx_led_function_blue>;
                pinctrl-names = "default";
 
-               func_blue {
+               led-func-blue {
                        label = "lsxl:blue:func";
                        gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
                };
 
-               alarm {
+               led-alarm {
                        label = "lsxl:red:alarm";
                        gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
                };
 
-               info {
+               led-info {
                        label = "lsxl:amber:info";
                        gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
                };
 
-               power {
+               led-power {
                        label = "lsxl:blue:power";
                        gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
                        default-state = "keep";
                };
 
-               func_red {
+               led-func-red {
                        label = "lsxl:red:func";
                        gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
                };
index e87ea71465462faff9b1d650ffa4d331e6553068..6533b49a15b283ddb4b83937b4e044a48c47736a 100644 (file)
                            >;
                pinctrl-names = "default";
 
-               health {
+               led-health {
                        label = "status:green:health";
                        gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
                };
 
-               user1o {
+               led-user1o {
                        label = "user1:orange";
                        gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
                        default-state = "on";
                };
 
-               user1g {
+               led-user1g {
                        label = "user1:green";
                        gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
                        default-state = "on";
                };
 
-               user0o {
+               led-user0o {
                        label = "user0:orange";
                        gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
                        default-state = "on";
                };
 
-               user0g {
+               led-user0g {
                        label = "user0:green";
                        gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
                        default-state = "on";
                };
 
-               misc {
+               led-misc {
                        label = "status:orange:misc";
                        gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
                        default-state = "on";
index 5a77286136c7293c56edcd222c2a29e72c7a171d..e3b41784c8762fc45b72adb5113c2b96b753caa5 100644 (file)
                pinctrl-0 = <&pmx_leds &pmx_usb_led>;
                pinctrl-names = "default";
 
-               green-status {
+               led-green-status {
                        label = "gtw:green:Status";
                        gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
                };
 
-               red-status {
+               led-red-status {
                        label = "gtw:red:Status";
                        gpios = <&gpio0 21 GPIO_ACTIVE_HIGH>;
                };
 
-               green-usb {
+               led-green-usb {
                        label = "gtw:green:USB";
                        gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
                };
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_keys>;
                pinctrl-names = "default";
 
-               restart {
+               button-restart {
                        label = "SWR Button";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
                };
-               wps {
+               button-wps {
                        label = "WPS Button";
                        linux,code = <KEY_WPS_BUTTON>;
                        gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
index b5737026e244dafe25bef6692381c2980b8666d5..d4edf27273882ad5f24ffb26053d42c0d6e3172c 100644 (file)
 
        gpio-keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
 
                /*
                 * esc and power represent a three position rocker
                 * switch. Thus the conventional KEY_POWER does not fit
                 */
-               exc {
+               button-exc {
                        label = "Back power switch (on|auto)";
                        linux,code = <KEY_ESC>;
                        linux,input-type = <5>;
                        gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
                };
-               power {
+               button-power {
                        label = "Back power switch (auto|off)";
                        linux,code = <KEY_1>;
                        linux,input-type = <5>;
                        gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
                };
-               option {
+               button-option {
                        label = "Function button";
                        linux,code = <KEY_OPTION>;
                        gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
index 51530ea86622af05fc09eaa993e52c6dd9918aad..d6b615cf6390665323bad7529fb0c0cc30219a2f 100644 (file)
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
 
-               power {
+               button-power {
                        label = "Power push button";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
@@ -68,7 +66,7 @@
        gpio-leds {
                compatible = "gpio-leds";
 
-               red-fail {
+               led-red-fail {
                        label = "ns2:red:fail";
                        gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
                };
index b0cb5907ed63f1b648bd24e4299084cc039cb10a..686bcd6f0f3c96183627ef364ce49167448dbfe3 100644 (file)
@@ -24,7 +24,7 @@
        gpio-leds {
                compatible = "gpio-leds";
 
-               blue-sata {
+               led-blue-sata {
                        label = "ns2:blue:sata";
                        gpios = <&gpio0 30 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "disk-activity";
index c1799a07816ef5852ca64ef027cd23533d966923..3555ac1c3b15cfc06c5690965b97389d267aa2c6 100644 (file)
                             &pmx_led_hdd_green &pmx_led_hdd_red>;
                pinctrl-names = "default";
 
-               green-sys {
+               led-green-sys {
                        label = "nsa310:green:sys";
                        gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
                };
-               red-sys {
+               led-red-sys {
                        label = "nsa310:red:sys";
                        gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
                };
-               green-hdd {
+               led-green-hdd {
                        label = "nsa310:green:hdd";
                        gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
                };
-               red-hdd {
+               led-red-hdd {
                        label = "nsa310:red:hdd";
                        gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
                };
-               green-esata {
+               led-green-esata {
                        label = "nsa310:green:esata";
                        gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
                };
-               red-esata {
+               led-red-esata {
                        label = "nsa310:red:esata";
                        gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
                };
-               green-usb {
+               led-green-usb {
                        label = "nsa310:green:usb";
                        gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
                };
-               red-usb {
+               led-red-usb {
                        label = "nsa310:red:usb";
                        gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
                };
-               green-copy {
+               led-green-copy {
                        label = "nsa310:green:copy";
                        gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                };
-               red-copy {
+               led-red-copy {
                        label = "nsa310:red:copy";
                        gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
                };
index b85e314f045a77916b50f9f87975a84774bfdedf..ddf84092aadeffe5ae2aa158da392d04c448eaa1 100644 (file)
        gpio-leds {
                compatible = "gpio-leds";
 
-               green-sys {
+               led-green-sys {
                        label = "nsa310:green:sys";
                        gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
                };
-               red-sys {
+               led-red-sys {
                        label = "nsa310:red:sys";
                        gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
                };
-               green-hdd {
+               led-green-hdd {
                        label = "nsa310:green:hdd";
                        gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
                };
-               red-hdd {
+               led-red-hdd {
                        label = "nsa310:red:hdd";
                        gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
                };
-               green-esata {
+               led-green-esata {
                        label = "nsa310:green:esata";
                        gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
                };
-               red-esata {
+               led-red-esata {
                        label = "nsa310:red:esata";
                        gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
                };
-               green-usb {
+               led-green-usb {
                        label = "nsa310:green:usb";
                        gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
                };
-               green-copy {
+               led-green-copy {
                        label = "nsa310:green:copy";
                        gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                };
-               red-copy {
+               led-red-copy {
                        label = "nsa310:red:copy";
                        gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
                };
index 49da633a1bc02d210196cf4b4db765b48f0c3972..47deb93c90a5056964fb6f9490b6230bd5303262 100644 (file)
 
        keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_buttons>;
                pinctrl-names = "default";
 
-               power {
+               button-power {
                        label = "Power Button";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
                };
 
-               copy {
+               button-copy {
                        label = "Copy Button";
                        linux,code = <KEY_COPY>;
                        gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
                };
 
-               reset {
+               button-reset {
                        label = "Reset Button";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
index 652405e65006fc0840df81c71b2bdc8b97b70919..dd5c8ffc8781b5da59118409a8b72f2c9128ad1b 100644 (file)
                             &pmx_led_hdd1_green &pmx_led_hdd1_red>;
                pinctrl-names = "default";
 
-               green-sys {
+               led-green-sys {
                        label = "nsa320:green:sys";
                        gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
                };
-               orange-sys {
+               led-orange-sys {
                        label = "nsa320:orange:sys";
                        gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
                };
-               green-hdd1 {
+               led-green-hdd1 {
                        label = "nsa320:green:hdd1";
                        gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
                };
-               red-hdd1 {
+               led-red-hdd1 {
                        label = "nsa320:red:hdd1";
                        gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
                };
-               green-hdd2 {
+               led-green-hdd2 {
                        label = "nsa320:green:hdd2";
                        gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
                };
-               red-hdd2 {
+               led-red-hdd2 {
                        label = "nsa320:red:hdd2";
                        gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
                };
-               green-usb {
+               led-green-usb {
                        label = "nsa320:green:usb";
                        gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
                };
-               green-copy {
+               led-green-copy {
                        label = "nsa320:green:copy";
                        gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                };
-               red-copy {
+               led-red-copy {
                        label = "nsa320:red:copy";
                        gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
                };
index 371456de34b272e65e99c650d8f7d6e3cf51ad1a..f0786a5f2ce6aed4f01fdfab5406203ef457d5a8 100644 (file)
                             &pmx_led_hdd1_green &pmx_led_hdd1_red>;
                pinctrl-names = "default";
 
-               green-sys {
+               led-green-sys {
                        label = "nsa325:green:sys";
                        gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
                };
-               orange-sys {
+               led-orange-sys {
                        label = "nsa325:orange:sys";
                        gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
                };
-               green-hdd1 {
+               led-green-hdd1 {
                        label = "nsa325:green:hdd1";
                        gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
                };
-               red-hdd1 {
+               led-red-hdd1 {
                        label = "nsa325:red:hdd1";
                        gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
                };
-               green-hdd2 {
+               led-green-hdd2 {
                        label = "nsa325:green:hdd2";
                        gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
                };
-               red-hdd2 {
+               led-red-hdd2 {
                        label = "nsa325:red:hdd2";
                        gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
                };
-               green-usb {
+               led-green-usb {
                        label = "nsa325:green:usb";
                        gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
                };
-               green-copy {
+               led-green-copy {
                        label = "nsa325:green:copy";
                        gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                };
-               red-copy {
+               led-red-copy {
                        label = "nsa325:red:copy";
                        gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
                };
index ea3d36512e9f3c1d30c08c495abd77e68d732a47..e9bd9c551af56521a1e10ab864274f31c3b4ce68 100644 (file)
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_btn_reset &pmx_btn_copy &pmx_btn_power>;
                pinctrl-names = "default";
 
-               power {
+               button-power {
                        label = "Power Button";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
                };
-               copy {
+               button-copy {
                        label = "Copy Button";
                        linux,code = <KEY_COPY>;
                        gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
                };
-               reset {
+               button-reset {
                        label = "Reset Button";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
index 8ea430168ea54952cc9219df0e24817be577b5a9..20c6290d203760a3e24956bf383abd68414d2ce9 100644 (file)
                compatible = "gpio-keys";
                pinctrl-0 = <&pmx_gpio_init>;
                pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
 
-               power {
+               button-power {
                        label = "Init Button";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
index 946f0f453dd1a44dbfcf26c7f853770befe5256a..9c438f10f7371b3d721fca781ec54dc433b6cd04 100644 (file)
                compatible = "gpio-keys";
                pinctrl-0 = <&pmx_gpio_init>;
                pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
 
                button {
                        label = "Init Button";
index f9e95e55f36dd50b9e75bedd561e1b7da6d96a96..39a5345332da3c9f66fe1b7a2f828ff34e6ee12c 100644 (file)
        gpio-leds {
                compatible = "gpio-leds";
 
-               health {
+               led-health {
                        label = "pogo_e02:green:health";
                        gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
                        default-state = "keep";
                };
-               fault {
+               led-fault {
                        label = "pogo_e02:orange:fault";
                        gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
                };
index 5aa4669ae2548a8cf71b836a82cf4671f3d4b83c..0e9c4cf79822e49b9d98ea5457b38f7f42c7ab9e 100644 (file)
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_button_eject>;
                pinctrl-names = "default";
 
-               eject {
+               button-eject {
                        debounce-interval = <50>;
                        wakeup-source;
                        linux,code = <KEY_EJECTCD>;
                pinctrl-0 = <&pmx_led_green &pmx_led_red>;
                pinctrl-names = "default";
 
-               health {
+               led-health {
                        label = "pogoplugv4:green:health";
                        gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
                        default-state = "on";
                };
-               fault {
+               led-fault {
                        label = "pogoplugv4:red:fault";
                        gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
                };
index ae8f493c9a0f3f9699b80879eba226044dcd1454..eb185273376ee67882e0795e005df970064be2a2 100644 (file)
@@ -33,7 +33,7 @@
                pinctrl-0 = <&pmx_led_blue>;
                pinctrl-names = "default";
 
-               health {
+               led-health {
                        label = "sheevaplug:blue:health";
                        gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
                        default-state = "keep";
index c73cc904e5c4b3f0ccb820703464c369aa8b54ae..ce73fcf2255f828cda931d9ba35a30ea83039b59 100644 (file)
                pinctrl-0 = <&pmx_led_blue &pmx_led_red>;
                pinctrl-names = "default";
 
-               health {
+               led-health {
                        label = "sheevaplug:blue:health";
                        gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
                        default-state = "keep";
                };
 
-               misc {
+               led-misc {
                        label = "sheevaplug:red:misc";
                        gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
                };
index 20964eb48fd75a51640a30806e6a0c24abbda3c4..6b7c5218b1fb58dd83e68aa04228aaeba2431c35 100644 (file)
                pinctrl-0 = <&pmx_alarmled_12>;
                pinctrl-names = "default";
 
-               hdd1-green {
+               led-hdd1-green {
                        label = "synology:alarm";
                        gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
                };
                             &pmx_hddled_26 &pmx_hddled_27>;
                pinctrl-names = "default";
 
-               hdd1-green {
+               led-hdd1-green {
                        label = "synology:green:hdd1";
                        gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
                };
 
-               hdd1-amber {
+               led-hdd1-amber {
                        label = "synology:amber:hdd1";
                        gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
                };
 
-               hdd2-green {
+               led-hdd2-green {
                        label = "synology:green:hdd2";
                        gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
                };
 
-               hdd2-amber {
+               led-hdd2-amber {
                        label = "synology:amber:hdd2";
                        gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
                };
 
-               hdd3-green {
+               led-hdd3-green {
                        label = "synology:green:hdd3";
                        gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
                };
 
-               hdd3-amber {
+               led-hdd3-amber {
                        label = "synology:amber:hdd3";
                        gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
                };
 
-               hdd4-green {
+               led-hdd4-green {
                        label = "synology:green:hdd4";
                        gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
                };
 
-               hdd4-amber {
+               led-hdd4-amber {
                        label = "synology:amber:hdd4";
                        gpios = <&gpio0 27 GPIO_ACTIVE_LOW>;
                };
                pinctrl-0 = <&pmx_hddled_21 &pmx_hddled_23>;
                pinctrl-names = "default";
 
-               hdd1-green {
+               led-hdd1-green {
                        label = "synology:green:hdd1";
                        gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
                };
 
-               hdd1-amber {
+               led-hdd1-amber {
                        label = "synology:amber:hdd1";
                        gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
                };
                pinctrl-0 = <&pmx_hddled_21 &pmx_hddled_23 &pmx_hddled_20 &pmx_hddled_22>;
                pinctrl-names = "default";
 
-               hdd1-green {
+               led-hdd1-green {
                        label = "synology:green:hdd1";
                        gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
                };
 
-               hdd1-amber {
+               led-hdd1-amber {
                        label = "synology:amber:hdd1";
                        gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
                };
 
-               hdd2-green {
+               led-hdd2-green {
                        label = "synology:green:hdd2";
                        gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
                };
 
-               hdd2-amber {
+               led-hdd2-amber {
                        label = "synology:amber:hdd2";
                        gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
                };
                             &pmx_hddled_45>;
                pinctrl-names = "default";
 
-               hdd1-green {
+               led-hdd1-green {
                        label = "synology:green:hdd1";
                        gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
                };
 
-               hdd1-amber {
+               led-hdd1-amber {
                        label = "synology:amber:hdd1";
                        gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
                };
 
-               hdd2-green {
+               led-hdd2-green {
                        label = "synology:green:hdd2";
                        gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
                };
 
-               hdd2-amber {
+               led-hdd2-amber {
                        label = "synology:amber:hdd2";
                        gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
                };
 
-               hdd3-green {
+               led-hdd3-green {
                        label = "synology:green:hdd3";
                        gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
                };
 
-               hdd3-amber {
+               led-hdd3-amber {
                        label = "synology:amber:hdd3";
                        gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
                };
 
-               hdd4-green {
+               led-hdd4-green {
                        label = "synology:green:hdd4";
                        gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
                };
 
-               hdd4-amber {
+               led-hdd4-amber {
                        label = "synology:amber:hdd4";
                        gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
                };
 
-               hdd5-green {
+               led-hdd5-green {
                        label = "synology:green:hdd5";
                        gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
                };
 
-               hdd5-amber {
+               led-hdd5-amber {
                        label = "synology:amber:hdd5";
                        gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
                };
                pinctrl-0 = <&pmx_hddled_38 &pmx_hddled_39 &pmx_hddled_36 &pmx_hddled_37>;
                pinctrl-names = "default";
 
-               hdd1-green {
+               led-hdd1-green {
                        label = "synology:green:hdd1";
                        gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
                };
 
-               hdd1-amber {
+               led-hdd1-amber {
                        label = "synology:amber:hdd1";
                        gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
                };
 
-               hdd2-green {
+               led-hdd2-green {
                        label = "synology:green:hdd2";
                        gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
                };
 
-               hdd2-amber {
+               led-hdd2-amber {
                        label = "synology:amber:hdd2";
                        gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
                };
index ad093324e075a4f6748417884238718629e1b820..a6e77a487d008c71352add209f7b8e581f6faa6c 100644 (file)
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_button_power>;
                pinctrl-names = "default";
 
-               power {
+               button-power {
                        label = "Power Button";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
index 30892c19aceb82d4ccf5b63e0a3120eb06e90bc4..a2e0ad4b84d8578292e493c7c4d334ba3ab6253c 100644 (file)
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_reset_button &pmx_USB_copy_button>;
                pinctrl-names = "default";
 
-               copy {
+               button-copy {
                        label = "USB Copy";
                        linux,code = <KEY_COPY>;
                        gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
                };
-               reset {
+               button-reset {
                        label = "Reset";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
index aba1205981f1ef91a12c3187bb5979311599024a..35be6bce1dba31af7ab887accb78941e97891028 100644 (file)
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_reset_button &pmx_USB_copy_button>;
                pinctrl-names = "default";
 
-               copy {
+               button-copy {
                        label = "USB Copy";
                        linux,code = <KEY_COPY>;
                        gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
                };
-               reset {
+               button-reset {
                        label = "Reset";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
index 717236853e4585d2b8b49f31e850a4aec6bf3e76..f136059607b71f30a6d6ee33760e4e59754e7434 100644 (file)
 
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_reset_button &pmx_USB_copy_button>;
                pinctrl-names = "default";
 
-               copy {
+               button-copy {
                        label = "USB Copy";
                        linux,code = <KEY_COPY>;
                        gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
                };
-               reset {
+               button-reset {
                        label = "Reset";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
index c2d87ba6190a3f72726c6e5360a6c37ab34634ef..055ac754c5fd61d0ad8e7738689e53533d60c4b1 100644 (file)
@@ -48,8 +48,6 @@
 / {
        gpio_keys {
                compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
                pinctrl-0 = <&pmx_power_switch>;
                pinctrl-names = "default";
 
index 03471d30bfd9524a65cf52eb305577000aa9f51e..12a4aac2633e85d8d89ddcfc6c6c8a831656529c 100644 (file)
                compatible = "gpio-keys";
                pinctrl-0 = <&pmx_buttons>;
                pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               front_button {
+
+               button-front {
                        label = "Front Push Button";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>;
                };
 
-               power_rocker_sw_on {
+               switch-power-rocker-sw-on {
                        label = "Power rocker switch (on|auto)";
                        linux,input-type = <5>; /* EV_SW */
                        linux,code = <1>; /* D2NET_SWITCH_POWER_ON */
                        gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
                };
 
-               power_rocker_sw_off {
+               switch-power-rocker-sw-off {
                        label = "Power rocker switch (auto|off)";
                        linux,input-type = <5>; /* EV_SW */
                        linux,code = <2>; /* D2NET_SWITCH_POWER_OFF */
index f17e25ac98ddb083358e334105e2611db4451bd8..f81acb9b7223c2223e57d96286767b4ead5d0f13 100644 (file)
@@ -39,9 +39,8 @@
                compatible = "gpio-keys";
                pinctrl-0 = <&pmx_power_button>;
                pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               button@1 {
+
+               button-1 {
                        label = "Power-on Switch";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>;
@@ -53,7 +52,7 @@
                pinctrl-0 = <&pmx_power_led>;
                pinctrl-names = "default";
 
-               led@1 {
+               led-1 {
                        label = "power:blue";
                        gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
                };
index ee751995c8d0bfbcb85e802e77c3fc8811398575..79fee048c900978cef2b9e900b42a77ff29c2080 100644 (file)
@@ -61,7 +61,7 @@
        };
 
        gpio_keys {
-               func {
+               func-button {
                        label = "Function Button";
                        linux,code = <KEY_OPTION>;
                        gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
@@ -90,7 +90,7 @@
                        gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
                };
 
-               func {
+               func-led {
                        label = "lschl:func:blue:top";
                        gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
                };
index 2fbc17d6dfa4cd7536e842d7884eff842aaa6b5e..e0da406c430f54322a78baea2725d2548fbfa5c7 100644 (file)
                compatible = "gpio-keys";
                pinctrl-0 = <&pmx_buttons>;
                pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               func {
+
+               key-func {
                        label = "Function Button";
                        linux,code = <KEY_OPTION>;
                        gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
                };
 
-               power {
+               key-power {
                        label = "Power-on Switch";
                        linux,input-type = <5>; /* EV_SW */
                        linux,code = <KEY_RESERVED>; /* LSMINI_SW_POWER */
                        gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
                };
 
-               autopower {
+               key-autopower {
                        label = "Power-auto Switch";
                        linux,input-type = <5>; /* EV_SW */
                        linux,code = <KEY_ESC>; /* LSMINI_SW_AUTOPOWER */
                             &pmx_led_power>;
                pinctrl-names = "default";
 
-               alarm {
+               led-alarm {
                        label = "lswsgl:alarm:red";
-                       gpio = <&gpio0 2 GPIO_ACTIVE_LOW>;
+                       gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
                };
 
-               info {
+               led-info {
                        label = "lswsgl:info:amber";
-                       gpio = <&gpio0 3 GPIO_ACTIVE_LOW>;
+                       gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
                };
 
-               func {
+               led-func {
                        label = "lswsgl:func:blue:top";
-                       gpio = <&gpio0 9 GPIO_ACTIVE_LOW>;
+                       gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
                };
 
-               power {
+               led-power {
                        label = "lswsgl:power:blue:bottom";
-                       gpio = <&gpio0 14 GPIO_ACTIVE_LOW>;
+                       gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
                        default-state = "on";
                };
        };
index d57859998350d622f77d629492c626baa845e956..cb1bd24b7ae3ce6b8f87668c384db56aba9ca65f 100644 (file)
                compatible = "gpio-keys";
                pinctrl-0 = <&pmx_buttons>;
                pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               power {
+
+               key-power {
                        label = "Power";
                        linux,code = <KEY_POWER>;
                        gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
                };
 
-               reset {
+               key-reset {
                        label = "Reset";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
index fb203e7d37f5e39e0654f60e27c832ef91b932e3..d63ea15539aab1157a54981aec3977d2bbdca471 100644 (file)
@@ -35,7 +35,7 @@
                pinctrl-0 = <&pmx_reset_button>;
                pinctrl-names = "default";
 
-               reset {
+               key-reset {
                        label = "Reset Button";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
index fd78aa02a3c5b23af79aafa303734c849ffb9fbb..75ab913b21e5ff0c3b2c1019f7c03f096d83b36d 100644 (file)
@@ -32,7 +32,7 @@
                pinctrl-0 = <&pmx_debug_led>;
                pinctrl-names = "default";
 
-               led@0 {
+               led-0 {
                        label = "rd88f5182:cpu";
                        linux,default-trigger = "heartbeat";
                        gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
index 9c7325f1893347ab5608f26e89440fad13787b0c..4c76366aa938b0923f1c62a0d1b20719a0ecbbab 100644 (file)
                                 <MT2701_PIN_238_EXT_SDIO1__FUNC_EXT_SDIO1>,
                                 <MT2701_PIN_237_EXT_SDIO2__FUNC_EXT_SDIO2>,
                                 <MT2701_PIN_236_EXT_SDIO3__FUNC_EXT_SDIO3>;
-                       drive-strength = <MTK_DRIVE_4mA>;
+                       drive-strength = <4>;
                        bias-pull-up;
                };
        };
index f0b4a09004b31785733a2e6a5288014d40b5a9e6..814586abc2979e725c74bf689754bfff288aeea5 100644 (file)
                                 <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
                                 <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_2mA>;
+                       drive-strength = <2>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
 
                pins-clk {
                        pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
-                       drive-strength = <MTK_DRIVE_2mA>;
+                       drive-strength = <2>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
                };
 
                                 <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
                                 <MT7623_PIN_105_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 {
                        pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
                        bias-pull-down;
-                       drive-strength = <MTK_DRIVE_4mA>;
+                       drive-strength = <4>;
                };
 
                pins-wp {
                                 <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
                                 <MT7623_PIN_105_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 {
                        pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
-                       drive-strength = <MTK_DRIVE_4mA>;
+                       drive-strength = <4>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
        };
        nand_pins_default: nanddefault {
                pins-ale {
                        pinmux = <MT7623_PIN_116_MSDC0_CMD_FUNC_NALE>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
 
                                 <MT7623_PIN_115_MSDC0_RSTB_FUNC_NLD8>,
                                 <MT7623_PIN_119_MSDC0_DAT2_FUNC_NLD2>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up;
                };
 
                pins-we {
                        pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_NWEB>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
                };
        };
index a6e9cbf51524df90c43466cc67147cf7f365154c..0ee53d3ecd54250bfc72a5a5d98e2a66ffcd227d 100644 (file)
@@ -55,7 +55,7 @@
 };
 
 / {
-       memory {
+       memory@10000000 {
                device_type = "memory";
                reg = <0x10000000 0x2000000>; /* 32 MB */
        };
index 29f0181e5b38522878a83bc7d78fd3149695ac91..debeff0ec010f27224cab6b28aa6c905ca953aad 100644 (file)
        model = "TI-NSPIRE CX";
        compatible = "ti,nspire-cx";
 
-       memory {
+       memory@10000000 {
                device_type = "memory";
                reg = <0x10000000 0x4000000>; /* 64 MB */
        };
index d56fef7250dbd8a4505f13d859807066c92fb434..95588b716c6f328896308abab2089bb1a4b28bea 100644 (file)
                        };
 
                        watchdog: watchdog@90060000 {
-                               compatible = "arm,primecell";
+                               compatible = "arm,sp805", "arm,primecell";
                                reg = <0x90060000 0x1000>;
                                interrupts = <3>;
+                               clocks = <&apb_pclk>, <&apb_pclk>;
+                               clock-names = "wdog_clk", "apb_pclk";
+                               status = "disabled";
                        };
 
                        rtc: rtc@90090000 {
index 5787ae95d3b43600ea6ca56953ffc017850544c9..1f07ba38291087879f09b2855c439a7123dafcb6 100644 (file)
                        };
                };
 
-               i2c-bus@4 {
+               i2c@4 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <4>;
                        };
                };
 
-               i2c-bus@5 {
+               i2c@5 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <5>;
                        };
                };
 
-               i2c-bus@6 {
+               i2c@6 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <6>;
                        };
                };
 
-               i2c-bus@7 {
+               i2c@7 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <7>;
                reg = <0x77>;
                i2c-mux-idle-disconnect;
 
-               i2c-bus@2 {
+               i2c@2 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <2>;
                reg = <0x77>;
                i2c-mux-idle-disconnect;
 
-               i2c-bus@0 {
+               i2c@0 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0>;
                        };
                };
 
-               i2c-bus@1 {
+               i2c@1 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <1>;
                reg = <0x77>;
                i2c-mux-idle-disconnect;
 
-               i2c-bus@3 {
+               i2c@3 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <3>;
                        };
                };
 
-               i2c-bus@4 {
+               i2c@4 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <4>;
                        };
                };
 
-               i2c-bus@5 {
+               i2c@5 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <5>;
                                reg = <0x28>;
                        };
                };
-               i2c-bus@6 {
+               i2c@6 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <6>;
index baa39d0c1032301f72aad73751686aed9baad9a9..087f4ac431878d90600e13d911ac0214d4610644 100644 (file)
                reg = <0x70>;
                i2c-mux-idle-disconnect;
 
-               i2c_slot1a: i2c-bus@0 {
+               i2c_slot1a: i2c@0 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0>;
                };
 
-               i2c_slot1b: i2c-bus@1 {
+               i2c_slot1b: i2c@1 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <1>;
                };
 
-               i2c_slot2a: i2c-bus@2 {
+               i2c_slot2a: i2c@2 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <2>;
                };
 
-               i2c_slot2b: i2c-bus@3 {
+               i2c_slot2b: i2c@3 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <3>;
                };
 
-               i2c_slot3: i2c-bus@4 {
+               i2c_slot3: i2c@4 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <4>;
                };
 
-               i2c_slot4: i2c-bus@5 {
+               i2c_slot4: i2c@5 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <5>;
                };
 
-               i2c_slot5: i2c-bus@6 {
+               i2c_slot5: i2c@6 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <6>;
                #size-cells = <0>;
                i2c-mux-idle-disconnect;
 
-               i2c_m2_s1: i2c-bus@0 {
+               i2c_m2_s1: i2c@0 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0>;
                };
 
-               i2c_m2_s2: i2c-bus@1 {
+               i2c_m2_s2: i2c@1 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <1>;
                };
-               i2c_m2_s3: i2c-bus@2 {
+               i2c_m2_s3: i2c@2 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <2>;
                };
 
-               i2c_m2_s4: i2c-bus@3 {
+               i2c_m2_s4: i2c@3 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <3>;
index 13756d39fb7b9168706f23b9df6cb10026d43b6e..0029c12f16c8e5285c5b0d528f63b3226919ca65 100644 (file)
 #include <dt-bindings/input/input.h>
 
 / {
+       aliases {
+               mmc0 = &usdhc2;
+               mmc1 = &usdhc3;
+       };
 
        chosen {
                stdout-path = &uart1;
index b61d55ca146765ec8a1cf60cd0462f6458f1a071..de6b7607510af818a8a94863ea83379729853e22 100644 (file)
@@ -25,8 +25,8 @@
                pinctrl-0 = <&pinctrl_ipu_disp1>;
 
                display-timings {
-                       lw700 {
-                               native-mode;
+                       native-mode = <&timing0>;
+                       timing0: timing-lw700 {
                                clock-frequency = <33000033>;
                                hactive = <800>;
                                vactive = <480>;
index 16ff543f3fbf88c58f25017eda2fdf31644abdf0..f4a47e8348b23a655e1c0e6a810db6f6ab5381a5 100644 (file)
@@ -89,7 +89,7 @@
                status = "disabled";
                display-timings {
                        native-mode = <&timing1>;
-                       timing1: claawvga {
+                       timing1: timing-claawvga {
                                clock-frequency = <27000000>;
                                hactive = <800>;
                                vactive = <480>;
index 2bd0761c7e900fc69228b7e30b11c6d3dfe17a82..079bd3d14999f96ef141964a10f492cb2920d9b5 100644 (file)
@@ -58,8 +58,8 @@
                pinctrl-0 = <&pinctrl_lcd>;
 
                display-timings {
-                       800x480p60 {
-                               native-mode;
+                       native-mode = <&timing0>;
+                       timing0: timing-800x480p60 {
                                clock-frequency = <30066000>;
                                hactive = <800>;
                                vactive = <480>;
index 1353d985969cbb2b28e45475de7560df5efd9e6b..ba0c62994f75d09baa7d81f4dd5a3628270d087e 100644 (file)
@@ -17,8 +17,8 @@
                pinctrl-0 = <&pinctrl_ipu_disp1>;
 
                display-timings {
-                       800x480p60 {
-                               native-mode;
+                       native-mode = <&timing0>;
+                       timing0: timing-800x480p60 {
                                clock-frequency = <31500000>;
                                hactive = <800>;
                                vactive = <480>;
index 4d77b6077fc1bb6d2686de68e33a02463c33f841..558751e730f3e96fcff1d3e76d8225435462d362 100644 (file)
@@ -64,6 +64,7 @@
                                reg = <0>;
 
                                lvds_decoder_in: endpoint {
+                                       data-mapping = "jeida-18";
                                        remote-endpoint = <&lvds0_out>;
                                };
                        };
index a7f77527269d547c479730e45782ecb63c365822..a02d77bb567255980018da8a5da293ab8e211826 100644 (file)
@@ -67,7 +67,7 @@
                };
 
                display-timings {
-                       VGA {
+                       timing-vga {
                                clock-frequency = <25200000>;
                                hactive = <640>;
                                vactive = <480>;
@@ -83,7 +83,7 @@
                                pixelclk-active = <0>;
                        };
 
-                       ETV570 {
+                       timing-etc570 {
                                clock-frequency = <25200000>;
                                hactive = <640>;
                                vactive = <480>;
@@ -99,7 +99,7 @@
                                pixelclk-active = <0>;
                        };
 
-                       ET0350 {
+                       timing-et0350 {
                                clock-frequency = <6413760>;
                                hactive = <320>;
                                vactive = <240>;
                                pixelclk-active = <0>;
                        };
 
-                       ET0430 {
+                       timing-et0430 {
                                clock-frequency = <9009000>;
                                hactive = <480>;
                                vactive = <272>;
                                pixelclk-active = <1>;
                        };
 
-                       ET0500 {
+                       timing-et0500 {
                                clock-frequency = <33264000>;
                                hactive = <800>;
                                vactive = <480>;
                                pixelclk-active = <0>;
                        };
 
-                       ET0700 { /* same as ET0500 */
+                       timing-et0700 { /* same as ET0500 */
                                clock-frequency = <33264000>;
                                hactive = <800>;
                                vactive = <480>;
                                pixelclk-active = <0>;
                        };
 
-                       ETQ570 {
+                       timing-etq570 {
                                clock-frequency = <6596040>;
                                hactive = <320>;
                                vactive = <240>;
index 6cdf2082c742c9f4a5cc1ca0bc0b4f13d0cf704f..e10c179dbdb39580bc85c89b02e3cf04e53d0c90 100644 (file)
                display-timings {
                        native-mode = <&lvds0_timing0>;
 
-                       lvds0_timing0: hsd100pxn1 {
+                       lvds0_timing0: timing-hsd100pxn1 {
                                clock-frequency = <65000000>;
                                hactive = <1024>;
                                vactive = <768>;
                                pixelclk-active = <1>;
                        };
 
-                       lvds0_timing1: nl12880bc20 {
+                       lvds0_timing1: timing-nl12880bc20 {
                                clock-frequency = <71000000>;
                                hactive = <1280>;
                                vactive = <800>;
                display-timings {
                        native-mode = <&lvds1_timing0>;
 
-                       lvds1_timing0: hsd100pxn1 {
+                       lvds1_timing0: timing-hsd100pxn1 {
                                clock-frequency = <65000000>;
                                hactive = <1024>;
                                vactive = <768>;
index dfa6f64d43cce1866f7cfa69dbf1144071e8c98d..c9b2ea2b24b2730b9f8d2c16852942aef4601661 100644 (file)
                compatible = "lg,lg4573";
                spi-max-frequency = <10000000>;
                reg = <0>;
-               power-on-delay = <10>;
 
                display-timings {
-                       480x800p57 {
-                               native-mode;
+                       native-mode = <&timing0>;
+                       timing0: timing-480x800p57 {
                                clock-frequency = <27000027>;
                                hactive = <480>;
                                vactive = <800>;
index a5ac79346854264fc2daa561a0c93fb1ce0ae591..9ec038f1d0ffe79af6c566df17bcb47a5d9173dc 100644 (file)
@@ -36,8 +36,8 @@
                status = "okay";
 
                display-timings {
-                       480x800p60 {
-                               native-mode;
+                       native-mode = <&timing0>;
+                       timing0: timing-480x800p60 {
                                clock-frequency = <30000000>;
                                hactive = <480>;
                                vactive = <800>;
index 5a25bdbbeb68711c4bf70ac8aab3e143bae79aed..b3129832f4716f1b398a7fa3b83b2264327cdd75 100644 (file)
@@ -25,8 +25,8 @@
                status = "okay";
 
                display-timings {
-                       800x480p60 {
-                               native-mode;
+                       native-mode = <&timing0>;
+                       timing0: timing-800x480p60 {
                                clock-frequency = <33246000>;
                                hactive = <800>;
                                vactive = <480>;
diff --git a/src/arm/nxp/imx/imx6dl-kontron-samx6i-ads2.dts b/src/arm/nxp/imx/imx6dl-kontron-samx6i-ads2.dts
new file mode 100644 (file)
index 0000000..6a0c53f
--- /dev/null
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0 OR X11
+
+/dts-v1/;
+
+#include "imx6dl.dtsi"
+#include "imx6qdl-kontron-samx6i.dtsi"
+#include "imx6qdl-kontron-samx6i-ads2.dtsi"
+
+/ {
+       model = "Kontron SMARC-sAMX6i Dual-Lite/Solo on SMARC Eval 2.0 carrier";
+       compatible = "kontron,imx6dl-samx6i-ads2", "kontron,imx6dl-samx6i", "fsl,imx6dl";
+};
index a864fdbd5f16ad8312c9df6b24bd615f4b5a8ecc..5a9b819d7ee892e92af512a22c09068a106177b3 100644 (file)
@@ -7,6 +7,6 @@
 #include "imx6qdl-kontron-samx6i.dtsi"
 
 / {
-       model = "Kontron SMARC sAMX6i Dual-Lite/Solo";
+       model = "Kontron SMARC-sAMX6i Dual-Lite/Solo";
        compatible = "kontron,imx6dl-samx6i", "fsl,imx6dl";
 };
index 52a0f6ee426f973b8f38259f2525fee6f797ded0..bcf4d9c870ec97f0876676bd03c3f9cf35077c69 100644 (file)
 
                led@0 {
                        chan-name = "R";
-                       led-cur = /bits/ 8 <0x20>;
-                       max-cur = /bits/ 8 <0x60>;
+                       led-cur = /bits/ 8 <0x6e>;
+                       max-cur = /bits/ 8 <0xc8>;
                        reg = <0>;
                        color = <LED_COLOR_ID_RED>;
                };
 
                led@1 {
                        chan-name = "G";
-                       led-cur = /bits/ 8 <0x20>;
-                       max-cur = /bits/ 8 <0x60>;
+                       led-cur = /bits/ 8 <0xbe>;
+                       max-cur = /bits/ 8 <0xc8>;
                        reg = <1>;
                        color = <LED_COLOR_ID_GREEN>;
                };
 
                led@2 {
                        chan-name = "B";
-                       led-cur = /bits/ 8 <0x20>;
-                       max-cur = /bits/ 8 <0x60>;
+                       led-cur = /bits/ 8 <0xbe>;
+                       max-cur = /bits/ 8 <0xc8>;
                        reg = <2>;
                        color = <LED_COLOR_ID_BLUE>;
                };
diff --git a/src/arm/nxp/imx/imx6q-kontron-samx6i-ads2.dts b/src/arm/nxp/imx/imx6q-kontron-samx6i-ads2.dts
new file mode 100644 (file)
index 0000000..94c395c
--- /dev/null
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0 OR X11
+
+/dts-v1/;
+
+#include "imx6q.dtsi"
+#include "imx6qdl-kontron-samx6i.dtsi"
+#include "imx6qdl-kontron-samx6i-ads2.dtsi"
+
+/ {
+       model = "Kontron SMARC-sAMX6i Quad/Dual on SMARC Eval 2.0 carrier";
+       compatible = "kontron,imx6q-samx6i-ads2", "kontron,imx6q-samx6i", "fsl,imx6q";
+};
index 4d6a0c3e8455f96ac62312e05da144458f39277e..e76963436079e3cf6c83718775204d7d1be82f95 100644 (file)
@@ -5,31 +5,8 @@
 
 #include "imx6q.dtsi"
 #include "imx6qdl-kontron-samx6i.dtsi"
-#include <dt-bindings/gpio/gpio.h>
 
 / {
-       model = "Kontron SMARC sAMX6i Quad/Dual";
+       model = "Kontron SMARC-sAMX6i Quad/Dual";
        compatible = "kontron,imx6q-samx6i", "fsl,imx6q";
 };
-
-/* Quad/Dual SoMs have 3 chip-select signals */
-&ecspi4 {
-       cs-gpios = <&gpio3 24 GPIO_ACTIVE_LOW>,
-                  <&gpio3 29 GPIO_ACTIVE_LOW>,
-                  <&gpio3 25 GPIO_ACTIVE_LOW>;
-};
-
-&pinctrl_ecspi4 {
-       fsl,pins = <
-               MX6QDL_PAD_EIM_D21__ECSPI4_SCLK 0x100b1
-               MX6QDL_PAD_EIM_D28__ECSPI4_MOSI 0x100b1
-               MX6QDL_PAD_EIM_D22__ECSPI4_MISO 0x100b1
-
-               /* SPI4_IMX_CS2# - connected to internal flash */
-               MX6QDL_PAD_EIM_D24__GPIO3_IO24 0x1b0b0
-               /* SPI4_IMX_CS0# - connected to SMARC SPI0_CS0# */
-               MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x1b0b0
-               /* SPI4_CS3# - connected to  SMARC SPI0_CS1# */
-               MX6QDL_PAD_EIM_D25__GPIO3_IO25 0x1b0b0
-       >;
-};
index 48ffb3ee01bdcd02431161980055f1db57759956..082a2e3a391fe9a87d3b23789a0fd7ed63993116 100644 (file)
 
                display-timings {
                        native-mode = <&timing0>;
-                       timing0: hsd100pxn1 {
+                       timing0: timing-hsd100pxn1 {
                                clock-frequency = <65000000>;
                                hactive = <1024>;
                                vactive = <768>;
index 1eae438fbdaeb518c5b850746929197341416489..8ec442038ea01a33ba636932298f914bfecf5828 100644 (file)
 
                display-timings {
                        native-mode = <&timing0>;
-                       timing0: hsd100pxn1 {
+                       timing0: timing-hsd100pxn1 {
                                clock-frequency = <65000000>;
                                hactive = <1024>;
                                vactive = <768>;
index c2ec8572c8a50c4327e7353589a0b3e036f48326..9df9f79affae7e8dac1c410c592d5bb6ee91b92f 100644 (file)
 
                display-timings {
                        native-mode = <&timing0>;
-                       timing0: hsd100pxn1 {
+                       timing0: timing-hsd100pxn1 {
                                clock-frequency = <65000000>;
                                hactive = <1024>;
                                vactive = <768>;
index 7cee983da669510fe0dc42897ffff9ad8b38b861..7693f92195d50fe70ea40702ec0372c2c95053d4 100644 (file)
 
                display-timings {
                        native-mode = <&timing0>;
-                       timing0: hsd100pxn1 {
+                       timing0: timing-hsd100pxn1 {
                                clock-frequency = <65000000>;
                                hactive = <1024>;
                                vactive = <768>;
index fbc704c064b6dee10d7f45f04ced4bf4b564d242..9d0836df0fed417ad7481b44ceae21c984ea7ce6 100644 (file)
 
                display-timings {
                        native-mode = <&timing0>;
-                       timing0: g101evn010 {
+                       timing0: timing-g101evn010 {
                                clock-frequency = <68930000>;
                                hactive = <1280>;
                                vactive = <800>;
index 070506279186bbe75e634fa1febb73dd628b3be2..f4cb9e1d34a9ac23748c452d90172dfdaf740091 100644 (file)
 
                display-timings {
                        native-mode = <&timing0>;
-                       timing0: hsd100pxn1 {
+                       timing0: timing-hsd100pxn1 {
                                clock-frequency = <65000000>;
                                hactive = <1024>;
                                vactive = <768>;
diff --git a/src/arm/nxp/imx/imx6qdl-kontron-samx6i-ads2.dtsi b/src/arm/nxp/imx/imx6qdl-kontron-samx6i-ads2.dtsi
new file mode 100644 (file)
index 0000000..b4a7924
--- /dev/null
@@ -0,0 +1,148 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree include for the Kontron SMARC-sAMX6i board on a SMARC Eval
+ * 2.0 carrier (ADS2).
+ *
+ */
+
+/ {
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       sound {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,bitclock-master = <&dailink_master>;
+               simple-audio-card,frame-master = <&dailink_master>;
+               simple-audio-card,widgets =
+                       "Headphone", "Headphone Jack",
+                       "Line", "Line Out Jack",
+                       "Microphone", "Microphone Jack",
+                       "Line", "Line In Jack";
+               simple-audio-card,routing =
+                       "Line Out Jack", "LINEOUTR",
+                       "Line Out Jack", "LINEOUTL",
+                       "Headphone Jack", "HPOUTR",
+                       "Headphone Jack", "HPOUTL",
+                       "IN1L", "Line In Jack",
+                       "IN1R", "Line In Jack",
+                       "Microphone Jack", "MICBIAS",
+                       "IN2L", "Microphone Jack",
+                       "IN2R", "Microphone Jack";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&ssi1>;
+               };
+
+               dailink_master: simple-audio-card,codec {
+                       sound-dai = <&wm8904>;
+               };
+       };
+
+       reg_codec_mic: regulator-codec-mic {
+               compatible = "regulator-fixed";
+               regulator-name = "V_3V3_MIC";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       reg_codec_1p8v: regulator-codec-1p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "V_1V8_S0_CODEC";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&audmux {
+       status = "okay";
+};
+
+&can1 {
+       status = "okay";
+};
+
+&can2 {
+       status = "okay";
+};
+
+&ecspi4 {
+       flash@1 {
+               compatible = "jedec,spi-nor";
+               reg = <1>;
+               spi-max-frequency = <100000000>;
+               m25p,fast-read;
+       };
+};
+
+&fec {
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+
+       wm8904: audio-codec@1a {
+               compatible = "wlf,wm8904";
+               reg = <0x1a>;
+               #sound-dai-cells = <0>;
+               clocks = <&clks IMX6QDL_CLK_CKO2>;
+               clock-names = "mclk";
+               AVDD-supply = <&reg_codec_1p8v>;
+               CPVDD-supply = <&reg_codec_1p8v>;
+               DBVDD-supply = <&reg_codec_1p8v>;
+               DCVDD-supply = <&reg_codec_1p8v>;
+               MICVDD-supply = <&reg_codec_mic>;
+       };
+};
+
+&i2c3 {
+       eeprom@57 {
+               compatible = "atmel,24c64";
+               reg = <0x57>;
+               pagesize = <32>;
+       };
+};
+
+&pcie {
+       status = "okay";
+};
+
+&ssi1 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart4 {
+       status = "okay";
+};
+
+&uart5 {
+       status = "okay";
+};
+
+&usbh1 {
+       status = "okay";
+};
+
+&usbotg {
+       status = "okay";
+};
+
+&usdhc3 {
+       status = "okay";
+};
index 85aeebc9485dd31b63fdf418d140551682b0c270..99b5e78458aa13fc97621a4bde2513f4cff61d6f 100644 (file)
                vin-supply = <&reg_smarc_suppy>;
        };
 
+       reg_sdio: regulator-sdio {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_sdio>;
+               regulator-name = "V_3V3_SD";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio1 29 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               off-on-delay-us = <20000>;
+       };
+
        reg_smarc_lcdbklt: regulator-smarc-lcdbklt {
                compatible = "regulator-fixed";
                pinctrl-names = "default";
                status = "disabled";
        };
 
-       i2c_intern: i2c-gpio-intern {
+       i2c_intern: i2c-0 {
                compatible = "i2c-gpio";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_i2c_gpio_intern>;
                #size-cells = <0>;
        };
 
-       i2c_lcd: i2c-gpio-lcd {
+       i2c_lcd: i2c-1 {
                compatible = "i2c-gpio";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_i2c_gpio_lcd>;
                status = "disabled";
        };
 
-       i2c_cam: i2c-gpio-cam {
+       i2c_cam: i2c-2 {
                compatible = "i2c-gpio";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_i2c_gpio_cam>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_audmux>;
 
-       audmux_ssi1 {
+       mux-ssi1 {
                fsl,audmux-port = <MX51_AUDMUX_PORT1_SSI0>;
                fsl,port-config = <
                        (IMX_AUDMUX_V2_PTCR_TFSEL(MX51_AUDMUX_PORT3) |
                >;
        };
 
-       audmux_adu3 {
+       mux-aud3 {
                fsl,audmux-port = <MX51_AUDMUX_PORT3>;
                fsl,port-config = <
                        IMX_AUDMUX_V2_PTCR_SYN
                >;
        };
 
-       audmux_ssi2 {
+       mux-ssi2 {
                fsl,audmux-port = <MX51_AUDMUX_PORT2_SSI1>;
                fsl,port-config = <
                        (IMX_AUDMUX_V2_PTCR_TFSEL(MX51_AUDMUX_PORT4) |
                >;
        };
 
-       audmux_adu4 {
+       mux-aud4 {
                fsl,audmux-port = <MX51_AUDMUX_PORT4>;
                fsl,port-config = <
                        IMX_AUDMUX_V2_PTCR_SYN
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ecspi4>;
        cs-gpios = <&gpio3 24 GPIO_ACTIVE_LOW>,
-                  <&gpio3 29 GPIO_ACTIVE_LOW>;
+                  <&gpio3 29 GPIO_ACTIVE_LOW>,
+                  <&gpio3 25 GPIO_ACTIVE_LOW>;
        status = "okay";
 
        /* default boot source: workaround #1 for errata ERR006282 */
 &fec {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet>;
-       phy-mode = "rgmii";
+       phy-connection-type = "rgmii-id";
        phy-handle = <&ethphy>;
 
        mdio {
                ethphy: ethernet-phy@1 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <1>;
-                       reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
+                       reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
                        reset-assert-us = <1000>;
                };
        };
                                regulator-always-on;
                        };
 
-                       /*
-                        * Per schematics, of all VGEN's, only VGEN5 has some
-                        * usage ... but even that - over DNI resistor
-                        */
                        vgen1 {
                                regulator-min-microvolt = <800000>;
                                regulator-max-microvolt = <1550000>;
                                regulator-max-microvolt = <3300000>;
                        };
 
-                       reg_2p5v_s0: vgen5 {
-                               regulator-name = "V_2V5_S0";
+                       vgen5 {
                                regulator-min-microvolt = <1800000>;
                                regulator-max-microvolt = <3300000>;
                        };
                        MX6QDL_PAD_EIM_D24__GPIO3_IO24 0x1b0b0
                        /* SPI_IMX_CS0# - connected to SMARC SPI0_CS0# */
                        MX6QDL_PAD_EIM_D29__GPIO3_IO29 0x1b0b0
+                       /* SPI4_CS3# - connected to SMARC SPI0_CS1# */
+                       MX6QDL_PAD_EIM_D25__GPIO3_IO25 0x1b0b0
                >;
        };
 
                        MX6QDL_PAD_ENET_MDIO__ENET_MDIO       0x1b0b0
                        MX6QDL_PAD_ENET_MDC__ENET_MDC         0x1b0b0
                        MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0b0
-                       MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25    0x1b0b0 /* RST_GBE0_PHY# */
+                       MX6QDL_PAD_NANDF_D1__GPIO2_IO01       0x1b0b0 /* RST_GBE0_PHY# */
                >;
        };
 
                >;
        };
 
+       pinctrl_reg_sdio: reg-sdiogrp {
+               fsl,pins = <
+                       MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 /* SDIO_PWR_EN */
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
 
                        MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x1b0b0 /* CD */
                        MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b0 /* WP */
-                       MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0 /* PWR_EN */
                >;
        };
 
 &pcie {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pcie>;
-       wake-up-gpio = <&gpio6 18 GPIO_ACTIVE_HIGH>;
-       reset-gpio = <&gpio3 13 GPIO_ACTIVE_HIGH>;
+       reset-gpio = <&gpio3 13 GPIO_ACTIVE_LOW>;
 };
 
 /* LCD_BKLT_PWM */
        pinctrl-0 = <&pinctrl_usdhc3>;
        cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
        wp-gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
+       vmmc-supply = <&reg_sdio>;
        no-1-8-v;
 };
 
 /* SDMMC */
 &usdhc4 {
-       /* Internal eMMC, optional on some boards */
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usdhc4>;
        bus-width = <8>;
        non-removable;
        vmmc-supply = <&reg_3p3v_s0>;
        vqmmc-supply = <&reg_1p8v_s0>;
+       status = "okay";
 };
 
 &wdog1 {
        /* CPLD is feeded by watchdog (hardwired) */
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_wdog1>;
+       fsl,ext-reset-output;
        status = "okay";
 };
index 238f3af42822e49439a722c69bff1058bd7be20c..807f3c95e3ce9b6b79a16b3383ad55ec40ab2bab 100644 (file)
                compatible = "atmel,24c64";
                reg = <0x57>;
                pagesize = <32>;
-               #address-cells = <1>;
-               #size-cells = <1>;
                vcc-supply = <&reg_mba6_3p3v>;
 
-               mba_mac_address: mac-address@20 {
-                       reg = <0x20 0x6>;
+               nvmem-layout {
+                       compatible = "fixed-layout";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       mba_mac_address: mac-address@20 {
+                               reg = <0x20 0x6>;
+                       };
                };
        };
 
index a587bc88f76f8f899f9e21272a2a90863d166145..789733a45b9590b15ee770ff60b490f44b3511c0 100644 (file)
                compatible = "atmel,24c64";
                reg = <0x57>;
                pagesize = <32>;
-               #address-cells = <1>;
-               #size-cells = <1>;
                vcc-supply = <&reg_mba6_3p3v>;
 
-               mba_mac_address: mac-address@20 {
-                       reg = <0x20 0x6>;
+               nvmem-layout {
+                       compatible = "fixed-layout";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       mba_mac_address: mac-address@20 {
+                               reg = <0x20 0x6>;
+                       };
                };
        };
 
index 6656e2e762a1a4e32e6d91d77a38ff9ada98628d..0a3deaf92eeab9f69e17dc4221b49f57bd8db4d0 100644 (file)
 
                display-timings {
                        native-mode = <&timing0>;
-                       timing0: hsd100pxn1 {
+                       timing0: timing-hsd100pxn1 {
                                clock-frequency = <65000000>;
                                hactive = <1024>;
                                vactive = <768>;
index 79f2354886b7d6627e99eec45c2623c45e5a1b0b..ded241a39906b27c634a68594be4de289b384f2b 100644 (file)
                };
 
                display-timings {
-                       VGA {
+                       timing-vga {
                                clock-frequency = <25200000>;
                                hactive = <640>;
                                vactive = <480>;
                                pixelclk-active = <0>;
                        };
 
-                       ETV570 {
-                               u-boot,panel-name = "edt,et057090dhu";
+                       timing-etv570 {
                                clock-frequency = <25200000>;
                                hactive = <640>;
                                vactive = <480>;
                                pixelclk-active = <0>;
                        };
 
-                       ET0350 {
-                               u-boot,panel-name = "edt,et0350g0dh6";
+                       timing-et0350 {
                                clock-frequency = <6413760>;
                                hactive = <320>;
                                vactive = <240>;
                                pixelclk-active = <0>;
                        };
 
-                       ET0430 {
-                               u-boot,panel-name = "edt,et0430g0dh6";
+                       timing-et0430 {
                                clock-frequency = <9009000>;
                                hactive = <480>;
                                vactive = <272>;
                                pixelclk-active = <1>;
                        };
 
-                       ET0500 {
+                       timing-et0500 {
                                clock-frequency = <33264000>;
                                hactive = <800>;
                                vactive = <480>;
                                pixelclk-active = <0>;
                        };
 
-                       ET0700 { /* same as ET0500 */
-                               u-boot,panel-name = "edt,etm0700g0dh6";
+                       timing-et0700 { /* same as ET0500 */
                                clock-frequency = <33264000>;
                                hactive = <800>;
                                vactive = <480>;
                                pixelclk-active = <0>;
                        };
 
-                       ETQ570 {
+                       timing-etq570 {
                                clock-frequency = <6596040>;
                                hactive = <320>;
                                vactive = <240>;
                                pixelclk-active = <0>;
                        };
 
-                       CoMTFT { /* same as ET0700 but with inverted pixel clock */
-                               u-boot,panel-name = "edt,etm0700g0edh6";
+                       timing-comtft { /* same as ET0700 but with inverted pixel clock */
                                clock-frequency = <33264000>;
                                hactive = <800>;
                                vactive = <480>;
index 2ca2eb37e14fc8ad44a0724ccfe82c13940be64d..4eb53d5677a6501c97ee578deee107dbb6e83166 100644 (file)
                };
 
                display-timings {
-                       hsd100pxn1 {
-                               u-boot,panel-name = "hannstar,hsd100pxn1";
+                       timing-hsd100pxn1 {
                                clock-frequency = <65000000>;
                                hactive = <1024>;
                                vactive = <768>;
                                pixelclk-active = <1>;
                        };
 
-                       VGA {
+                       timing-vga {
                                clock-frequency = <25200000>;
                                hactive = <640>;
                                vactive = <480>;
                                pixelclk-active = <0>;
                        };
 
-                       nl12880bc20 {
-                               u-boot,panel-name = "nlt,nl12880bc20-spwg-24";
+                       timing-nl12880bc20 {
                                clock-frequency = <71000000>;
                                hactive = <1280>;
                                vactive = <800>;
                                pixelclk-active = <1>;
                        };
 
-                       ET0700 {
-                               u-boot,panel-name = "edt,etm0700g0dh6";
+                       timing-et0700 {
                                clock-frequency = <33264000>;
                                hactive = <800>;
                                vactive = <480>;
                                pixelclk-active = <0>;
                        };
 
-                       ETV570 {
-                               u-boot,panel-name = "edt,et057090dhu";
+                       timing-etv570 {
                                clock-frequency = <25200000>;
                                hactive = <640>;
                                vactive = <480>;
                };
 
                display-timings {
-                       hsd100pxn1 {
+                       timing-hsd100pxn1 {
                                clock-frequency = <65000000>;
                                hactive = <1024>;
                                vactive = <768>;
                                pixelclk-active = <1>;
                        };
 
-                       VGA {
+                       timing-vga {
                                clock-frequency = <25200000>;
                                hactive = <640>;
                                vactive = <480>;
                                pixelclk-active = <0>;
                        };
 
-                       nl12880bc20 {
+                       timing-nl12880bc20 {
                                clock-frequency = <71000000>;
                                hactive = <1280>;
                                vactive = <800>;
index 1db146ac1c176b9ebf31d7b6d8d944c6bd0d822b..864173e307097ec59560151211b0541da951461b 100644 (file)
                status = "okay";
 
                display-timings {
-                       VGA {
+                       timing-vga {
                                clock-frequency = <25200000>;
                                hactive = <640>;
                                vactive = <480>;
                                pixelclk-active = <1>;
                        };
 
-                       ETV570 {
+                       timing-etv570 {
                                clock-frequency = <25200000>;
                                hactive = <640>;
                                vactive = <480>;
                                pixelclk-active = <1>;
                        };
 
-                       ET0350 {
+                       timing-et0350 {
                                clock-frequency = <6413760>;
                                hactive = <320>;
                                vactive = <240>;
                                pixelclk-active = <1>;
                        };
 
-                       ET0430 {
+                       timing-et0430 {
                                clock-frequency = <9009000>;
                                hactive = <480>;
                                vactive = <272>;
                                pixelclk-active = <0>;
                        };
 
-                       ET0500 {
+                       timing-et0500 {
                                clock-frequency = <33264000>;
                                hactive = <800>;
                                vactive = <480>;
                                pixelclk-active = <1>;
                        };
 
-                       ET0700 { /* same as ET0500 */
+                       timing-et0700 { /* same as ET0500 */
                                clock-frequency = <33264000>;
                                hactive = <800>;
                                vactive = <480>;
                                pixelclk-active = <1>;
                        };
 
-                       ETQ570 {
+                       timing-etq570 {
                                clock-frequency = <6596040>;
                                hactive = <320>;
                                vactive = <240>;
index 5485fe118dc48bc35bdf6ce0f41cae08d5ab8e7b..d38183edf0fd526dba4274462f84306403bda133 100644 (file)
                display-timings {
                        native-mode = <&timing5>;
                        timing0: timing0 {
-                               panel-name = "VGA";
                                clock-frequency = <25175000>;
                                hactive = <640>;
                                vactive = <480>;
                        };
 
                        timing1: timing1 {
-                               panel-name = "ETV570";
                                clock-frequency = <25175000>;
                                hactive = <640>;
                                vactive = <480>;
                        };
 
                        timing2: timing2 {
-                               panel-name = "ET0350";
                                clock-frequency = <6500000>;
                                hactive = <320>;
                                vactive = <240>;
                        };
 
                        timing3: timing3 {
-                               panel-name = "ET0430";
                                clock-frequency = <9000000>;
                                hactive = <480>;
                                vactive = <272>;
                        };
 
                        timing4: timing4 {
-                               panel-name = "ET0500", "ET0700";
                                clock-frequency = <33260000>;
                                hactive = <800>;
                                vactive = <480>;
                        };
 
                        timing5: timing5 {
-                               panel-name = "ETQ570";
                                clock-frequency = <6400000>;
                                hactive = <320>;
                                vactive = <240>;
index 029e1b1659c938047bae89ee6120539b33a1c16e..5dbca83f22309776e63b1b1f158a335def03461f 100644 (file)
        };
 };
 
+&blsp1_i2c2 {
+       status = "okay";
+
+       magnetometer@c {
+               compatible = "asahi-kasei,ak8963";
+               reg = <0xc>;
+               interrupts-extended = <&tlmm 66 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&pm8226_l19>;
+               vid-supply = <&pm8226_lvs1>;
+               pinctrl-0 = <&mag_int_default &mag_reset_default>;
+               pinctrl-names = "default";
+       };
+
+       accelerometer@19 {
+               compatible = "st,lis3dh-accel";
+               reg = <0x19>;
+               interrupts-extended = <&tlmm 63 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8226_l19>;
+               vddio-supply = <&pm8226_lvs1>;
+               pinctrl-0 = <&accel_int_default>;
+               pinctrl-names = "default";
+               mount-matrix = "0", "1", "0",
+                              "1", "0", "0",
+                              "0", "0", "-1";
+               st,drdy-int-pin = <1>;
+       };
+};
+
 &blsp1_i2c3 {
        status = "okay";
 
 };
 
 &tlmm {
+       accel_int_default: accel-int-default-state {
+               pins = "gpio63";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-disable;
+       };
+
+       mag_int_default: mag-int-default-state {
+               pins = "gpio66";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-disable;
+       };
+
+       mag_reset_default: mag-reset-default-state {
+               pins = "gpio62";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-high;
+       };
+
        reg_lcd_default: reg-lcd-default-state {
                pins = "gpio31", "gpio33";
                function = "gpio";
diff --git a/src/arm/qcom/qcom-apq8026-samsung-milletwifi.dts b/src/arm/qcom/qcom-apq8026-samsung-milletwifi.dts
new file mode 100644 (file)
index 0000000..7d51915
--- /dev/null
@@ -0,0 +1,573 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2022, Matti Lehtimäki <matti.lehtimaki@gmail.com>
+ * Copyright (c) 2023, Bryant Mairs <bryant@mai.rs>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/power/summit,smb347-charger.h>
+#include "qcom-msm8226.dtsi"
+#include "pm8226.dtsi"
+
+/delete-node/ &adsp_region;
+/delete-node/ &smem_region;
+
+/ {
+       model = "Samsung Galaxy Tab 4 8.0 Wi-Fi";
+       compatible = "samsung,milletwifi", "qcom,apq8026";
+       chassis-type = "tablet";
+
+       aliases {
+               display0 = &framebuffer0;
+               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+               mmc1 = &sdhc_2; /* SDC2 SD card slot */
+       };
+
+       chosen {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               stdout-path = "display0";
+
+               framebuffer0: framebuffer@3200000 {
+                       compatible = "simple-framebuffer";
+                       reg = <0x03200000 0x800000>;
+                       width = <800>;
+                       height = <1280>;
+                       stride = <(800 * 3)>;
+                       format = "r8g8b8";
+               };
+       };
+
+       gpio-hall-sensor {
+               compatible = "gpio-keys";
+
+               event-hall-sensor {
+                       label = "Cover";
+                       gpios = <&tlmm 37 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               autorepeat;
+
+               key-home {
+                       label = "Home";
+                       gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_HOMEPAGE>;
+                       debounce-interval = <15>;
+               };
+
+               key-volume-down {
+                       label = "Volume Down";
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <15>;
+               };
+
+               key-volume-up {
+                       label = "Volume Up";
+                       gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+               };
+       };
+
+       i2c-backlight {
+               compatible = "i2c-gpio";
+               sda-gpios = <&tlmm 20 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&tlmm 21 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+
+               pinctrl-0 = <&backlight_i2c_default_state>;
+               pinctrl-names = "default";
+
+               i2c-gpio,delay-us = <4>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               backlight@2c {
+                       compatible = "ti,lp8556";
+                       reg = <0x2c>;
+                       enable-supply = <&reg_backlight_vddio>;
+
+                       dev-ctrl = /bits/ 8 <0x80>;
+                       init-brt = /bits/ 8 <0x3f>;
+
+                       /*
+                        * Change transition duration: 200ms, Change
+                        * transition strength: heavy, PWM hysteresis:
+                        * 1-bit w/ 8-bit resolution
+                        */
+                       rom-a3h {
+                               rom-addr = /bits/ 8 <0xa3>;
+                               rom-val = /bits/ 8 <0x5e>;
+                       };
+
+                       /*
+                        * PWM phase configuration: 3-phase/3 drivers
+                        * (0, 120deg, 240deg, -, -, -),
+                        * PWM frequency: 9616Hz (10-bit)
+                        */
+                       rom-a5h {
+                               rom-addr = /bits/ 8 <0xa5>;
+                               rom-val = /bits/ 8 <0x34>;
+                       };
+
+                       /*
+                        * Enable LED drivers 2 & 3, Boot inductor
+                        * current limit: 1.5A/2.6A
+                        */
+                       rom-a7h {
+                               rom-addr = /bits/ 8 <0xa7>;
+                               rom-val = /bits/ 8 <0xfa>;
+                       };
+               };
+       };
+
+       reg_backlight_vddio: regulator-backlight-vddio {
+               compatible = "regulator-fixed";
+               regulator-name = "backlight_vddio";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               gpio = <&tlmm 74 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&backlight_vddio_default_state>;
+               pinctrl-names = "default";
+       };
+
+       reg_tsp_1p8v: regulator-tsp-1p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "tsp_1p8v";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               gpio = <&tlmm 114 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&tsp_en1_default_state>;
+               pinctrl-names = "default";
+       };
+
+       reg_tsp_3p3v: regulator-tsp-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "tsp_3p3v";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 31 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&tsp_en_default_state>;
+               pinctrl-names = "default";
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               framebuffer@3200000 {
+                       reg = <0x03200000 0x800000>;
+                       no-map;
+               };
+
+               mpss_region: mpss@8400000 {
+                       reg = <0x08400000 0x1f00000>;
+                       no-map;
+               };
+
+               mba_region: mba@a300000 {
+                       reg = <0x0a300000 0x100000>;
+                       no-map;
+               };
+
+               reserved@cb00000 {
+                       reg = <0x0cb00000 0x700000>;
+                       no-map;
+               };
+
+               wcnss_region: wcnss@d200000 {
+                       reg = <0x0d200000 0x700000>;
+                       no-map;
+               };
+
+               adsp_region: adsp@d900000 {
+                       reg = <0x0d900000 0x1800000>;
+                       no-map;
+               };
+
+               venus@f100000 {
+                       reg = <0x0f100000 0x500000>;
+                       no-map;
+               };
+
+               smem_region: smem@fa00000 {
+                       reg = <0x0fa00000 0x100000>;
+                       no-map;
+               };
+
+               reserved@fb00000 {
+                       reg = <0x0fb00000 0x260000>;
+                       no-map;
+               };
+
+               rfsa@fd60000 {
+                       reg = <0x0fd60000 0x20000>;
+                       no-map;
+               };
+
+               rmtfs@fd80000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0x0fd80000 0x180000>;
+                       no-map;
+
+                       qcom,client-id = <1>;
+               };
+       };
+};
+
+&blsp1_i2c2 {
+       status = "okay";
+
+       accelerometer@1d {
+               compatible = "st,lis2hh12";
+               reg = <0x1d>;
+
+               interrupts-extended = <&tlmm 54 IRQ_TYPE_LEVEL_HIGH>;
+
+               pinctrl-0 = <&accel_int_default_state>;
+               pinctrl-names = "default";
+
+               vdd-supply = <&pm8226_l19>;
+               vddio-supply = <&pm8226_lvs1>;
+
+               mount-matrix = "0", "1", "0",
+                              "-1", "0", "0",
+                              "0", "0", "1";
+
+               st,drdy-int-pin = <1>;
+       };
+};
+
+&blsp1_i2c3 {
+       status = "okay";
+
+       charger@6a {
+               compatible = "summit,smb358";
+               reg = <0x6a>;
+
+               interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_FALLING>;
+
+               pinctrl-0 = <&charger_int_default_state>;
+               pinctrl-names = "default";
+
+               summit,enable-usb-charging;
+               summit,enable-charge-control = <SMB3XX_CHG_ENABLE_SW>;
+               summit,fast-voltage-threshold-microvolt = <3000000>;
+               summit,chip-temperature-threshold-celsius = <130>;
+               summit,usb-current-limit-microamp = <1500000>;
+       };
+};
+
+&blsp1_i2c4 {
+       status = "okay";
+
+       muic: usb-switch@25 {
+               compatible = "siliconmitus,sm5502-muic";
+               reg = <0x25>;
+
+               interrupts-extended = <&tlmm 67 IRQ_TYPE_EDGE_FALLING>;
+
+               pinctrl-0 = <&muic_int_default_state>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp1_i2c5 {
+       status = "okay";
+
+       touchscreen@48 {
+               compatible = "melfas,mms252", "melfas,mms114";
+               reg = <0x48>;
+               interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>;
+               touchscreen-size-x = <800>;
+               touchscreen-size-y = <1280>;
+               avdd-supply = <&reg_tsp_3p3v>;
+               vdd-supply = <&reg_tsp_1p8v>;
+               linux,keycodes = <KEY_APPSELECT KEY_BACK>;
+
+               pinctrl-0 = <&tsp_int_rst_default_state>;
+               pinctrl-names = "default";
+       };
+};
+
+&rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-pm8226-regulators";
+
+               pm8226_s3: s3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               pm8226_s4: s4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_s5: s5 {
+                       regulator-min-microvolt = <1150000>;
+                       regulator-max-microvolt = <1150000>;
+               };
+
+               pm8226_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8226_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l3: l3 {
+                       regulator-min-microvolt = <750000>;
+                       regulator-max-microvolt = <1337500>;
+                       regulator-always-on;
+               };
+
+               pm8226_l4: l4 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l5: l5 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+               };
+
+               pm8226_l7: l7 {
+                       regulator-min-microvolt = <1850000>;
+                       regulator-max-microvolt = <1850000>;
+               };
+
+               pm8226_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+               };
+
+               pm8226_l9: l9 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8226_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l14: l14 {
+                       regulator-min-microvolt = <2750000>;
+                       regulator-max-microvolt = <2750000>;
+               };
+
+               pm8226_l15: l15 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pm8226_l16: l16 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3350000>;
+               };
+
+               pm8226_l17: l17 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+                       regulator-always-on;
+               };
+
+               pm8226_l18: l18 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8226_l19: l19 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pm8226_l20: l20 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+               };
+
+               pm8226_l21: l21 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8226_l22: l22 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pm8226_l23: l23 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pm8226_l24: l24 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+
+               pm8226_l25: l25 {
+                       regulator-min-microvolt = <1775000>;
+                       regulator-max-microvolt = <2125000>;
+               };
+
+               pm8226_l26: l26 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               pm8226_l27: l27 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l28: l28 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8226_lvs1: lvs1 {};
+       };
+};
+
+&sdhc_1 {
+       vmmc-supply = <&pm8226_l17>;
+       vqmmc-supply = <&pm8226_l6>;
+
+       bus-width = <8>;
+       non-removable;
+
+       status = "okay";
+};
+
+&sdhc_2 {
+       vmmc-supply = <&pm8226_l18>;
+       vqmmc-supply = <&pm8226_l21>;
+
+       bus-width = <4>;
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
+
+       pinctrl-0 = <&sdhc2_default_state>, <&sdc2_cd_default_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&tlmm {
+       accel_int_default_state: accel-int-default-state {
+               pins = "gpio54";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       backlight_i2c_default_state: backlight-i2c-default-state {
+               pins = "gpio20", "gpio21";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       backlight_vddio_default_state: backlight-vddio-default-state {
+               pins = "gpio74";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       charger_int_default_state: charger-int-default-state {
+               pins = "gpio115";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       muic_int_default_state: muic-int-default-state {
+               pins = "gpio67";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       sdc2_cd_default_state: sdc2-cd-default-state {
+               pins = "gpio38";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       tsp_en_default_state: tsp-en-default-state {
+               pins = "gpio31";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       tsp_en1_default_state: tsp-en1-default-state {
+               pins = "gpio114";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       tsp_int_rst_default_state: tsp-int-rst-default-state {
+               pins = "gpio17";
+               function = "gpio";
+               drive-strength = <10>;
+               bias-pull-up;
+       };
+};
+
+&usb {
+       extcon = <&muic>, <&muic>;
+       status = "okay";
+};
+
+&usb_hs_phy {
+       extcon = <&muic>;
+       v1p8-supply = <&pm8226_l10>;
+       v3p3-supply = <&pm8226_l20>;
+};
index 11e60b74c3c9d84c30e9eba5fbdb639a2595a646..769e151747c354f571304d66025a5b24a8fba313 100644 (file)
                        qcom,controller-type = "pmic-arbiter";
                };
 
-               qfprom: qfprom@700000 {
+               qfprom: efuse@700000 {
                        compatible = "qcom,apq8064-qfprom", "qcom,qfprom";
                        reg = <0x00700000 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
-                       ranges;
+
                        tsens_calib: calib@404 {
                                reg = <0x404 0x10>;
                        };
                        compatible = "qcom,gcc-apq8064", "syscon";
                        reg = <0x00900000 0x4000>;
                        #clock-cells = <1>;
-                       #power-domain-cells = <1>;
                        #reset-cells = <1>;
                        clocks = <&cxo_board>,
                                 <&pxo_board>,
                        reg = <0x1a400000 0x100>;
                };
 
-               gpu: adreno-3xx@4300000 {
+               gpu: gpu@4300000 {
                        compatible = "qcom,adreno-320.2", "qcom,adreno";
                        reg = <0x04300000 0x20000>;
                        reg-names = "kgsl_3d0_reg_memory";
index ca53dff820ef4ba1edfda75a29961ea9d7beb262..2b52e5d5eb5170997374164b0574fb2d3dcedf3e 100644 (file)
                        reg = <0xfc190000 0x10000>;
                };
 
-               qfprom: qfprom@fc4bc000 {
+               qfprom: efuse@fc4bc000 {
                        compatible = "qcom,apq8084-qfprom", "qcom,qfprom";
                        reg = <0xfc4bc000 0x1000>;
                        #address-cells = <1>;
index 0fb65f2bbcdfe79acfb745a1050824005a488df3..56415ab34083f38f0f5c6aefa873947409c8cc6a 100644 (file)
                gcc: clock-controller@1800000 {
                        compatible = "qcom,gcc-ipq4019";
                        #clock-cells = <1>;
-                       #power-domain-cells = <1>;
                        #reset-cells = <1>;
                        reg = <0x1800000 0x60000>;
                        clocks = <&xo>, <&sleep_clk>;
index f128510d844556c989201d412308e5aed86e1f8c..da0fd75f4711117690f37578f6af44c7820ad046 100644 (file)
                        qcom,controller-type = "pmic-arbiter";
                };
 
-               qfprom: qfprom@700000 {
+               qfprom: efuse@700000 {
                        compatible = "qcom,ipq8064-qfprom", "qcom,qfprom";
                        reg = <0x00700000 0x1000>;
                        #address-cells = <1>;
                        reg = <0x00900000 0x4000>;
                        #clock-cells = <1>;
                        #reset-cells = <1>;
-                       #power-domain-cells = <1>;
 
                        tsens: thermal-sensor {
                                compatible = "qcom,ipq8064-tsens";
index 34c60994d0263415718ea957cc80edb08849726e..573feb3218c33c449f95f4922c24400cea9ac0cc 100644 (file)
                gcc: clock-controller@900000 {
                        compatible = "qcom,gcc-mdm9615";
                        #clock-cells = <1>;
-                       #power-domain-cells = <1>;
                        #reset-cells = <1>;
                        reg = <0x900000 0x4000>;
                        clocks = <&cxo_board>,
index 525d8c608b06fbc14170e71f5f1bc57dea942517..8839b23fc69364377c25ecc8f554251c0ddaa99d 100644 (file)
        status = "okay";
 };
 
+&smbb {
+       status = "okay";
+};
+
 &usb {
        extcon = <&smbb>;
        dr_mode = "peripheral";
diff --git a/src/arm/qcom/qcom-msm8226-samsung-ms013g.dts b/src/arm/qcom/qcom-msm8226-samsung-ms013g.dts
new file mode 100644 (file)
index 0000000..2ecc598
--- /dev/null
@@ -0,0 +1,386 @@
+// SPDX-License-Identifier: BSD-3-Clause
+
+/dts-v1/;
+
+#include "qcom-msm8226.dtsi"
+#include "pm8226.dtsi"
+
+/delete-node/ &smem_region;
+
+/ {
+       model = "Samsung Galaxy Grand 2";
+       compatible = "samsung,ms013g", "qcom,msm8226";
+       chassis-type = "handset";
+
+       aliases {
+               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+               mmc1 = &sdhc_2; /* SDC2 SD card slot */
+               serial0 = &blsp1_uart3;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-hall-sensor {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&gpio_hall_sensor_default>;
+               pinctrl-names = "default";
+
+               label = "GPIO Hall Effect Sensor";
+
+               event-hall-sensor {
+                       label = "Hall Effect Sensor";
+                       gpios = <&tlmm 50 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       linux,can-disable;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&gpio_keys_default>;
+               pinctrl-names = "default";
+
+               label = "GPIO Buttons";
+
+               button-volume-up {
+                       label = "Volume Up";
+                       gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+
+               button-volume-down {
+                       label = "Volume Down";
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+
+               button-home {
+                       label = "Home Key";
+                       gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_HOMEPAGE>;
+               };
+       };
+
+       reg_motor_vdd: regulator-motor-vdd {
+               compatible = "regulator-fixed";
+               regulator-name = "motor_vdd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 111 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&motor_en_default>;
+               pinctrl-names = "default";
+       };
+
+       reg_vdd_tsp_a: regulator-vdd-tsp-a {
+               compatible = "regulator-fixed";
+               regulator-name = "tsp_3p3v";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 31 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&tsp_en_default>;
+               pinctrl-names = "default";
+       };
+
+       reserved-memory {
+               smem_region: smem@fa00000 {
+                       reg = <0x0fa00000 0x100000>;
+                       no-map;
+               };
+       };
+
+       vibrator {
+               compatible = "regulator-haptic";
+               haptic-supply = <&reg_motor_vdd>;
+               min-microvolt = <3300000>;
+               max-microvolt = <3300000>;
+       };
+};
+
+&blsp1_i2c2 {
+       status = "okay";
+
+       accelerometer@18 {
+               compatible = "bosch,bma255";
+               reg = <0x18>;
+               interrupts-extended = <&tlmm 64 IRQ_TYPE_EDGE_RISING>;
+
+               vdd-supply = <&pm8226_l19>;
+               vddio-supply = <&pm8226_lvs1>;
+
+               pinctrl-0 = <&accel_int_default>;
+               pinctrl-names = "default";
+
+               mount-matrix = "0", "1", "0",
+                              "-1", "0", "0",
+                              "0", "0", "-1";
+       };
+};
+
+&blsp1_i2c5 {
+       status = "okay";
+
+       touchscreen@20 {
+               compatible = "zinitix,bt541";
+
+               reg = <0x20>;
+               interrupts-extended = <&tlmm 17 IRQ_TYPE_EDGE_FALLING>;
+
+               touchscreen-size-x = <720>;
+               touchscreen-size-y = <1280>;
+
+               vcca-supply = <&reg_vdd_tsp_a>;
+               vdd-supply = <&pm8226_lvs1>;
+
+               pinctrl-0 = <&tsp_int_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp1_uart3 {
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-pm8226-regulators";
+
+               pm8226_s3: s3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               pm8226_s4: s4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2200000>;
+               };
+
+               pm8226_s5: s5 {
+                       regulator-min-microvolt = <1150000>;
+                       regulator-max-microvolt = <1150000>;
+               };
+
+               pm8226_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8226_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l3: l3 {
+                       regulator-min-microvolt = <750000>;
+                       regulator-max-microvolt = <1337500>;
+               };
+
+               pm8226_l4: l4 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l5: l5 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8226_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-allow-set-load;
+                       regulator-always-on;
+               };
+
+               pm8226_l7: l7 {
+                       regulator-min-microvolt = <1850000>;
+                       regulator-max-microvolt = <1850000>;
+               };
+
+               pm8226_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l9: l9 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8226_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l14: l14 {
+                       regulator-min-microvolt = <2750000>;
+                       regulator-max-microvolt = <2750000>;
+               };
+
+               pm8226_l15: l15 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+               };
+
+               pm8226_l16: l16 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3350000>;
+               };
+
+               pm8226_l17: l17 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+                       regulator-always-on;
+               };
+
+               pm8226_l18: l18 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8226_l19: l19 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pm8226_l20: l20 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+               };
+
+               pm8226_l21: l21 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-allow-set-load;
+               };
+
+               pm8226_l22: l22 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8226_l23: l23 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pm8226_l24: l24 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+
+               pm8226_l25: l25 {
+                       regulator-min-microvolt = <1775000>;
+                       regulator-max-microvolt = <2125000>;
+               };
+
+               pm8226_l26: l26 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               pm8226_l27: l27 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8226_l28: l28 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8226_lvs1: lvs1 {};
+       };
+};
+
+&sdhc_1 {
+       vmmc-supply = <&pm8226_l17>;
+       vqmmc-supply = <&pm8226_l6>;
+
+       bus-width = <8>;
+       non-removable;
+
+       status = "okay";
+};
+
+&sdhc_2 {
+       vmmc-supply = <&pm8226_l18>;
+       vqmmc-supply = <&pm8226_l21>;
+
+       bus-width = <4>;
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
+
+       pinctrl-0 = <&sdhc2_default_state &sdhc2_cd_default>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&tlmm {
+       accel_int_default: accel-int-default-state {
+               pins = "gpio64";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       gpio_hall_sensor_default: gpio-hall-sensor-default-state {
+               pins = "gpio50";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       gpio_keys_default: gpio-keys-default-state {
+               pins = "gpio106", "gpio107", "gpio108";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       motor_en_default: motor-en-default-state {
+               pins = "gpio111";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       sdhc2_cd_default: sdhc2-cd-default-state {
+               pins = "gpio38";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       tsp_en_default: tsp-en-default-state {
+               pins = "gpio31";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       tsp_int_default: tsp-int-default-state {
+               pins = "gpio17";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
index 270973e856259e4d3e55f8dcf28697a28f224814..b2f92ad6499acd992601536edc41462dfd3adbcf 100644 (file)
                        reg = <0xfc4ab000 0x4>;
                };
 
-               qfprom: qfprom@fc4bc000 {
+               qfprom: efuse@fc4bc000 {
                        compatible = "qcom,msm8226-qfprom", "qcom,qfprom";
                        reg = <0xfc4bc000 0x1000>;
                        #address-cells = <1>;
                        };
                };
 
-               gpu: adreno@fdb00000 {
+               gpu: gpu@fdb00000 {
                        compatible = "qcom,adreno-305.18", "qcom,adreno";
                        reg = <0xfdb00000 0x10000>;
                        reg-names = "kgsl_3d0_reg_memory";
index 455ba4bf1bf416027a71c06a126b9799d149516e..a66c474cd1aa0d4303dbb1fdaa97072c1f45a7b2 100644 (file)
                gcc: clock-controller@900000 {
                        compatible = "qcom,gcc-msm8660";
                        #clock-cells = <1>;
-                       #power-domain-cells = <1>;
                        #reset-cells = <1>;
                        reg = <0x900000 0x4000>;
                        clocks = <&pxo_board>, <&cxo_board>;
index 0cbe2d2fbbb18b892c3fa89ab212dac181c85379..376a33125941028a3977e76373ee96959b08ee3e 100644 (file)
                        height = <1280>;
                        stride = <(720 * 3)>;
                        format = "r8g8b8";
+                       vsp-supply = <&reg_lcd_pos>;
+                       vsn-supply = <&reg_lcd_neg>;
+                       vdd-supply = <&pm8226_l28>;
+                       vddio-supply = <&vddio_disp_vreg>;
                };
        };
 
                };
        };
 
+       vddio_disp_vreg: regulator-vddio-disp {
+               compatible = "regulator-fixed";
+               regulator-name = "vddio_disp";
+               gpio = <&tlmm 34 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <300>;
+               enable-active-high;
+               regulator-boot-on;
+               vin-supply = <&pm8226_l8>;
+               pinctrl-0 = <&disp_vddio_default>;
+               pinctrl-names = "default";
+       };
+
        reserved-memory {
                #address-cells = <1>;
                #size-cells = <1>;
        };
 };
 
+&blsp1_i2c2 {
+       clock-frequency = <100000>;
+       status = "okay";
+
+       magnetometer@c {
+               compatible = "asahi-kasei,ak8963";
+               reg = <0xc>;
+               interrupts-extended = <&tlmm 38 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&pm8226_l19>;
+               pinctrl-0 = <&mag_int_default &mag_reset_default>;
+               pinctrl-names = "default";
+       };
+
+       accelerometer@18 {
+               compatible = "st,lis3dh-accel";
+               reg = <0x18>;
+               interrupts-extended = <&tlmm 1 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8226_l19>;
+               pinctrl-0 = <&accel_int_default>;
+               pinctrl-names = "default";
+               st,drdy-int-pin = <1>;
+       };
+};
+
 &blsp1_i2c3 {
+       clock-frequency = <400000>;
        status = "okay";
 
+       regulator@3e {
+               compatible = "ti,tps65132";
+               reg = <0x3e>;
+               pinctrl-0 = <&reg_lcd_default>;
+               pinctrl-names = "default";
+
+               reg_lcd_pos: outp {
+                       regulator-name = "outp";
+                       regulator-min-microvolt = <4000000>;
+                       regulator-max-microvolt = <6000000>;
+                       regulator-active-discharge = <1>;
+                       regulator-boot-on;
+                       enable-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
+               };
+
+               reg_lcd_neg: outn {
+                       regulator-name = "outn";
+                       regulator-min-microvolt = <4000000>;
+                       regulator-max-microvolt = <6000000>;
+                       regulator-active-discharge = <1>;
+                       regulator-boot-on;
+                       enable-gpios = <&tlmm 33 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
        sensor@48 {
                compatible = "ti,tmp108";
                reg = <0x48>;
+               interrupts-extended = <&tlmm 13 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&temp_alert_default>;
+               pinctrl-names = "default";
+               #thermal-sensor-cells = <0>;
        };
 };
 
        status = "okay";
 };
 
+&tlmm {
+       accel_int_default: accel-int-default-state {
+               pins = "gpio1";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-disable;
+       };
+
+       disp_vddio_default: disp-vddio-default-state {
+               pins = "gpio34";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-high;
+       };
+
+       mag_int_default: mag-int-default-state {
+               pins = "gpio38";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-disable;
+       };
+
+       mag_reset_default: mag-reset-default-state {
+               pins = "gpio62";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-high;
+       };
+
+       reg_lcd_default: reg-lcd-default-state {
+               pins = "gpio31", "gpio33";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-high;
+       };
+
+       temp_alert_default: temp-alert-default-state {
+               pins = "gpio13";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-disable;
+       };
+};
+
 &usb {
        extcon = <&smbb>;
        dr_mode = "peripheral";
index 922f9e49468a6b9c8898e5080ea0a6408633cff5..ebc43c5c6e5f756995a5d48bdee102b0b3c47106 100644 (file)
@@ -47,9 +47,9 @@
                };
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
-               reg = <0x0 0x0>;
+               reg = <0x80000000 0>;
        };
 
        cpu-pmu {
                gcc: clock-controller@900000 {
                        compatible = "qcom,gcc-msm8960";
                        #clock-cells = <1>;
-                       #power-domain-cells = <1>;
                        #reset-cells = <1>;
                        reg = <0x900000 0x4000>;
                        clocks = <&cxo_board>,
index 4aaae8537a3fd9fd41524f60d2c2ef43821e9140..fdb6e22986cfc7d7fa88b46c6ca55298ba0544ca 100644 (file)
        status = "okay";
        clock-frequency = <355000>;
 
-       led-controller@38 {
+       backlight: led-controller@38 {
                compatible = "ti,lm3630a";
                status = "okay";
                reg = <0x38>;
                reg = <0>;
                compatible = "lg,acx467akm-7";
 
+               backlight = <&backlight>;
+
                pinctrl-names = "default";
                pinctrl-0 = <&panel_pin>;
 
                power-source = <PM8941_GPIO_S3>;
        };
 
-       otg {
+       otg-hog {
                gpio-hog;
                gpios = <35 GPIO_ACTIVE_HIGH>;
                output-high;
diff --git a/src/arm/qcom/qcom-msm8974-samsung-hlte.dts b/src/arm/qcom/qcom-msm8974-samsung-hlte.dts
new file mode 100644 (file)
index 0000000..903bb4d
--- /dev/null
@@ -0,0 +1,401 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974.dtsi"
+#include "pm8841.dtsi"
+#include "pm8941.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+
+/ {
+       model = "Samsung Galaxy Note 3";
+       compatible = "samsung,hlte", "qcom,msm8974";
+       chassis-type = "handset";
+
+       aliases {
+               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+               mmc1 = &sdhc_3; /* SDC3 SD card slot */
+               serial0 = &blsp1_uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&gpio_keys_pin_a>;
+               pinctrl-names = "default";
+
+               key-home {
+                       label = "Home Key";
+                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_HOMEPAGE>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+
+               key-volume-down {
+                       label = "Volume Down";
+                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <15>;
+               };
+
+               key-volume-up {
+                       label = "Volume Up";
+                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+               };
+       };
+
+       touch_ldo: regulator-touch {
+               compatible = "regulator-fixed";
+               regulator-name = "touch-ldo";
+
+               gpio = <&pm8941_gpios 9 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-boot-on;
+
+               pinctrl-0 = <&touch_ldo_pin>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp1_i2c2 {
+       status = "okay";
+
+       touchscreen@20 {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x20>;
+
+               interrupt-parent = <&pm8941_gpios>;
+               interrupts = <30 IRQ_TYPE_EDGE_FALLING>;
+
+               vdd-supply = <&pm8941_l10>;
+               vio-supply = <&touch_ldo>;
+
+               pinctrl-0 = <&touch_pin>;
+               pinctrl-names = "default";
+
+               syna,startup-delay-ms = <100>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               rmi4-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep-mode = <1>;
+               };
+
+               rmi4-f12@12 {
+                       reg = <0x12>;
+                       syna,sensor-type = <1>;
+               };
+       };
+};
+
+&blsp2_i2c6 {
+       status = "okay";
+
+       fuelgauge@36 {
+               compatible = "maxim,max17048";
+               reg = <0x36>;
+
+               maxim,double-soc;
+               maxim,rcomp = /bits/ 8 <0x56>;
+
+               interrupt-parent = <&pm8941_gpios>;
+               interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
+
+               pinctrl-0 = <&fuelgauge_pin>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp1_uart2 {
+       status = "okay";
+};
+
+&pm8941_gpios {
+       gpio_keys_pin_a: gpio-keys-active-state {
+               pins = "gpio2", "gpio3", "gpio5";
+               function = "normal";
+               bias-pull-up;
+               power-source = <PM8941_GPIO_S3>;
+       };
+
+       fuelgauge_pin: fuelgauge-int-state {
+               pins = "gpio26";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PM8941_GPIO_S3>;
+       };
+
+       touch_pin: touchscreen-int-state {
+               pins = "gpio30";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PM8941_GPIO_S3>;
+       };
+
+       touch_ldo_pin: touchscreen-ldo-state {
+               pins = "gpio9";
+               function = "normal";
+               output-high;
+               power-source = <PM8941_GPIO_S3>;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+       };
+};
+
+&remoteproc_adsp {
+       cx-supply = <&pm8841_s2>;
+       status = "okay";
+};
+
+&remoteproc_mss {
+       cx-supply = <&pm8841_s2>;
+       mss-supply = <&pm8841_s3>;
+       mx-supply = <&pm8841_s1>;
+       pll-supply = <&pm8941_l12>;
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators-0 {
+               compatible = "qcom,rpm-pm8841-regulators";
+
+               pm8841_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s2: s2 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s3: s3 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s4: s4 {
+                       regulator-min-microvolt = <815000>;
+                       regulator-max-microvolt = <900000>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,rpm-pm8941-regulators";
+
+               pm8941_s1: s1 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-always-on;
+               };
+
+               pm8941_s2: s2 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+               };
+
+               pm8941_s3: s3 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l1: l1 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8941_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8941_l3: l3 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8941_l4: l4 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8941_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8941_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l11: l11 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+
+               pm8941_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+               };
+
+               pm8941_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pm8941_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8941_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+
+               pm8941_l17: l17 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pm8941_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8941_l19: l19 {
+                       regulator-min-microvolt = <2900000>;
+                       regulator-max-microvolt = <3350000>;
+               };
+
+               pm8941_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+               };
+
+               pm8941_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+               };
+
+               pm8941_l22: l22 {
+                       regulator-min-microvolt = <2500000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pm8941_l23: l23 {
+                       regulator-min-microvolt = <2400000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pm8941_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+               };
+       };
+};
+
+&sdhc_1 {
+       vmmc-supply = <&pm8941_l20>;
+       vqmmc-supply = <&pm8941_s3>;
+
+       pinctrl-0 = <&sdhc1_pin_a>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&sdhc_3 {
+       max-frequency = <100000000>;
+
+       vmmc-supply = <&pm8941_l21>;
+       vqmmc-supply = <&pm8941_l21>;
+
+       pinctrl-0 = <&sdhc3_pin_a>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&tlmm {
+       sdhc1_pin_a: sdhc1-pin-active-state {
+               clk-pins {
+                       pins = "sdc1_clk";
+                       drive-strength = <4>;
+                       bias-disable;
+               };
+
+               cmd-data-pins {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <4>;
+                       bias-pull-up;
+               };
+       };
+
+       sdhc3_pin_a: sdhc3-pin-active-state {
+               pins = "gpio35", "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
+               function = "sdc3";
+               drive-strength = <8>;
+               bias-disable;
+       };
+};
+
+&usb {
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+
+       status = "okay";
+};
+
+&usb_hs1_phy {
+       v1p8-supply = <&pm8941_l6>;
+       v3p3-supply = <&pm8941_l24>;
+
+       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+
+       status = "okay";
+};
index 5651bb31bd54247db23019a7fdd77fe10e7fcf0e..15568579459ab3b718040cedd30daa6af0993091 100644 (file)
 
                smd-edge {
                        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
-                       qcom,ipc = <&apcs 8 0>;
+                       mboxes = <&apcs 0>;
                        qcom,smd-edge = <15>;
 
                        rpm_requests: rpm-requests {
                interrupt-parent = <&intc>;
                interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
 
-               qcom,ipc = <&apcs 8 10>;
+               mboxes = <&apcs 10>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <2>;
                interrupt-parent = <&intc>;
                interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
 
-               qcom,ipc = <&apcs 8 14>;
+               mboxes = <&apcs 14>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <1>;
                interrupt-parent = <&intc>;
                interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
 
-               qcom,ipc = <&apcs 8 18>;
+               mboxes = <&apcs 18>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <4>;
                #address-cells = <1>;
                #size-cells = <0>;
 
-               qcom,ipc-1 = <&apcs 8 13>;
-               qcom,ipc-2 = <&apcs 8 9>;
-               qcom,ipc-3 = <&apcs 8 19>;
+               mboxes = <0>, <&apcs 13>, <&apcs 9>, <&apcs 19>;
 
                apps_smsm: apps@0 {
                        reg = <0>;
                              <0xf9002000 0x1000>;
                };
 
-               apcs: syscon@f9011000 {
-                       compatible = "syscon";
+               apcs: mailbox@f9011000 {
+                       compatible = "qcom,msm8974-apcs-kpss-global",
+                                    "qcom,msm8994-apcs-kpss-global", "syscon";
                        reg = <0xf9011000 0x1000>;
+                       #mbox-cells = <1>;
                };
 
                saw_l2: power-manager@f9012000 {
                        smd-edge {
                                interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
 
-                               qcom,ipc = <&apcs 8 17>;
+                               mboxes = <&apcs 17>;
                                qcom,smd-edge = <6>;
 
                                wcnss {
                        reg = <0xfc4ab000 0x4>;
                };
 
-               qfprom: qfprom@fc4bc000 {
+               qfprom: efuse@fc4bc000 {
                        compatible = "qcom,msm8974-qfprom", "qcom,qfprom";
                        reg = <0xfc4bc000 0x2100>;
                        #address-cells = <1>;
                        smd-edge {
                                interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
 
-                               qcom,ipc = <&apcs 8 12>;
+                               mboxes = <&apcs 12>;
                                qcom,smd-edge = <0>;
 
                                label = "modem";
                        };
                };
 
-               gpu: adreno@fdb00000 {
+               gpu: gpu@fdb00000 {
                        compatible = "qcom,adreno-330.1", "qcom,adreno";
                        reg = <0xfdb00000 0x10000>;
                        reg-names = "kgsl_3d0_reg_memory";
                        smd-edge {
                                interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
 
-                               qcom,ipc = <&apcs 8 8>;
+                               mboxes = <&apcs 8>;
                                qcom,smd-edge = <1>;
                                label = "lpass";
                        };
diff --git a/src/arm/qcom/qcom-msm8974pro-htc-m8.dts b/src/arm/qcom/qcom-msm8974pro-htc-m8.dts
new file mode 100644 (file)
index 0000000..b896cc1
--- /dev/null
@@ -0,0 +1,353 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include "qcom-msm8974pro.dtsi"
+#include "pm8841.dtsi"
+#include "pm8941.dtsi"
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "HTC One (M8)";
+       compatible = "htc,m8", "qcom,msm8974pro", "qcom,msm8974";
+       chassis-type = "handset";
+
+       aliases {
+               mmc0 = &sdhc_1;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&gpio_keys_default>;
+               pinctrl-names = "default";
+
+               key-volume-down {
+                       label = "volume_down";
+                       gpios = <&tlmm 27 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <20>;
+                       wakeup-source;
+               };
+
+               key-volume-up {
+                       label = "volume_up";
+                       gpios = <&tlmm 28 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <20>;
+                       wakeup-source;
+               };
+       };
+
+       vreg_boost: vreg-boost {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vreg-boost";
+               regulator-min-microvolt = <3150000>;
+               regulator-max-microvolt = <3150000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+
+               gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&boost_bypass_n_pin>;
+               pinctrl-names = "default";
+       };
+
+       vreg_vph_pwr: vreg-vph-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "vph-pwr";
+
+               regulator-min-microvolt = <3600000>;
+               regulator-max-microvolt = <3600000>;
+
+               regulator-always-on;
+       };
+};
+
+&pm8941_vib {
+       status = "okay";
+};
+
+&pronto {
+       vddmx-supply = <&pm8841_s1>;
+       vddcx-supply = <&pm8841_s2>;
+       vddpx-supply = <&pm8941_s3>;
+
+       pinctrl-0 = <&wcnss_pin_a>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       iris {
+               vddxo-supply = <&pm8941_l6>;
+               vddrfa-supply = <&pm8941_l11>;
+               vddpa-supply = <&pm8941_l19>;
+               vdddig-supply = <&pm8941_s3>;
+       };
+
+       smd-edge {
+               qcom,remote-pid = <4>;
+               label = "pronto";
+
+               wcnss {
+                       status = "okay";
+               };
+       };
+};
+
+&rpm_requests {
+       regulators-0 {
+               compatible = "qcom,rpm-pm8841-regulators";
+
+               pm8841_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s2: s2 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s3: s3 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s4: s4 {
+                       regulator-min-microvolt = <815000>;
+                       regulator-max-microvolt = <900000>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,rpm-pm8941-regulators";
+
+               vdd_l1_l3-supply = <&pm8941_s1>;
+               vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
+               vdd_l4_l11-supply = <&pm8941_s1>;
+               vdd_l5_l7-supply = <&pm8941_s2>;
+               vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
+               vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>;
+               vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
+               vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
+               vdd_l21-supply = <&vreg_boost>;
+
+               pm8941_s1: s1 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_s2: s2 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_s3: s3 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8941_l3: l3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8941_l4: l4 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8941_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8941_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8941_l11: l11 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+
+               pm8941_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8941_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+
+               pm8941_l17: l17 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8941_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8941_l19: l19 {
+                       regulator-min-microvolt = <2900000>;
+                       regulator-max-microvolt = <3350000>;
+               };
+
+               pm8941_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+
+               pm8941_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l22: l22 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pm8941_l23: l23 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pm8941_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+                       regulator-boot-on;
+               };
+       };
+};
+
+&sdhc_1 {
+       vmmc-supply = <&pm8941_l20>;
+       vqmmc-supply = <&pm8941_s3>;
+
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+       pinctrl-names = "default", "sleep";
+
+       status = "okay";
+};
+
+&smbb {
+       status = "okay";
+};
+
+&tlmm {
+       gpio_keys_default: gpio-keys-default-state {
+               pins = "gpio27", "gpio28";
+               function = "gpio";
+               bias-pull-up;
+       };
+
+       sdc1_on: sdc1-on-state {
+               clk-pins {
+                       pins = "sdc1_clk";
+                       drive-strength = <10>;
+                       bias-disable;
+               };
+
+               cmd-data-pins {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+
+       wcnss_pin_a: wcnss-pin-active-state {
+               pins = "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
+               function = "wlan";
+               drive-strength = <6>;
+               bias-pull-down;
+       };
+};
+
+&usb {
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+       extcon = <&smbb>, <&usb_id>;
+       vbus-supply = <&chg_otg>;
+
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+
+       status = "okay";
+};
+
+&usb_hs1_phy {
+       v1p8-supply = <&pm8941_l6>;
+       v3p3-supply = <&pm8941_l24>;
+       extcon = <&smbb>;
+       qcom,init-seq = /bits/ 8 <0x1 0x63>;
+       status = "okay";
+};
diff --git a/src/arm/qcom/qcom-msm8974pro-sony-xperia-shinano-aries.dts b/src/arm/qcom/qcom-msm8974pro-sony-xperia-shinano-aries.dts
new file mode 100644 (file)
index 0000000..2621c59
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro-sony-xperia-shinano-common.dtsi"
+
+/ {
+       model = "Sony Xperia Z3 Compact";
+       compatible = "sony,xperia-aries", "qcom,msm8974pro", "qcom,msm8974";
+       chassis-type = "handset";
+
+       gpio-keys {
+               key-camera-snapshot {
+                       label = "camera_snapshot";
+                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_CAMERA>;
+                       debounce-interval = <15>;
+               };
+
+               key-camera-focus {
+                       label = "camera_focus";
+                       gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_CAMERA_FOCUS>;
+                       debounce-interval = <15>;
+               };
+       };
+};
+
+&gpio_keys_pin_a {
+       pins = "gpio2", "gpio3", "gpio4", "gpio5";
+};
+
+&smbb {
+       usb-charge-current-limit = <1500000>;
+       qcom,fast-charge-safe-current = <2100000>;
+       qcom,fast-charge-current-limit = <1800000>;
+       qcom,fast-charge-safe-voltage = <4400000>;
+       qcom,fast-charge-high-threshold-voltage = <4350000>;
+       qcom,auto-recharge-threshold-voltage = <4280000>;
+       qcom,minimum-input-voltage = <4200000>;
+
+       status = "okay";
+};
+
+&synaptics_touchscreen {
+       vio-supply = <&pm8941_s3>;
+};
index e129bb1bd6ec68d4e0fe4710cf1474f7fff533f7..6af7c71c715847f137ec2da41d70f679a8e1c04b 100644 (file)
                pm8941_l21: l21 {
                        regulator-min-microvolt = <2950000>;
                        regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <500000>;
+                       regulator-allow-set-load;
                        regulator-boot-on;
                };
 
index 9a2ae282a46ba4b160d2218cc6c52dfba6dc9e2f..85261684b5d5fe02aa806b701b03da6f8cd814e4 100644 (file)
@@ -58,6 +58,7 @@
                             <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        tmu0: timer@e61e0000 {
index d55c344c1cd2b1511e37fa8a4ecc95707d84ed35..3a5d6b434d0946fa3200cbbedefcddeb1cf5c68f 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clock - can be overridden by the board */
index d917c0a971f51b9469f1dde84412d2cb25199aa7..8833898d5557f4dbc903eed75b8ef8e85b2d8150 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clock - can be overridden by the board */
index 754859c38a939a9064b207f6fa260eeae67d6388..c66c1102fb7218be652c2b18860e80a974cdc8e3 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clock - can be overridden by the board */
index 168298300490d31c33191d0d10abeeae27badc16..6ddde364782b8aea8e038f5bc339f94fd92c7e3a 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clock - can be overridden by the board */
index 2375438d83c9d5b656c17da5a0ce85a4194f70a0..a8a12275c98a66c74501186263662e158e8a97e5 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clock - can be overridden by the board */
index 583b74a9f071c39ebbe04257b9794a16c2ed5329..20e4d4c6e7481f041b33e8a3fde9c21580aa2bef 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clock - can be overridden by the board */
index de08ceb62230b6ddd3f0db92c660f9c66412f673..f9c9e1d8f669c314d67b0b1aae486b421fee7c89 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clock - can be overridden by the board */
index 7defeb8e4cd1f499e42ac903ac75f1aa44d4341c..dd3bc32668b7b31eb2069b0f33772d7127c39202 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 };
index d32a9d5d3faa71fc30cc837cb915a6e418b91be1..24e66ddf37e0483b573333007081ea789ca21dfd 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clock - can be overridden by the board */
index f37f094cecc8c399204dfb0eccdacd61501a3493..8e6386a79aead35becfd018cca8eaed56d0ac665 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clock - can be overridden by the board */
index 45f60eeeaaa1d320fe36bfe997c2bb06cefb8c20..7548291c8d7ede43920e2387f104239658e72445 100644 (file)
                        data-width = <8>;
                };
 
+               gmac1: ethernet@44000000 {
+                       compatible = "renesas,r9a06g032-gmac", "renesas,rzn1-gmac", "snps,dwmac";
+                       reg = <0x44000000 0x2000>;
+                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
+                       clocks = <&sysctrl R9A06G032_HCLK_GMAC0>;
+                       clock-names = "stmmaceth";
+                       power-domains = <&sysctrl>;
+                       snps,multicast-filter-bins = <256>;
+                       snps,perfect-filter-entries = <128>;
+                       tx-fifo-depth = <2048>;
+                       rx-fifo-depth = <4096>;
+                       pcs-handle = <&mii_conv1>;
+                       status = "disabled";
+               };
+
                gmac2: ethernet@44002000 {
                        compatible = "renesas,r9a06g032-gmac", "renesas,rzn1-gmac", "snps,dwmac";
                        reg = <0x44002000 0x2000>;
                        <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)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        usbphy: usb-phy {
index 04af224005f8c28a261e97eee6db775bff985f54..96279d1e02fec540e5f317c62743ae6c3f3b40a1 100644 (file)
                rockchip,grf = <&grf>;
                pinctrl-names = "default";
                pinctrl-0 = <&hdmi_ctl>;
+               #sound-dai-cells = <0>;
                status = "disabled";
 
                ports {
index 06790f05b39537648c38b10ad6a4d9783b4bb076..4de9a45c4883b8fe9203b0c3540a35ba29b5ddf2 100644 (file)
        };
 };
 
+&hdmi_sound {
+       status = "okay";
+};
+
+&i2s0 {
+       status = "okay";
+};
+
 &mmc0 {
        bus-width = <4>;
        cap-mmc-highspeed;
index 15cbd94d7ec05492c26d93eb906ef149cde1e6b0..3f6d494597349e7f28a65855705b98f74258f59a 100644 (file)
                ports = <&vop0_out>, <&vop1_out>;
        };
 
+       hdmi_sound: hdmi-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "HDMI";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,mclk-fs = <256>;
+               status = "disabled";
+
+               simple-audio-card,codec {
+                       sound-dai = <&hdmi>;
+               };
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s0>;
+               };
+       };
+
        sram: sram@10080000 {
                compatible = "mmio-sram";
                reg = <0x10080000 0x10000>;
 &wdt {
        compatible = "rockchip,rk3066-wdt", "snps,dw-wdt";
 };
-
-&emac {
-       compatible = "rockchip,rk3066-emac";
-};
index fb98873fd94e5994134a6107cadfeae57903ddb7..23e633387c24ddcf606fbb8790763fdb7d23f9d4 100644 (file)
                                         <&cru ACLK_LCDC0>,
                                         <&cru HCLK_LCDC0>,
                                         <&cru PCLK_MIPI>,
+                                        <&cru PCLK_MIPIPHY>,
+                                        <&cru SCLK_MIPI_24M>,
                                         <&cru ACLK_RGA>,
                                         <&cru HCLK_RGA>,
                                         <&cru ACLK_VIO0>,
                                reg = <0>;
                                remote-endpoint = <&hdmi_in_vop>;
                        };
+
+                       vop_out_dsi: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&dsi_in_vop>;
+                       };
+               };
+       };
+
+       dsi: dsi@10110000 {
+               compatible = "rockchip,rk3128-mipi-dsi", "snps,dw-mipi-dsi";
+               reg = <0x10110000 0x4000>;
+               interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru PCLK_MIPI>;
+               clock-names = "pclk";
+               phys = <&dphy>;
+               phy-names = "dphy";
+               power-domains = <&power RK3128_PD_VIO>;
+               resets = <&cru SRST_VIO_MIPI_DSI>;
+               reset-names = "apb";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       dsi_in: port@0 {
+                               reg = <0>;
+
+                               dsi_in_vop: endpoint {
+                                       remote-endpoint = <&vop_out_dsi>;
+                               };
+                       };
+
+                       dsi_out: port@1 {
+                               reg = <1>;
+                       };
                };
        };
 
                status = "disabled";
        };
 
+       i2s_8ch: i2s@10200000 {
+               compatible = "rockchip,rk3128-i2s", "rockchip,rk3066-i2s";
+               reg = <0x10200000 0x1000>;
+               interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S_8CH>;
+               clock-names = "i2s_clk", "i2s_hclk";
+               dmas = <&pdma 14>, <&pdma 15>;
+               dma-names = "tx", "rx";
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       spdif: spdif@10204000 {
+               compatible = "rockchip,rk3128-spdif", "rockchip,rk3066-spdif";
+               reg = <0x10204000 0x1000>;
+               interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_SPDIF>, <&cru HCLK_SPDIF>;
+               clock-names = "mclk", "hclk";
+               dmas = <&pdma 13>;
+               dma-names = "tx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spdif_tx>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       sfc: spi@1020c000 {
+               compatible = "rockchip,sfc";
+               reg = <0x1020c000 0x8000>;
+               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_SFC>, <&cru 479>;
+               clock-names = "clk_sfc", "hclk_sfc";
+               status = "disabled";
+       };
+
        sdmmc: mmc@10214000 {
                compatible = "rockchip,rk3128-dw-mshc", "rockchip,rk3288-dw-mshc";
                reg = <0x10214000 0x4000>;
                status = "disabled";
        };
 
+       i2s_2ch: i2s@10220000 {
+               compatible = "rockchip,rk3128-i2s", "rockchip,rk3066-i2s";
+               reg = <0x10220000 0x1000>;
+               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_I2S1>, <&cru HCLK_I2S_2CH>;
+               clock-names = "i2s_clk", "i2s_hclk";
+               dmas = <&pdma 0>, <&pdma 1>;
+               dma-names = "tx", "rx";
+               rockchip,playback-channels = <2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s_bus>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
        nfc: nand-controller@10500000 {
                compatible = "rockchip,rk3128-nfc", "rockchip,rk2928-nfc";
                reg = <0x10500000 0x4000>;
                pinctrl-names = "default";
                pinctrl-0 = <&hdmii2c_xfer &hdmi_hpd &hdmi_cec>;
                power-domains = <&power RK3128_PD_VIO>;
+               #sound-dai-cells = <0>;
                status = "disabled";
 
                ports {
                };
        };
 
+       dphy: phy@20038000 {
+               compatible = "rockchip,rk3128-dsi-dphy";
+               reg = <0x20038000 0x4000>;
+               clocks = <&cru SCLK_MIPI_24M>, <&cru PCLK_MIPIPHY>;
+               clock-names = "ref", "pclk";
+               #phy-cells = <0>;
+               power-domains = <&power RK3128_PD_VIO>;
+               resets = <&cru SRST_MIPIPHY_P>;
+               reset-names = "apb";
+               status = "disabled";
+       };
+
        timer0: timer@20044000 {
                compatible = "rockchip,rk3128-timer", "rockchip,rk3288-timer";
                reg = <0x20044000 0x20>;
                        };
                };
 
+               sfc {
+                       sfc_bus2: sfc-bus2 {
+                               rockchip,pins = <1 RK_PD0 3 &pcfg_pull_default>,
+                                               <1 RK_PD1 3 &pcfg_pull_default>;
+                       };
+
+                       sfc_bus4: sfc-bus4 {
+                               rockchip,pins = <1 RK_PD0 3 &pcfg_pull_default>,
+                                               <1 RK_PD1 3 &pcfg_pull_default>,
+                                               <1 RK_PD2 3 &pcfg_pull_default>,
+                                               <1 RK_PD3 3 &pcfg_pull_default>;
+                       };
+
+                       sfc_clk: sfc-clk {
+                               rockchip,pins = <2 RK_PA4 3 &pcfg_pull_none>;
+                       };
+
+                       sfc_cs0: sfc-cs0 {
+                               rockchip,pins = <2 RK_PA2 2 &pcfg_pull_default>;
+                       };
+
+                       sfc_cs1: sfc-cs1 {
+                               rockchip,pins = <2 RK_PA3 2 &pcfg_pull_default>;
+                       };
+               };
+
                spdif {
                        spdif_tx: spdif-tx {
                                rockchip,pins = <3 RK_PD3 1 &pcfg_pull_none>;
index f37137f298d5f1605d0fb491624c363ea42adb8f..e6a78bcf916382841b59900be3a6c84603950926 100644 (file)
        };
 
        emac: ethernet@10204000 {
-               compatible = "snps,arc-emac";
+               compatible = "rockchip,rk3066-emac";
                reg = <0x10204000 0x3c>;
                interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
-
-               rockchip,grf = <&grf>;
-
                clocks = <&cru HCLK_EMAC>, <&cru SCLK_MAC>;
                clock-names = "hclk", "macref";
                max-speed = <100>;
                phy-mode = "rmii";
-
+               rockchip,grf = <&grf>;
                status = "disabled";
        };
 
index 0c2396b8f8db6db18b3ed78e2df2b358b8d2c493..7707d1b01440b0cf16668c53faac3a17d02c5162 100644 (file)
@@ -69,8 +69,7 @@
 
 &mdio {
        phy: ethernet-phy@0 {
-               compatible = "ethernet-phy-id001c.c916",
-                            "ethernet-phy-ieee802.3-c22";
+               compatible = "ethernet-phy-id001c.c916";
                reg = <0x0>;
                pinctrl-names = "default";
                pinctrl-0 = <&eth_phy_rst>;
index 29302e74aa1d9dd5114df8ba8ab6d987fd17a390..35a55aef7f4bbee477442ff71cafb271e21419cd 100644 (file)
@@ -33,7 +33,7 @@
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
-               cpu@0 {
+               cpu0: cpu@0 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <0>;
@@ -52,8 +52,9 @@
                        clock-latency = <100000>;
                        cpu0-supply = <&pwm_regulator>;
                        st,syscfg = <&syscfg_core 0x8e0>;
+                       #cooling-cells = <2>;
                };
-               cpu@1 {
+               cpu1: cpu@1 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <1>;
@@ -66,6 +67,7 @@
                                            1200000 0
                                            800000  0
                                            500000  0>;
+                       #cooling-cells = <2>;
                };
        };
 
index 29e95e9d3229c39fcb8fb415519fd981aecdc54d..a69231854f783b1b9fd685ba2822eb406e0ffdf5 100644 (file)
                        clock-names = "thermal";
                        clocks = <&clk_sysin>;
                        interrupts = <GIC_SPI 205 IRQ_TYPE_EDGE_RISING>;
+                       #thermal-sensor-cells = <0>;
                };
 
                cec@94a087c {
index b35b9b7a7cccc6b79729c7c9336e0386143c0b6f..8fb8b3af5e4951096ec89a35556e9fef89340eb6 100644 (file)
@@ -6,23 +6,26 @@
 #include "stih418-clock.dtsi"
 #include "stih407-family.dtsi"
 #include "stih410-pinctrl.dtsi"
+#include <dt-bindings/thermal/thermal.h>
 / {
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
-               cpu@2 {
+               cpu2: cpu@2 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <2>;
                        /* u-boot puts hpen in SBC dmem at 0xa4 offset */
                        cpu-release-addr = <0x94100A4>;
+                       #cooling-cells = <2>;
                };
-               cpu@3 {
+               cpu3: cpu@3 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <3>;
                        /* u-boot puts hpen in SBC dmem at 0xa4 offset */
                        cpu-release-addr = <0x94100A4>;
+                       #cooling-cells = <2>;
                };
        };
 
                reset-names = "global", "port";
        };
 
+       thermal-zones {
+               cpu_thermal: cpu-thermal {
+                       polling-delay-passive = <250>;  /* 250ms */
+                       polling-delay = <1000>;         /* 1000ms */
+
+                       thermal-sensors = <&thermal>;
+
+                       trips {
+                               cpu_crit: cpu-crit {
+                                       temperature = <95000>;  /* 95C */
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                               cpu_alert: cpu-alert {
+                                       temperature = <85000>;  /* 85C */
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                       };
+
+                       cooling-maps {
+                               map {
+                                       trip = <&cpu_alert>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
+
        soc {
                rng11: rng@8a8a000 {
                        status = "disabled";
                        assigned-clock-rates = <200000000>;
                };
 
-               thermal@91a0000 {
+               thermal: thermal@91a0000 {
                        compatible = "st,stih407-thermal";
                        reg = <0x91a0000 0x28>;
                        clock-names = "thermal";
                        clocks = <&clk_sysin>;
                        interrupts = <GIC_SPI 205 IRQ_TYPE_EDGE_RISING>;
+                       #thermal-sensor-cells = <0>;
                };
        };
 };
index 8efcda9ef8ae20bfd3ffee07df89d958e28939e9..ad91b74ddd0d3e67a45b6702dac42bb37b18611a 100644 (file)
                syscfg: syscon@40013800 {
                        compatible = "st,stm32-syscfg", "syscon";
                        reg = <0x40013800 0x400>;
+                       clocks = <&rcc 0 STM32F4_APB2_CLOCK(SYSCFG)>;
                };
 
                exti: interrupt-controller@40013c00 {
index 32c5d8a1e06acdf0074ab4c6ce0c2e62c80526f0..c9f588a650944596be31601584f4973798ca2801 100644 (file)
@@ -6,6 +6,14 @@
 #include <dt-bindings/pinctrl/stm32-pinfunc.h>
 
 &pinctrl {
+       /omit-if-no-ref/
+       adc1_pins_a: adc1-pins-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('A', 3, ANALOG)>; /* ADC1 in12 */
+               };
+       };
+
+       /omit-if-no-ref/
        adc1_usb_cc_pins_a: adc1-usb-cc-pins-0 {
                pins {
                        pinmux = <STM32_PINMUX('F', 12, ANALOG)>, /* ADC1 in6 */
                };
        };
 
+       /omit-if-no-ref/
+       adc1_usb_cc_pins_b: adc1-usb-cc-pins-1 {
+               pins {
+                       pinmux = <STM32_PINMUX('A', 5, ANALOG)>, /* ADC1_INP2 */
+                                <STM32_PINMUX('F', 13, ANALOG)>; /* ADC1_INP11 */
+               };
+       };
+
+       /omit-if-no-ref/
+       dcmipp_pins_a: dcmi-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('H',  8,  AF13)>,/* DCMI_HSYNC */
+                                <STM32_PINMUX('G',  9,  AF13)>,/* DCMI_VSYNC */
+                                <STM32_PINMUX('B',  7,  AF14)>,/* DCMI_PIXCLK */
+                                <STM32_PINMUX('A',  9,  AF13)>,/* DCMI_D0 */
+                                <STM32_PINMUX('D',  0,  AF13)>,/* DCMI_D1 */
+                                <STM32_PINMUX('G', 10,  AF13)>,/* DCMI_D2 */
+                                <STM32_PINMUX('E',  4,  AF13)>,/* DCMI_D3 */
+                                <STM32_PINMUX('D', 11,  AF14)>,/* DCMI_D4 */
+                                <STM32_PINMUX('D',  3,  AF13)>,/* DCMI_D5 */
+                                <STM32_PINMUX('B',  8,  AF13)>,/* DCMI_D6 */
+                                <STM32_PINMUX('E', 14,  AF13)>;/* DCMI_D7 */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       dcmipp_sleep_pins_a: dcmi-sleep-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('H',  8,  ANALOG)>,/* DCMI_HSYNC */
+                                <STM32_PINMUX('G',  9,  ANALOG)>,/* DCMI_VSYNC */
+                                <STM32_PINMUX('B',  7,  ANALOG)>,/* DCMI_PIXCLK */
+                                <STM32_PINMUX('A',  9,  ANALOG)>,/* DCMI_D0 */
+                                <STM32_PINMUX('D',  0,  ANALOG)>,/* DCMI_D1 */
+                                <STM32_PINMUX('G', 10,  ANALOG)>,/* DCMI_D2 */
+                                <STM32_PINMUX('E',  4,  ANALOG)>,/* DCMI_D3 */
+                                <STM32_PINMUX('D', 11,  ANALOG)>,/* DCMI_D4 */
+                                <STM32_PINMUX('D',  3,  ANALOG)>,/* DCMI_D5 */
+                                <STM32_PINMUX('B',  8,  ANALOG)>,/* DCMI_D6 */
+                                <STM32_PINMUX('E', 14,  ANALOG)>;/* DCMI_D7 */
+               };
+       };
+
+       /omit-if-no-ref/
+       eth1_rgmii_pins_a: eth1-rgmii-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH_RGMII_TXD0 */
+                                <STM32_PINMUX('G', 14, AF11)>, /* ETH_RGMII_TXD1 */
+                                <STM32_PINMUX('C', 2, AF11)>, /* ETH_RGMII_TXD2 */
+                                <STM32_PINMUX('E', 5, AF10)>, /* ETH_RGMII_TXD3 */
+                                <STM32_PINMUX('B', 11, AF11)>, /* ETH_RGMII_TX_CTL */
+                                <STM32_PINMUX('C', 1, AF11)>, /* ETH_RGMII_GTX_CLK */
+                                <STM32_PINMUX('A', 2, AF11)>, /* ETH_MDIO */
+                                <STM32_PINMUX('G', 2, AF11)>; /* ETH_MDC */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <2>;
+               };
+
+               pins2 {
+                       pinmux = <STM32_PINMUX('C', 4, AF11)>, /* ETH_RGMII_RXD0 */
+                                <STM32_PINMUX('C', 5, AF11)>, /* ETH_RGMII_RXD1 */
+                                <STM32_PINMUX('B', 0, AF11)>, /* ETH_RGMII_RXD2 */
+                                <STM32_PINMUX('B', 1, AF11)>, /* ETH_RGMII_RXD3 */
+                                <STM32_PINMUX('A', 7, AF11)>, /* ETH_RGMII_RX_CTL */
+                                <STM32_PINMUX('D', 7, AF10)>; /* ETH_RGMII_RX_CLK */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       eth1_rgmii_sleep_pins_a: eth1-rgmii-sleep-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('G', 13, ANALOG)>, /* ETH_RGMII_TXD0 */
+                                <STM32_PINMUX('G', 14, ANALOG)>, /* ETH_RGMII_TXD1 */
+                                <STM32_PINMUX('C', 2, ANALOG)>, /* ETH_RGMII_TXD2 */
+                                <STM32_PINMUX('E', 5, ANALOG)>, /* ETH_RGMII_TXD3 */
+                                <STM32_PINMUX('B', 11, ANALOG)>, /* ETH_RGMII_TX_CTL */
+                                <STM32_PINMUX('C', 1, ANALOG)>, /* ETH_RGMII_GTX_CLK */
+                                <STM32_PINMUX('A', 2, ANALOG)>, /* ETH_MDIO */
+                                <STM32_PINMUX('G', 2, ANALOG)>, /* ETH_MDC */
+                                <STM32_PINMUX('C', 4, ANALOG)>, /* ETH_RGMII_RXD0 */
+                                <STM32_PINMUX('C', 5, ANALOG)>, /* ETH_RGMII_RXD1 */
+                                <STM32_PINMUX('B', 0, ANALOG)>, /* ETH_RGMII_RXD1 */
+                                <STM32_PINMUX('B', 1, ANALOG)>, /* ETH_RGMII_RXD1 */
+                                <STM32_PINMUX('A', 7, ANALOG)>, /* ETH_RGMII_RX_CTL */
+                                <STM32_PINMUX('D', 7, ANALOG)>; /* ETH_RGMII_RX_CLK */
+               };
+       };
+
+       /omit-if-no-ref/
+       eth1_rmii_pins_a: eth1-rmii-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH_RMII_TXD0 */
+                                <STM32_PINMUX('G', 14, AF11)>, /* ETH_RMII_TXD1 */
+                                <STM32_PINMUX('B', 11, AF11)>, /* ETH_RMII_TX_EN */
+                                <STM32_PINMUX('A', 1, AF11)>, /* ETH_RMII_REF_CLK */
+                                <STM32_PINMUX('A', 2, AF11)>, /* ETH_MDIO */
+                                <STM32_PINMUX('G', 2, AF11)>; /* ETH_MDC */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <1>;
+               };
+
+               pins2 {
+                       pinmux = <STM32_PINMUX('C', 4, AF11)>, /* ETH_RMII_RXD0 */
+                                <STM32_PINMUX('C', 5, AF11)>, /* ETH_RMII_RXD1 */
+                                <STM32_PINMUX('C', 1, AF10)>; /* ETH_RMII_CRS_DV */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       eth1_rmii_sleep_pins_a: eth1-rmii-sleep-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('G', 13, ANALOG)>, /* ETH_RMII_TXD0 */
+                                <STM32_PINMUX('G', 14, ANALOG)>, /* ETH_RMII_TXD1 */
+                                <STM32_PINMUX('B', 11, ANALOG)>, /* ETH_RMII_TX_EN */
+                                <STM32_PINMUX('A', 1, ANALOG)>, /* ETH_RMII_REF_CLK */
+                                <STM32_PINMUX('A', 2, ANALOG)>, /* ETH_MDIO */
+                                <STM32_PINMUX('G', 2, ANALOG)>, /* ETH_MDC */
+                                <STM32_PINMUX('C', 4, ANALOG)>, /* ETH_RMII_RXD0 */
+                                <STM32_PINMUX('C', 5, ANALOG)>, /* ETH_RMII_RXD1 */
+                                <STM32_PINMUX('C', 1, ANALOG)>; /* ETH_RMII_CRS_DV */
+               };
+       };
+
+       /omit-if-no-ref/
+       eth2_rgmii_pins_a: eth2-rgmii-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('F', 7, AF11)>, /* ETH_RGMII_TXD0 */
+                                <STM32_PINMUX('G', 11, AF10)>, /* ETH_RGMII_TXD1 */
+                                <STM32_PINMUX('G', 1, AF10)>, /* ETH_RGMII_TXD2 */
+                                <STM32_PINMUX('E', 6, AF11)>, /* ETH_RGMII_TXD3 */
+                                <STM32_PINMUX('F', 6, AF11)>, /* ETH_RGMII_TX_CTL */
+                                <STM32_PINMUX('G', 3, AF10)>, /* ETH_RGMII_GTX_CLK */
+                                <STM32_PINMUX('B', 6, AF11)>, /* ETH_MDIO */
+                                <STM32_PINMUX('G', 5, AF10)>; /* ETH_MDC */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <2>;
+               };
+
+               pins2 {
+                       pinmux = <STM32_PINMUX('F', 4, AF11)>, /* ETH_RGMII_RXD0 */
+                                <STM32_PINMUX('E', 2, AF10)>, /* ETH_RGMII_RXD1 */
+                                <STM32_PINMUX('H', 6, AF12)>, /* ETH_RGMII_RXD2 */
+                                <STM32_PINMUX('A', 8, AF11)>, /* ETH_RGMII_RXD3 */
+                                <STM32_PINMUX('A', 12, AF11)>, /* ETH_RGMII_RX_CTL */
+                                <STM32_PINMUX('H', 11, AF11)>; /* ETH_RGMII_RX_CLK */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       eth2_rgmii_sleep_pins_a: eth2-rgmii-sleep-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('F', 7, ANALOG)>, /* ETH_RGMII_TXD0 */
+                                <STM32_PINMUX('G', 11, ANALOG)>, /* ETH_RGMII_TXD1 */
+                                <STM32_PINMUX('G', 1, ANALOG)>, /* ETH_RGMII_TXD2 */
+                                <STM32_PINMUX('E', 6, ANALOG)>, /* ETH_RGMII_TXD3 */
+                                <STM32_PINMUX('F', 6, ANALOG)>, /* ETH_RGMII_TX_CTL */
+                                <STM32_PINMUX('G', 3, ANALOG)>, /* ETH_RGMII_GTX_CLK */
+                                <STM32_PINMUX('B', 6, ANALOG)>, /* ETH_MDIO */
+                                <STM32_PINMUX('G', 5, ANALOG)>, /* ETH_MDC */
+                                <STM32_PINMUX('F', 4, ANALOG)>, /* ETH_RGMII_RXD0 */
+                                <STM32_PINMUX('E', 2, ANALOG)>, /* ETH_RGMII_RXD1 */
+                                <STM32_PINMUX('H', 6, ANALOG)>, /* ETH_RGMII_RXD2 */
+                                <STM32_PINMUX('A', 8, ANALOG)>, /* ETH_RGMII_RXD3 */
+                                <STM32_PINMUX('A', 12, ANALOG)>, /* ETH_RGMII_RX_CTL */
+                                <STM32_PINMUX('H', 11, ANALOG)>; /* ETH_RGMII_RX_CLK */
+               };
+       };
+
+       /omit-if-no-ref/
+       eth2_rmii_pins_a: eth2-rmii-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('F', 7, AF11)>, /* ETH_RMII_TXD0 */
+                                <STM32_PINMUX('G', 11, AF10)>, /* ETH_RMII_TXD1 */
+                                <STM32_PINMUX('G', 8, AF13)>, /* ETH_RMII_ETHCK */
+                                <STM32_PINMUX('F', 6, AF11)>, /* ETH_RMII_TX_EN */
+                                <STM32_PINMUX('B', 2, AF11)>, /* ETH_MDIO */
+                                <STM32_PINMUX('G', 5, AF10)>; /* ETH_MDC */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <1>;
+               };
+
+               pins2 {
+                       pinmux = <STM32_PINMUX('F', 4, AF11)>, /* ETH_RMII_RXD0 */
+                                <STM32_PINMUX('E', 2, AF10)>, /* ETH_RMII_RXD1 */
+                                <STM32_PINMUX('A', 12, AF11)>; /* ETH_RMII_CRS_DV */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       eth2_rmii_sleep_pins_a: eth2-rmii-sleep-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('F', 7, ANALOG)>, /* ETH_RMII_TXD0 */
+                                <STM32_PINMUX('G', 11, ANALOG)>, /* ETH_RMII_TXD1 */
+                                <STM32_PINMUX('G', 8, ANALOG)>, /* ETH_RMII_ETHCK */
+                                <STM32_PINMUX('F', 6, ANALOG)>, /* ETH_RMII_TX_EN */
+                                <STM32_PINMUX('B', 2, ANALOG)>, /* ETH_MDIO */
+                                <STM32_PINMUX('G', 5, ANALOG)>, /* ETH_MDC */
+                                <STM32_PINMUX('F', 4, ANALOG)>, /* ETH_RMII_RXD0 */
+                                <STM32_PINMUX('E', 2, ANALOG)>, /* ETH_RMII_RXD1 */
+                                <STM32_PINMUX('A', 12, ANALOG)>; /* ETH_RMII_CRS_DV */
+               };
+       };
+
+       /omit-if-no-ref/
+       goodix_pins_a: goodix-0 {
+               /*
+                * touchscreen reset needs to be configured
+                * via the pinctrl not the driver (a pull-down resistor
+                * has been soldered onto the reset line which forces
+                * the touchscreen to reset state).
+                */
+               pins1 {
+                       pinmux = <STM32_PINMUX('H', 2, GPIO)>;
+                       output-high;
+                       bias-pull-up;
+               };
+               /*
+                * Interrupt line must have a pull-down resistor
+                * in order to freeze the i2c address at 0x5D
+                */
+               pins2 {
+                       pinmux = <STM32_PINMUX('F', 5, GPIO)>;
+                       bias-pull-down;
+               };
+       };
+
+       /omit-if-no-ref/
        i2c1_pins_a: i2c1-0 {
                pins {
                        pinmux = <STM32_PINMUX('D', 12, AF5)>, /* I2C1_SCL */
                };
        };
 
+       /omit-if-no-ref/
        i2c1_sleep_pins_a: i2c1-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('D', 12, ANALOG)>, /* I2C1_SCL */
                };
        };
 
+       /omit-if-no-ref/
        i2c5_pins_a: i2c5-0 {
                pins {
                        pinmux = <STM32_PINMUX('D', 1, AF4)>, /* I2C5_SCL */
                };
        };
 
+       /omit-if-no-ref/
        i2c5_sleep_pins_a: i2c5-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('D', 1, ANALOG)>, /* I2C5_SCL */
                };
        };
 
+       /omit-if-no-ref/
+       i2c5_pins_b: i2c5-1 {
+               pins {
+                       pinmux = <STM32_PINMUX('D', 1, AF4)>, /* I2C5_SCL */
+                                <STM32_PINMUX('E', 13, AF4)>; /* I2C5_SDA */
+                       bias-disable;
+                       drive-open-drain;
+                       slew-rate = <0>;
+               };
+       };
+
+       /omit-if-no-ref/
+       i2c5_sleep_pins_b: i2c5-sleep-1 {
+               pins {
+                       pinmux = <STM32_PINMUX('D', 1, ANALOG)>, /* I2C5_SCL */
+                                <STM32_PINMUX('E', 13, ANALOG)>; /* I2C5_SDA */
+               };
+       };
+
+       /omit-if-no-ref/
        ltdc_pins_a: ltdc-0 {
                pins {
                        pinmux = <STM32_PINMUX('D',  9, AF13)>, /* LCD_CLK */
                };
        };
 
+       /omit-if-no-ref/
        ltdc_sleep_pins_a: ltdc-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('D',  9, ANALOG)>, /* LCD_CLK */
                };
        };
 
+       /omit-if-no-ref/
+       m_can1_pins_a: m-can1-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('G', 10, AF9)>; /* CAN1_TX */
+                       slew-rate = <1>;
+                       drive-push-pull;
+                       bias-disable;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('D', 0, AF9)>; /* CAN1_RX */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       m_can1_sleep_pins_a: m_can1-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('G', 10, ANALOG)>, /* CAN1_TX */
+                                <STM32_PINMUX('D', 0, ANALOG)>; /* CAN1_RX */
+               };
+       };
+
+       /omit-if-no-ref/
+       m_can2_pins_a: m-can2-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('G', 0, AF9)>; /* CAN2_TX */
+                       slew-rate = <1>;
+                       drive-push-pull;
+                       bias-disable;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('E', 0, AF9)>; /* CAN2_RX */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       m_can2_sleep_pins_a: m_can2-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('G', 0, ANALOG)>, /* CAN2_TX */
+                                <STM32_PINMUX('E', 0, ANALOG)>; /* CAN2_RX */
+               };
+       };
+
+       /omit-if-no-ref/
        mcp23017_pins_a: mcp23017-0 {
                pins {
                        pinmux = <STM32_PINMUX('G', 12, GPIO)>;
                };
        };
 
+       /omit-if-no-ref/
        pwm3_pins_a: pwm3-0 {
                pins {
                        pinmux = <STM32_PINMUX('B', 1, AF2)>; /* TIM3_CH4 */
                };
        };
 
+       /omit-if-no-ref/
        pwm3_sleep_pins_a: pwm3-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('B', 1, ANALOG)>; /* TIM3_CH4 */
                };
        };
 
+       /omit-if-no-ref/
        pwm4_pins_a: pwm4-0 {
                pins {
                        pinmux = <STM32_PINMUX('D', 13, AF2)>; /* TIM4_CH2 */
                };
        };
 
+       /omit-if-no-ref/
        pwm4_sleep_pins_a: pwm4-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('D', 13, ANALOG)>; /* TIM4_CH2 */
                };
        };
 
+       /omit-if-no-ref/
+       pwm5_pins_a: pwm5-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('H', 12, AF2)>; /* TIM5_CH3 */
+                       bias-pull-down;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+       };
+
+       /omit-if-no-ref/
+       pwm5_sleep_pins_a: pwm5-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('H', 12, ANALOG)>; /* TIM5_CH3 */
+               };
+       };
+
+       /omit-if-no-ref/
        pwm8_pins_a: pwm8-0 {
                pins {
                        pinmux = <STM32_PINMUX('E', 5, AF3)>; /* TIM8_CH3 */
                };
        };
 
+       /omit-if-no-ref/
        pwm8_sleep_pins_a: pwm8-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('E', 5, ANALOG)>; /* TIM8_CH3 */
                };
        };
 
+       /omit-if-no-ref/
+       pwm13_pins_a: pwm13-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('A', 6, AF9)>; /* TIM13_CH1 */
+                       bias-pull-down;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+       };
+
+       /omit-if-no-ref/
+       pwm13_sleep_pins_a: pwm13-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('A', 6, ANALOG)>; /* TIM13_CH1 */
+               };
+       };
+
+       /omit-if-no-ref/
        pwm14_pins_a: pwm14-0 {
                pins {
                        pinmux = <STM32_PINMUX('F', 9, AF9)>; /* TIM14_CH1 */
                };
        };
 
+       /omit-if-no-ref/
        pwm14_sleep_pins_a: pwm14-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('F', 9, ANALOG)>; /* TIM14_CH1 */
                };
        };
 
+       /omit-if-no-ref/
+       qspi_clk_pins_a: qspi-clk-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('F', 10, AF9)>; /* QSPI_CLK */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <3>;
+               };
+       };
+
+       /omit-if-no-ref/
+       qspi_clk_sleep_pins_a: qspi-clk-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('F', 10, ANALOG)>; /* QSPI_CLK */
+               };
+       };
+
+       /omit-if-no-ref/
+       qspi_bk1_pins_a: qspi-bk1-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('F', 8, AF10)>, /* QSPI_BK1_IO0 */
+                                <STM32_PINMUX('F', 9, AF10)>, /* QSPI_BK1_IO1 */
+                                <STM32_PINMUX('D', 11, AF9)>, /* QSPI_BK1_IO2 */
+                                <STM32_PINMUX('H', 7, AF13)>; /* QSPI_BK1_IO3 */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <1>;
+               };
+       };
+
+       /omit-if-no-ref/
+       qspi_bk1_sleep_pins_a: qspi-bk1-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('F', 8, ANALOG)>, /* QSPI_BK1_IO0 */
+                                <STM32_PINMUX('F', 9, ANALOG)>, /* QSPI_BK1_IO1 */
+                                <STM32_PINMUX('D', 11, ANALOG)>, /* QSPI_BK1_IO2 */
+                                <STM32_PINMUX('H', 7, ANALOG)>; /* QSPI_BK1_IO3 */
+               };
+       };
+
+       /omit-if-no-ref/
+       qspi_cs1_pins_a: qspi-cs1-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('B', 2, AF9)>; /* QSPI_BK1_NCS */
+                       bias-pull-up;
+                       drive-push-pull;
+                       slew-rate = <1>;
+               };
+       };
+
+       /omit-if-no-ref/
+       qspi_cs1_sleep_pins_a: qspi-cs1-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('B', 2, ANALOG)>; /* QSPI_BK1_NCS */
+               };
+       };
+
+       /omit-if-no-ref/
+       sai1a_pins_a: sai1a-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('A', 4, AF12)>, /* SAI1_SCK_A */
+                                <STM32_PINMUX('D', 6, AF6)>, /* SAI1_SD_A */
+                                <STM32_PINMUX('E', 11, AF6)>; /* SAI1_FS_A */
+                       slew-rate = <0>;
+                       drive-push-pull;
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       sai1a_sleep_pins_a: sai1a-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('A', 4, ANALOG)>, /* SAI1_SCK_A */
+                                <STM32_PINMUX('D', 6, ANALOG)>, /* SAI1_SD_A */
+                                <STM32_PINMUX('E', 11, ANALOG)>; /* SAI1_FS_A */
+               };
+       };
+
+       /omit-if-no-ref/
+       sai1b_pins_a: sai1b-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('A', 0, AF6)>; /* SAI1_SD_B */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       sai1b_sleep_pins_a: sai1b-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('A', 0, ANALOG)>; /* SAI1_SD_B */
+               };
+       };
+
+       /omit-if-no-ref/
        sdmmc1_b4_pins_a: sdmmc1-b4-0 {
                pins {
                        pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
                };
        };
 
+       /omit-if-no-ref/
        sdmmc1_b4_od_pins_a: sdmmc1-b4-od-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('C', 8, AF12)>, /* SDMMC1_D0 */
                };
        };
 
+       /omit-if-no-ref/
        sdmmc1_b4_sleep_pins_a: sdmmc1-b4-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('C', 8, ANALOG)>, /* SDMMC1_D0 */
                };
        };
 
+       /omit-if-no-ref/
        sdmmc1_clk_pins_a: sdmmc1-clk-0 {
                pins {
                        pinmux = <STM32_PINMUX('C', 12, AF12)>; /* SDMMC1_CK */
                };
        };
 
+       /omit-if-no-ref/
        sdmmc2_b4_pins_a: sdmmc2-b4-0 {
                pins {
                        pinmux = <STM32_PINMUX('B', 14, AF10)>, /* SDMMC2_D0 */
                };
        };
 
+       /omit-if-no-ref/
        sdmmc2_b4_od_pins_a: sdmmc2-b4-od-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('B', 14, AF10)>, /* SDMMC2_D0 */
                };
        };
 
+       /omit-if-no-ref/
        sdmmc2_b4_sleep_pins_a: sdmmc2-b4-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('B', 14, ANALOG)>, /* SDMMC2_D0 */
                };
        };
 
+       /omit-if-no-ref/
        sdmmc2_clk_pins_a: sdmmc2-clk-0 {
                pins {
                        pinmux = <STM32_PINMUX('E', 3, AF10)>; /* SDMMC2_CK */
                };
        };
 
+       /omit-if-no-ref/
+       sdmmc2_d47_pins_a: sdmmc2-d47-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('F', 0, AF10)>, /* SDMMC2_D4 */
+                                <STM32_PINMUX('B', 9, AF10)>, /* SDMMC2_D5 */
+                                <STM32_PINMUX('C', 6, AF10)>, /* SDMMC2_D6 */
+                                <STM32_PINMUX('C', 7, AF10)>; /* SDMMC2_D7 */
+                       slew-rate = <1>;
+                       drive-push-pull;
+                       bias-pull-up;
+               };
+       };
+
+       /omit-if-no-ref/
+       sdmmc2_d47_sleep_pins_a: sdmmc2-d47-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('F', 0, ANALOG)>, /* SDMMC2_D4 */
+                                <STM32_PINMUX('B', 9, ANALOG)>, /* SDMMC2_D5 */
+                                <STM32_PINMUX('C', 6, ANALOG)>, /* SDMMC2_D6 */
+                                <STM32_PINMUX('C', 7, ANALOG)>; /* SDMMC2_D7 */
+               };
+       };
+
+       /omit-if-no-ref/
+       spi2_pins_a: spi2-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('B', 10, AF6)>, /* SPI2_SCK */
+                                <STM32_PINMUX('H', 10, AF6)>; /* SPI2_MOSI */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <1>;
+               };
+
+               pins2 {
+                       pinmux = <STM32_PINMUX('B', 5, AF5)>; /* SPI2_MISO */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       spi2_sleep_pins_a: spi2-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('B', 10, ANALOG)>, /* SPI2_SCK */
+                                <STM32_PINMUX('B', 5, ANALOG)>, /* SPI2_MISO */
+                                <STM32_PINMUX('H', 10, ANALOG)>; /* SPI2_MOSI */
+               };
+       };
+
+       /omit-if-no-ref/
+       spi3_pins_a: spi3-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('H', 13, AF6)>, /* SPI3_SCK */
+                                <STM32_PINMUX('F', 1, AF5)>; /* SPI3_MOSI */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <1>;
+               };
+
+               pins2 {
+                       pinmux = <STM32_PINMUX('D', 4, AF5)>; /* SPI3_MISO */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       spi3_sleep_pins_a: spi3-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('H', 13, ANALOG)>, /* SPI3_SCK */
+                                <STM32_PINMUX('D', 4, ANALOG)>, /* SPI3_MISO */
+                                <STM32_PINMUX('F', 1, ANALOG)>; /* SPI3_MOSI */
+               };
+       };
+
+       /omit-if-no-ref/
        spi5_pins_a: spi5-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('H', 7, AF6)>, /* SPI5_SCK */
                };
        };
 
+       /omit-if-no-ref/
        spi5_sleep_pins_a: spi5-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('H', 7, ANALOG)>, /* SPI5_SCK */
                };
        };
 
+       /omit-if-no-ref/
        stm32g0_intn_pins_a: stm32g0-intn-0 {
                pins {
                        pinmux = <STM32_PINMUX('I', 2, GPIO)>;
                };
        };
 
+       /omit-if-no-ref/
        uart4_pins_a: uart4-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('D', 6, AF8)>; /* UART4_TX */
                };
        };
 
+       /omit-if-no-ref/
        uart4_idle_pins_a: uart4-idle-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('D', 6, ANALOG)>; /* UART4_TX */
                };
        };
 
+       /omit-if-no-ref/
        uart4_sleep_pins_a: uart4-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('D', 6, ANALOG)>, /* UART4_TX */
                };
        };
 
+       /omit-if-no-ref/
+       uart4_pins_b: uart4-1 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('A', 9, AF8)>; /* UART4_TX */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('D', 8, AF8)>; /* UART4_RX */
+                       bias-pull-up;
+               };
+       };
+
+       /omit-if-no-ref/
+       uart4_idle_pins_b: uart4-idle-1 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('A', 9, ANALOG)>; /* UART4_TX */
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('D', 8, AF8)>; /* UART4_RX */
+                       bias-pull-up;
+               };
+       };
+
+       /omit-if-no-ref/
+       uart4_sleep_pins_b: uart4-sleep-1 {
+               pins {
+                       pinmux = <STM32_PINMUX('A', 9, ANALOG)>, /* UART4_TX */
+                                <STM32_PINMUX('D', 8, ANALOG)>; /* UART4_RX */
+               };
+       };
+
+       /omit-if-no-ref/
+       uart7_pins_a: uart7-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('H', 2, AF8)>, /* UART7_TX */
+                                <STM32_PINMUX('B', 12, AF7)>; /* UART7_RTS */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('E', 10, AF7)>, /* UART7_RX */
+                                <STM32_PINMUX('G', 7, AF8)>; /* UART7_CTS_NSS */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       uart7_idle_pins_a: uart7-idle-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('H', 2, ANALOG)>, /* UART7_TX */
+                                <STM32_PINMUX('G', 7, ANALOG)>; /* UART7_CTS_NSS */
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('B', 12, AF7)>; /* UART7_RTS */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+               pins3 {
+                       pinmux = <STM32_PINMUX('E', 10, AF7)>; /* UART7_RX */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       uart7_sleep_pins_a: uart7-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('H', 2, ANALOG)>, /* UART7_TX */
+                                <STM32_PINMUX('B', 12, ANALOG)>, /* UART7_RTS */
+                                <STM32_PINMUX('E', 10, ANALOG)>, /* UART7_RX */
+                                <STM32_PINMUX('G', 7, ANALOG)>; /* UART7_CTS_NSS */
+               };
+       };
+
+       /omit-if-no-ref/
        uart8_pins_a: uart8-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('E', 1, AF8)>; /* UART8_TX */
                };
        };
 
+       /omit-if-no-ref/
        uart8_idle_pins_a: uart8-idle-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('E', 1, ANALOG)>; /* UART8_TX */
                };
        };
 
+       /omit-if-no-ref/
        uart8_sleep_pins_a: uart8-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('E', 1, ANALOG)>, /* UART8_TX */
                };
        };
 
+       /omit-if-no-ref/
        usart1_pins_a: usart1-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('C', 0, AF7)>, /* USART1_TX */
                };
        };
 
+       /omit-if-no-ref/
        usart1_idle_pins_a: usart1-idle-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('C', 0, ANALOG)>, /* USART1_TX */
                };
        };
 
+       /omit-if-no-ref/
        usart1_sleep_pins_a: usart1-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('C', 0, ANALOG)>, /* USART1_TX */
                };
        };
 
+       /omit-if-no-ref/
+       usart1_pins_b: usart1-1 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('C', 0, AF7)>; /* USART1_TX */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('D', 14, AF7)>; /* USART1_RX */
+                       bias-pull-up;
+               };
+       };
+
+       /omit-if-no-ref/
+       usart1_idle_pins_b: usart1-idle-1 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('C', 0, ANALOG)>; /* USART1_TX */
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('D', 14, AF7)>; /* USART1_RX */
+                       bias-pull-up;
+               };
+       };
+
+       /omit-if-no-ref/
+       usart1_sleep_pins_b: usart1-sleep-1 {
+               pins {
+                       pinmux = <STM32_PINMUX('C', 0, ANALOG)>, /* USART1_TX */
+                                <STM32_PINMUX('D', 14, ANALOG)>; /* USART1_RX */
+               };
+       };
+
+       /omit-if-no-ref/
        usart2_pins_a: usart2-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('H', 12, AF1)>, /* USART2_TX */
                };
        };
 
+       /omit-if-no-ref/
        usart2_idle_pins_a: usart2-idle-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('H', 12, ANALOG)>, /* USART2_TX */
                };
        };
 
+       /omit-if-no-ref/
        usart2_sleep_pins_a: usart2-sleep-0 {
                pins {
                        pinmux = <STM32_PINMUX('H', 12, ANALOG)>, /* USART2_TX */
                                 <STM32_PINMUX('E', 11, ANALOG)>; /* USART2_CTS_NSS */
                };
        };
+
+       /omit-if-no-ref/
+       usart2_pins_b: usart2-1 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('F', 11, AF1)>, /* USART2_TX */
+                                <STM32_PINMUX('A', 1, AF7)>; /* USART2_RTS */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('D', 15, AF1)>, /* USART2_RX */
+                                <STM32_PINMUX('E', 15, AF3)>; /* USART2_CTS_NSS */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       usart2_idle_pins_b: usart2-idle-1 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('F', 11, ANALOG)>, /* USART2_TX */
+                                <STM32_PINMUX('E', 15, ANALOG)>; /* USART2_CTS_NSS */
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('A', 1, AF7)>; /* USART2_RTS */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+               pins3 {
+                       pinmux = <STM32_PINMUX('D', 15, AF1)>; /* USART2_RX */
+                       bias-disable;
+               };
+       };
+
+       /omit-if-no-ref/
+       usart2_sleep_pins_b: usart2-sleep-1 {
+               pins {
+                       pinmux = <STM32_PINMUX('F', 11, ANALOG)>, /* USART2_TX */
+                                <STM32_PINMUX('A', 1, ANALOG)>, /* USART2_RTS */
+                                <STM32_PINMUX('D', 15, ANALOG)>, /* USART2_RX */
+                                <STM32_PINMUX('E', 15, ANALOG)>; /* USART2_CTS_NSS */
+               };
+       };
 };
index 6704ceef284d31dfef66c1093eaf338ebcf99427..e1a764d269d27338bc88e942f183a2e03226735c 100644 (file)
                        ts_cal2: calib@5e {
                                reg = <0x5e 0x2>;
                        };
+                       ethernet_mac1_address: mac1@e4 {
+                               reg = <0xe4 0x6>;
+                       };
+                       ethernet_mac2_address: mac2@ea {
+                               reg = <0xea 0x6>;
+                       };
                };
 
                etzpc: bus@5c007000 {
                                status = "disabled";
                        };
 
+                       ethernet1: ethernet@5800a000 {
+                               compatible = "st,stm32mp13-dwmac", "snps,dwmac-4.20a";
+                               reg = <0x5800a000 0x2000>;
+                               reg-names = "stmmaceth";
+                               interrupts-extended = <&intc GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
+                                                     <&exti 68 1>;
+                               interrupt-names = "macirq", "eth_wake_irq";
+                               clock-names = "stmmaceth",
+                                             "mac-clk-tx",
+                                             "mac-clk-rx",
+                                             "ethstp",
+                                             "eth-ck";
+                               clocks = <&rcc ETH1MAC>,
+                                        <&rcc ETH1TX>,
+                                        <&rcc ETH1RX>,
+                                        <&rcc ETH1STP>,
+                                        <&rcc ETH1CK_K>;
+                               st,syscon = <&syscfg 0x4 0xff0000>;
+                               snps,mixed-burst;
+                               snps,pbl = <2>;
+                               snps,axi-config = <&stmmac_axi_config_1>;
+                               snps,tso;
+                               access-controllers = <&etzpc 48>;
+                               status = "disabled";
+
+                               stmmac_axi_config_1: stmmac-axi-config {
+                                       snps,blen = <0 0 0 0 16 8 4>;
+                                       snps,rd_osr_lmt = <0x7>;
+                                       snps,wr_osr_lmt = <0x7>;
+                               };
+                       };
+
                        usbphyc: usbphyc@5a006000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
index 3e394c8e58b9239e83574bd4e254cb3c253dc3e4..73e470019ce426c9cafdbff0b4498c6fb3918f35 100644 (file)
                        };
                };
        };
+
+       ethernet2: ethernet@5800e000 {
+               compatible = "st,stm32mp13-dwmac", "snps,dwmac-4.20a";
+               reg = <0x5800e000 0x2000>;
+               reg-names = "stmmaceth";
+               interrupts-extended = <&intc GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "macirq";
+               clock-names = "stmmaceth",
+                             "mac-clk-tx",
+                             "mac-clk-rx",
+                             "ethstp",
+                             "eth-ck";
+               clocks = <&rcc ETH2MAC>,
+                        <&rcc ETH2TX>,
+                        <&rcc ETH2RX>,
+                        <&rcc ETH2STP>,
+                        <&rcc ETH2CK_K>;
+               st,syscon = <&syscfg 0x4 0xff000000>;
+               snps,mixed-burst;
+               snps,pbl = <2>;
+               snps,axi-config = <&stmmac_axi_config_2>;
+               snps,tso;
+               access-controllers = <&etzpc 49>;
+               status = "disabled";
+
+               stmmac_axi_config_2: stmmac-axi-config {
+                       snps,blen = <0 0 0 0 16 8 4>;
+                       snps,rd_osr_lmt = <0x7>;
+                       snps,wr_osr_lmt = <0x7>;
+               };
+       };
 };
diff --git a/src/arm/st/stm32mp135f-dhcor-dhsbc.dts b/src/arm/st/stm32mp135f-dhcor-dhsbc.dts
new file mode 100644 (file)
index 0000000..bacb70b
--- /dev/null
@@ -0,0 +1,377 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2024 Marek Vasut <marex@denx.de>
+ *
+ * DHCOR STM32MP13 variant:
+ * DHCR-STM32MP135F-C100-R051-EE-F0409-SPI4-RTC-WBT-I-01LG
+ * DHCOR PCB number: 718-100 or newer
+ * DHSBC PCB number: 719-100 or newer
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/regulator/st,stm32mp13-regulator.h>
+#include "stm32mp135.dtsi"
+#include "stm32mp13xf.dtsi"
+#include "stm32mp13xx-dhcor-som.dtsi"
+
+/ {
+       model = "DH electronics STM32MP135F DHCOR DHSBC";
+       compatible = "dh,stm32mp135f-dhcor-dhsbc",
+                    "dh,stm32mp135f-dhcor-som",
+                    "st,stm32mp135";
+
+       aliases {
+               ethernet0 = &ethernet1;
+               ethernet1 = &ethernet2;
+               serial2 = &usart1;
+               serial3 = &usart2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&adc_1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&adc1_pins_a &adc1_usb_cc_pins_b>;
+       vdda-supply = <&vdd_adc>;
+       vref-supply = <&vdd_adc>;
+       status = "okay";
+
+       adc1: adc@0 {
+               status = "okay";
+
+               /*
+                * Type-C USB_PWR_CC1 & USB_PWR_CC2 on in2 & in11.
+                * Use at least 5 * RC time, e.g. 5 * (Rp + Rd) * C:
+                * 5 * (5.1 + 47kOhms) * 5pF => 1.3us.
+                * Use arbitrary margin here (e.g. 5us).
+                *
+                * The pinmux pins must be set as ANALOG, use datasheet
+                * DS13483 Table 7. STM32MP135C/F ball definitions to
+                * find out which 'pin name' maps to which 'additional
+                * functions', which lists the mapping between pin and
+                * ADC channel. In this case, PA5 maps to ADC1_INP2 and
+                * PF13 maps to ADC1_INP11 .
+                */
+               channel@2 {
+                       reg = <2>;
+                       st,min-sample-time-ns = <5000>;
+               };
+
+               channel@11 {
+                       reg = <11>;
+                       st,min-sample-time-ns = <5000>;
+               };
+
+               /* Expansion connector: INP12:pin29 */
+               channel@12 {
+                       reg = <12>;
+                       st,min-sample-time-ns = <5000>;
+               };
+       };
+};
+
+&ethernet1 {
+       phy-handle = <&ethphy1>;
+       phy-mode = "rgmii-id";
+       pinctrl-0 = <&eth1_rgmii_pins_a>;
+       pinctrl-1 = <&eth1_rgmii_sleep_pins_a>;
+       pinctrl-names = "default", "sleep";
+       st,ext-phyclk;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "snps,dwmac-mdio";
+
+               ethphy1: ethernet-phy@1 {
+                       /* RTL8211F */
+                       compatible = "ethernet-phy-id001c.c916";
+                       interrupt-parent = <&gpiog>;
+                       interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
+                       reg = <1>;
+                       reset-assert-us = <15000>;
+                       reset-deassert-us = <55000>;
+                       reset-gpios = <&gpioa 11 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&ethernet2 {
+       phy-handle = <&ethphy2>;
+       phy-mode = "rgmii-id";
+       pinctrl-0 = <&eth2_rgmii_pins_a>;
+       pinctrl-1 = <&eth2_rgmii_sleep_pins_a>;
+       pinctrl-names = "default", "sleep";
+       st,ext-phyclk;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "snps,dwmac-mdio";
+
+               ethphy2: ethernet-phy@1 {
+                       /* RTL8211F */
+                       compatible = "ethernet-phy-id001c.c916";
+                       interrupt-parent = <&gpiog>;
+                       interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
+                       reg = <1>;
+                       reset-assert-us = <15000>;
+                       reset-deassert-us = <55000>;
+                       reset-gpios = <&gpiog 8 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&gpioa {
+       gpio-line-names = "", "", "", "",
+                         "", "DHSBC_USB_PWR_CC1", "", "",
+                         "", "", "", "DHSBC_nETH1_RST",
+                         "", "DHCOR_HW-CODING_0", "", "";
+};
+
+&gpiob {
+       gpio-line-names = "", "", "", "",
+                         "", "", "", "DHCOR_BT_HOST_WAKE",
+                         "", "", "", "",
+                         "", "DHSBC_nTPM_CS", "", "";
+};
+
+&gpioc {
+       gpio-line-names = "", "", "", "DHSBC_USB_5V_MEAS",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "";
+};
+
+&gpiod {
+       gpio-line-names = "", "", "", "",
+                         "", "DHCOR_RAM-CODING_0", "", "",
+                         "", "DHCOR_RAM-CODING_1", "", "",
+                         "", "", "", "";
+};
+
+&gpioe {
+       gpio-line-names = "", "", "", "",
+                         "", "", "", "",
+                         "", "DHSBC_nTPM_RST", "", "",
+                         "DHSBC_nTPM_PIRQ", "", "DHCOR_WL_HOST_WAKE", "";
+};
+
+&gpiof {
+       gpio-line-names = "", "", "DHSBC_USB_PWR_nFLT", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "DHCOR_WL_REG_ON", "DHSBC_USB_PWR_CC2", "", "";
+};
+
+&gpiog {
+       gpio-line-names = "", "", "", "",
+                         "", "", "", "",
+                         "DHSBC_nETH2_RST", "DHCOR_BT_DEV_WAKE", "", "",
+                         "DHSBC_ETH1_INTB", "", "", "DHSBC_ETH2_INTB";
+};
+
+&gpioi {
+       gpio-line-names = "DHCOR_RTC_nINT", "DHCOR_HW-CODING_1",
+                         "DHCOR_BT_REG_ON", "DHCOR_PMIC_nINT",
+                         "DHSBC_BOOT0", "DHSBC_BOOT1",
+                         "DHSBC_BOOT2", "DHSBC_USB-C_DATA_VBUS";
+};
+
+&i2c1 { /* Expansion connector: SDA:pin27 SCL:pin28 */
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&i2c1_pins_a>;
+       pinctrl-1 = <&i2c1_sleep_pins_a>;
+       i2c-scl-rising-time-ns = <96>;
+       i2c-scl-falling-time-ns = <3>;
+       clock-frequency = <400000>;
+       status = "okay";
+       /* spare dmas for other usage */
+       /delete-property/dmas;
+       /delete-property/dma-names;
+};
+
+&i2c5 { /* Expansion connector: SDA:pin3 SCL:pin5 */
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&i2c5_pins_b>;
+       pinctrl-1 = <&i2c5_sleep_pins_b>;
+       i2c-scl-rising-time-ns = <96>;
+       i2c-scl-falling-time-ns = <3>;
+       clock-frequency = <400000>;
+       status = "okay";
+       /* spare dmas for other usage */
+       /delete-property/dmas;
+       /delete-property/dma-names;
+};
+
+&m_can1 { /* Expansion connector: TX:pin16 RX:pin18 */
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&m_can1_pins_a>;
+       pinctrl-1 = <&m_can1_sleep_pins_a>;
+       status = "okay";
+};
+
+&m_can2 { /* Expansion connector: TX:pin22 RX:pin26 */
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&m_can2_pins_a>;
+       pinctrl-1 = <&m_can2_sleep_pins_a>;
+       status = "okay";
+};
+
+&pwr_regulators {
+       vdd-supply = <&vdd>;
+       vdd_3v3_usbfs-supply = <&vdd_usb>;
+       status = "okay";
+};
+
+&sai1 { /* Expansion connector: SCK-A:pin12 FS-A:pin35 SD-A:pin38 SD-B:pin40 */
+       clocks = <&rcc SAI1>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
+       clock-names = "pclk", "x8k", "x11k";
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sai1a_pins_a &sai1b_pins_a>;
+       pinctrl-1 = <&sai1a_sleep_pins_a &sai1b_sleep_pins_a>;
+};
+
+&scmi_voltd {
+       status = "disabled";
+};
+
+&spi2 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&spi2_pins_a>;
+       pinctrl-1 = <&spi2_sleep_pins_a>;
+       cs-gpios = <&gpiob 13 0>;
+       status = "okay";
+
+       st33htph: tpm@0 {
+               compatible = "st,st33htpm-spi", "tcg,tpm_tis-spi";
+               reg = <0>;
+               spi-max-frequency = <24000000>;
+       };
+};
+
+&spi3 { /* Expansion connector: MOSI:pin19 MISO:pin21 SCK:pin22 nCS:pin24 */
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&spi3_pins_a>;
+       pinctrl-1 = <&spi3_sleep_pins_a>;
+       cs-gpios = <&gpiof 3 0>;
+       status = "disabled";
+};
+
+&timers5 { /* Expansion connector: CH3:pin31 */
+       /delete-property/dmas;
+       /delete-property/dma-names;
+       status = "okay";
+
+       pwm {
+               pinctrl-0 = <&pwm5_pins_a>;
+               pinctrl-1 = <&pwm5_sleep_pins_a>;
+               pinctrl-names = "default", "sleep";
+               status = "okay";
+       };
+       timer@4 {
+               status = "okay";
+       };
+};
+
+&timers13 { /* Expansion connector: CH1:pin32 */
+       /delete-property/dmas;
+       /delete-property/dma-names;
+       status = "okay";
+
+       pwm {
+               pinctrl-0 = <&pwm13_pins_a>;
+               pinctrl-1 = <&pwm13_sleep_pins_a>;
+               pinctrl-names = "default", "sleep";
+               status = "okay";
+       };
+       timer@12 {
+               status = "okay";
+       };
+};
+
+&usart1 { /* Expansion connector: RX:pin33 TX:pin37 */
+       pinctrl-names = "default", "sleep", "idle";
+       pinctrl-0 = <&usart1_pins_b>;
+       pinctrl-1 = <&usart1_sleep_pins_b>;
+       pinctrl-2 = <&usart1_idle_pins_b>;
+       status = "okay";
+};
+
+&usart2 { /* Expansion connector: RX:pin10 TX:pin8 RTS:pin11 CTS:pin36 */
+       pinctrl-names = "default", "sleep", "idle";
+       pinctrl-0 = <&usart2_pins_b>;
+       pinctrl-1 = <&usart2_sleep_pins_b>;
+       pinctrl-2 = <&usart2_idle_pins_b>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&usbh_ehci {
+       phys = <&usbphyc_port0>;
+       status = "okay";
+};
+
+&usbh_ohci {
+       phys = <&usbphyc_port0>;
+       status = "okay";
+};
+
+&usbotg_hs {
+       dr_mode = "peripheral";
+       phys = <&usbphyc_port1 0>;
+       phy-names = "usb2-phy";
+       usb33d-supply = <&usb33>;
+       status = "okay";
+};
+
+&usbphyc {
+       status = "okay";
+       vdda1v1-supply = <&reg11>;
+       vdda1v8-supply = <&reg18>;
+};
+
+&usbphyc_port0 {
+       phy-supply = <&vdd_usb>;
+       st,current-boost-microamp = <1000>;
+       st,decrease-hs-slew-rate;
+       st,tune-hs-dc-level = <2>;
+       st,enable-hs-rftime-reduction;
+       st,trim-hs-current = <11>;
+       st,trim-hs-impedance = <2>;
+       st,tune-squelch-level = <1>;
+       st,enable-hs-rx-gain-eq;
+       st,no-hs-ftime-ctrl;
+       st,no-lsfs-sc;
+       connector {
+               compatible = "usb-a-connector";
+               vbus-supply = <&vbus_sw>;
+       };
+};
+
+&usbphyc_port1 {
+       phy-supply = <&vdd_usb>;
+       st,current-boost-microamp = <1000>;
+       st,decrease-hs-slew-rate;
+       st,tune-hs-dc-level = <2>;
+       st,enable-hs-rftime-reduction;
+       st,trim-hs-current = <11>;
+       st,trim-hs-impedance = <2>;
+       st,tune-squelch-level = <1>;
+       st,enable-hs-rx-gain-eq;
+       st,no-hs-ftime-ctrl;
+       st,no-lsfs-sc;
+       connector {
+               compatible = "gpio-usb-b-connector", "usb-b-connector";
+               vbus-gpios = <&gpioi 7 GPIO_ACTIVE_HIGH>;
+               label = "Type-C";
+               self-powered;
+               type = "micro";
+       };
+};
index 567e53ad285fab1a1c508f28a22c1f385bd099da..1af335a39993b176e570e6fdd01ee8d4886a4e7f 100644 (file)
@@ -19,6 +19,7 @@
        compatible = "st,stm32mp135f-dk", "st,stm32mp135";
 
        aliases {
+               ethernet0 = &ethernet1;
                serial0 = &uart4;
                serial1 = &usart1;
                serial2 = &uart8;
                stdout-path = "serial0:115200n8";
        };
 
+       clocks {
+               clk_ext_camera: clk-ext-camera {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <24000000>;
+               };
+
+               clk_mco1: clk-mco1 {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <24000000>;
+               };
+       };
+
        memory@c0000000 {
                device_type = "memory";
                reg = <0xc0000000 0x20000000>;
        status = "okay";
 };
 
+&dcmipp {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&dcmipp_pins_a>;
+       pinctrl-1 = <&dcmipp_sleep_pins_a>;
+       status = "okay";
+
+       port {
+               dcmipp_0: endpoint {
+                       remote-endpoint = <&mipid02_2>;
+                       bus-width = <8>;
+                       hsync-active = <0>;
+                       vsync-active = <0>;
+                       pclk-sample = <0>;
+               };
+       };
+};
+
+&ethernet1 {
+       status = "okay";
+       pinctrl-0 = <&eth1_rmii_pins_a>;
+       pinctrl-1 = <&eth1_rmii_sleep_pins_a>;
+       pinctrl-names = "default", "sleep";
+       phy-mode = "rmii";
+       phy-handle = <&phy0_eth1>;
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "snps,dwmac-mdio";
+
+               phy0_eth1: ethernet-phy@0 {
+                       compatible = "ethernet-phy-id0007.c131";
+                       reg = <0>;
+                       reset-gpios = <&mcp23017 9 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+       };
+};
+
 &i2c1 {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&i2c1_pins_a>;
        /* spare dmas for other usage */
        /delete-property/dmas;
        /delete-property/dma-names;
+
+       stmipi: csi2rx@14 {
+               compatible = "st,st-mipid02";
+               reg = <0x14>;
+               clocks = <&clk_mco1>;
+               clock-names = "xclk";
+               VDDE-supply = <&scmi_v1v8_periph>;
+               VDDIN-supply = <&scmi_v1v8_periph>;
+               reset-gpios = <&mcp23017 2 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
+               status = "okay";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       port@0 {
+                               reg = <0>;
+
+                               mipid02_0: endpoint {
+                                       data-lanes = <1 2>;
+                                       lane-polarities = <0 0 0>;
+                                       remote-endpoint = <&gc2145_ep>;
+                               };
+                       };
+                       port@2 {
+                               reg = <2>;
+
+                               mipid02_2: endpoint {
+                                       bus-width = <8>;
+                                       hsync-active = <0>;
+                                       vsync-active = <0>;
+                                       pclk-sample = <0>;
+                                       remote-endpoint = <&dcmipp_0>;
+                               };
+                       };
+               };
+       };
+
+       gc2145: camera@3c {
+               compatible = "galaxycore,gc2145";
+               reg = <0x3c>;
+               clocks = <&clk_ext_camera>;
+               iovdd-supply = <&scmi_v3v3_sw>;
+               avdd-supply = <&scmi_v3v3_sw>;
+               dvdd-supply = <&scmi_v3v3_sw>;
+               powerdown-gpios = <&mcp23017 3 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
+               reset-gpios = <&mcp23017 4 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>;
+               status = "okay";
+
+               port {
+                       gc2145_ep: endpoint {
+                               remote-endpoint = <&mipid02_0>;
+                               data-lanes = <1 2>;
+                               link-frequencies = /bits/ 64 <120000000 192000000 240000000>;
+                       };
+               };
+       };
+
+       goodix: goodix-ts@5d {
+               compatible = "goodix,gt911";
+               reg = <0x5d>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&goodix_pins_a>;
+               interrupt-parent = <&gpiof>;
+               interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
+               AVDD28-supply = <&scmi_v3v3_sw>;
+               VDDIO-supply = <&scmi_v3v3_sw>;
+               touchscreen-size-x = <480>;
+               touchscreen-size-y = <272>;
+               status = "okay" ;
+       };
 };
 
 &iwdg2 {
        /delete-property/dma-names;
        status = "disabled";
        pwm {
+               /* PWM output on pin 7 of the expansion connector (CN8.7) using TIM3_CH4 func */
                pinctrl-0 = <&pwm3_pins_a>;
                pinctrl-1 = <&pwm3_sleep_pins_a>;
                pinctrl-names = "default", "sleep";
        /delete-property/dma-names;
        status = "disabled";
        pwm {
+               /* PWM output on pin 31 of the expansion connector (CN8.31) using TIM4_CH2 func */
                pinctrl-0 = <&pwm4_pins_a>;
                pinctrl-1 = <&pwm4_sleep_pins_a>;
                pinctrl-names = "default", "sleep";
        /delete-property/dma-names;
        status = "disabled";
        pwm {
+               /* PWM output on pin 32 of the expansion connector (CN8.32) using TIM8_CH3 func */
                pinctrl-0 = <&pwm8_pins_a>;
                pinctrl-1 = <&pwm8_sleep_pins_a>;
                pinctrl-names = "default", "sleep";
 &timers14 {
        status = "disabled";
        pwm {
+               /* PWM output on pin 33 of the expansion connector (CN8.33) using TIM14_CH1 func */
                pinctrl-0 = <&pwm14_pins_a>;
                pinctrl-1 = <&pwm14_sleep_pins_a>;
                pinctrl-names = "default", "sleep";
diff --git a/src/arm/st/stm32mp13xx-dhcor-som.dtsi b/src/arm/st/stm32mp13xx-dhcor-som.dtsi
new file mode 100644 (file)
index 0000000..ddad649
--- /dev/null
@@ -0,0 +1,308 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2024 Marek Vasut <marex@denx.de>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/mfd/st,stpmic1.h>
+#include <dt-bindings/regulator/st,stm32mp13-regulator.h>
+#include "stm32mp13-pinctrl.dtsi"
+
+/ {
+       model = "DH electronics STM32MP13xx DHCOR SoM";
+       compatible = "dh,stm32mp131a-dhcor-som",
+                    "st,stm32mp131";
+
+       aliases {
+               mmc0 = &sdmmc2;
+               mmc1 = &sdmmc1;
+               serial0 = &uart4;
+               serial1 = &uart7;
+               rtc0 = &rv3032;
+               spi0 = &qspi;
+       };
+
+       memory@c0000000 {
+               device_type = "memory";
+               reg = <0xc0000000 0x20000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               optee@dd000000 {
+                       reg = <0xdd000000 0x3000000>;
+                       no-map;
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpiof 12 GPIO_ACTIVE_LOW>;
+       };
+
+       vin: vin {
+               compatible = "regulator-fixed";
+               regulator-name = "vin";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+};
+
+&i2c3 {
+       i2c-scl-rising-time-ns = <96>;
+       i2c-scl-falling-time-ns = <3>;
+       clock-frequency = <400000>;
+       status = "okay";
+       /* spare dmas for other usage */
+       /delete-property/dmas;
+       /delete-property/dma-names;
+
+       pmic: stpmic@33 {
+               compatible = "st,stpmic1";
+               reg = <0x33>;
+               interrupts-extended = <&gpioi 3 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               status = "okay";
+
+               regulators {
+                       compatible = "st,stpmic1-regulators";
+
+                       ldo1-supply = <&vin>;
+                       ldo2-supply = <&vin>;
+                       ldo3-supply = <&vin>;
+                       ldo4-supply = <&vin>;
+                       ldo5-supply = <&vin>;
+                       ldo6-supply = <&vin>;
+                       pwr_sw1-supply = <&bst_out>;
+                       pwr_sw2-supply = <&bst_out>;
+
+                       vddcpu: buck1 { /* VDD_CPU_1V2 */
+                               regulator-name = "vddcpu";
+                               regulator-min-microvolt = <1250000>;
+                               regulator-max-microvolt = <1250000>;
+                               regulator-always-on;
+                               regulator-initial-mode = <0>;
+                               regulator-over-current-protection;
+                       };
+
+                       vdd_ddr: buck2 { /* VDD_DDR_1V35 */
+                               regulator-name = "vdd_ddr";
+                               regulator-min-microvolt = <1350000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-always-on;
+                               regulator-initial-mode = <0>;
+                               regulator-over-current-protection;
+                       };
+
+                       vdd: buck3 { /* VDD_3V3_1V8 */
+                               regulator-name = "vdd";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-initial-mode = <0>;
+                               regulator-over-current-protection;
+                       };
+
+                       vddcore: buck4 { /* VDD_CORE_1V2 */
+                               regulator-name = "vddcore";
+                               regulator-min-microvolt = <1250000>;
+                               regulator-max-microvolt = <1250000>;
+                               regulator-always-on;
+                               regulator-initial-mode = <0>;
+                               regulator-over-current-protection;
+                       };
+
+                       vdd_adc: ldo1 { /* VDD_ADC_1V8 */
+                               regulator-name = "vdd_adc";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               interrupts = <IT_CURLIM_LDO1 0>;
+                       };
+
+                       vdd_ldo2: ldo2 { /* LDO2_OUT_1V8 */
+                               regulator-name = "vdd_ldo2";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               interrupts = <IT_CURLIM_LDO2 0>;
+                       };
+
+                       vdd_ldo3: ldo3 { /* LDO3_OUT */
+                               regulator-name = "vdd_ldo3";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               interrupts = <IT_CURLIM_LDO3 0>;
+                       };
+
+                       vdd_usb: ldo4 { /* VDD_USB_3V3 */
+                               regulator-name = "vdd_usb";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               interrupts = <IT_CURLIM_LDO4 0>;
+                       };
+
+                       vdd_sd: ldo5 { /* VDD_SD_3V3_1V8 */
+                               regulator-name = "vdd_sd";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               interrupts = <IT_CURLIM_LDO5 0>;
+                       };
+
+                       vdd_sd2: ldo6 { /* VDD_SD2_3V3_1V8 */
+                               regulator-name = "vdd_sd2";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               interrupts = <IT_CURLIM_LDO6 0>;
+                       };
+
+                       vref_ddr: vref_ddr { /* VREF_DDR_0V675 */
+                               regulator-name = "vref_ddr";
+                               regulator-always-on;
+                       };
+
+                       bst_out: boost { /* BST_OUT_5V2 */
+                               regulator-name = "bst_out";
+                       };
+
+                       vbus_otg: pwr_sw1 {
+                               regulator-name = "vbus_otg";
+                               interrupts = <IT_OCP_OTG 0>;
+                       };
+
+                       vbus_sw: pwr_sw2 {
+                               regulator-name = "vbus_sw";
+                               interrupts = <IT_OCP_SWOUT 0>;
+                               regulator-active-discharge = <1>;
+                       };
+               };
+
+               onkey {
+                       compatible = "st,stpmic1-onkey";
+                       interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 1>;
+                       interrupt-names = "onkey-falling", "onkey-rising";
+                       status = "okay";
+               };
+
+               watchdog {
+                       compatible = "st,stpmic1-wdt";
+                       status = "disabled";
+               };
+       };
+
+       eeprom0: eeprom@50 {
+               compatible = "atmel,24c256";    /* ST M24256 */
+               reg = <0x50>;
+               pagesize = <64>;
+       };
+
+       rv3032: rtc@51 {
+               compatible = "microcrystal,rv3032";
+               reg = <0x51>;
+               interrupts-extended = <&gpioi 0 IRQ_TYPE_EDGE_FALLING>;
+       };
+};
+
+&iwdg2 {
+       timeout-sec = <32>;
+       status = "okay";
+};
+
+&qspi {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&qspi_clk_pins_a
+                    &qspi_bk1_pins_a
+                    &qspi_cs1_pins_a>;
+       pinctrl-1 = <&qspi_clk_sleep_pins_a
+                    &qspi_bk1_sleep_pins_a
+                    &qspi_cs1_sleep_pins_a>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       flash0: flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-rx-bus-width = <4>;
+               spi-max-frequency = <108000000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+};
+
+/* Console UART */
+&uart4 {
+       pinctrl-names = "default", "sleep", "idle";
+       pinctrl-0 = <&uart4_pins_b>;
+       pinctrl-1 = <&uart4_sleep_pins_b>;
+       pinctrl-2 = <&uart4_idle_pins_b>;
+       /delete-property/dmas;
+       /delete-property/dma-names;
+       status = "okay";
+};
+
+/* Bluetooth */
+&uart7 {
+       pinctrl-names = "default", "sleep", "idle";
+       pinctrl-0 = <&uart7_pins_a>;
+       pinctrl-1 = <&uart7_sleep_pins_a>;
+       pinctrl-2 = <&uart7_idle_pins_a>;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "infineon,cyw43439-bt", "brcm,bcm4329-bt";
+               max-speed = <3000000>;
+               device-wakeup-gpios = <&gpiog 9 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&gpioi 2 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+/* SDIO WiFi */
+&sdmmc1 {
+       pinctrl-names = "default", "opendrain", "sleep";
+       pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_clk_pins_a>;
+       pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_clk_pins_a>;
+       pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
+       bus-width = <4>;
+       cap-power-off-card;
+       keep-power-in-suspend;
+       non-removable;
+       st,neg-edge;
+       vmmc-supply = <&vdd>;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       status = "okay";
+
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       brcmf: bcrmf@1 {        /* muRata 1YN */
+               reg = <1>;
+               compatible = "infineon,cyw43439-fmac", "brcm,bcm4329-fmac";
+               interrupt-parent = <&gpioe>;
+               interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "host-wake";
+       };
+};
+
+/* eMMC */
+&sdmmc2 {
+       pinctrl-names = "default", "opendrain", "sleep";
+       pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a &sdmmc2_clk_pins_a>;
+       pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a &sdmmc2_clk_pins_a>;
+       pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
+       bus-width = <8>;
+       mmc-ddr-3_3v;
+       no-sd;
+       no-sdio;
+       non-removable;
+       st,neg-edge;
+       vmmc-supply = <&vdd>;
+       vqmmc-supply = <&vdd>;
+       status = "okay";
+};
index 90c5c72c87ab7e7c7ac74b297922f080cb5ab7c1..4f878ec102c1f681577fe19d766d9dbf4bce1988 100644 (file)
@@ -50,6 +50,7 @@
                             <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
                interrupt-parent = <&intc>;
+               arm,no-tick-in-suspend;
        };
 
        clocks {
index 306e1bc2a51467addd2a6378f19fda7b14e9f872..847b360f02fccfc3550f1e643a2853705ee5a57a 100644 (file)
        reset-names = "mcu_rst", "hold_boot";
 };
 
+&optee {
+       interrupt-parent = <&intc>;
+       interrupts = <GIC_PPI 15 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+};
+
 &rcc {
        compatible = "st,stm32mp1-rcc-secure", "syscon";
        clock-names = "hse", "hsi", "csi", "lse", "lsi";
index 956da5f26c1c6736ef76f6f19ebb89ee3299b648..43280289759d020f3f6f4629fcd9b7d76a23acf3 100644 (file)
        reset-names = "mcu_rst", "hold_boot";
 };
 
+&optee {
+       interrupt-parent = <&intc>;
+       interrupts = <GIC_PPI 15 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+};
+
 &rcc {
        compatible = "st,stm32mp1-rcc-secure", "syscon";
        clock-names = "hse", "hsi", "csi", "lse", "lsi";
index 8e4b0db198c2213f6142917985429ddc62b16ab7..6f27d794d2702c5d87eb5147fd52348327a006bc 100644 (file)
        reset-names = "mcu_rst", "hold_boot";
 };
 
+&optee {
+       interrupt-parent = <&intc>;
+       interrupts = <GIC_PPI 15 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+};
+
 &rcc {
        compatible = "st,stm32mp1-rcc-secure", "syscon";
        clock-names = "hse", "hsi", "csi", "lse", "lsi";
index 72b9cab2d990bcbe1e845784b28fdc0a956e5c54..6ae391bffee53a3839429f2423a1aa36a65daf3c 100644 (file)
        reset-names = "mcu_rst", "hold_boot";
 };
 
+&optee {
+       interrupt-parent = <&intc>;
+       interrupts = <GIC_PPI 15 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+};
+
 &rcc {
        compatible = "st,stm32mp1-rcc-secure", "syscon";
        clock-names = "hse", "hsi", "csi", "lse", "lsi";
index 527c33be66cc003d27d83180a3650dbd27b9009a..36e6055b566501e739385ae8ad7775d544b7918b 100644 (file)
        status = "okay";
 };
 
-&pwr_regulators {
-       vdd-supply = <&vdd>;
-       vdd_3v3_usbfs-supply = <&vdd_usb>;
-};
-
 &rtc {
        status = "okay";
 };
 &usbphyc {
        status = "okay";
 };
-
-&usbphyc_port0 {
-       phy-supply = <&vdd_usb>;
-};
-
-&usbphyc_port1 {
-       phy-supply = <&vdd_usb>;
-};
index cfaf8adde319fc2bc536a6bc17270d0d074456b8..c87fd96cbd91897bb724a235689e425f7dbf39f6 100644 (file)
@@ -379,11 +379,6 @@ baseboard_eeprom: &sip_eeprom {
        };
 };
 
-&pwr_regulators {
-       vdd-supply = <&vdd>;
-       vdd_3v3_usbfs-supply = <&vdd_usb>;
-};
-
 &rtc {
        status = "okay";
 };
@@ -590,14 +585,6 @@ baseboard_eeprom: &sip_eeprom {
        status = "okay";
 };
 
-&usbphyc_port0 {
-       phy-supply = <&vdd_usb>;
-};
-
-&usbphyc_port1 {
-       phy-supply = <&vdd_usb>;
-};
-
 &vrefbuf {
        regulator-min-microvolt = <2500000>;
        regulator-max-microvolt = <2500000>;
index aeb71c41a734a825b1806d8949db4f5a5b1c7187..2022a1fa31cabf0c4ae39ee425d451cb6636182b 100644 (file)
 &rng1 {
        status = "okay";
 };
+
+&pwr_regulators {
+       vdd-supply = <&vdd>;
+       vdd_3v3_usbfs-supply = <&vdd_usb>;
+};
+
+&usbphyc_port0 {
+       phy-supply = <&vdd_usb>;
+};
+
+&usbphyc_port1 {
+       phy-supply = <&vdd_usb>;
+};
index 6c5936278e75a9893c9cc31a12eb6f97691104f0..1f5cd35f8b741b4d6423d55b679a2b01fbab2f49 100644 (file)
@@ -65,7 +65,7 @@
 
                display-timings {
                        native-mode = <&timing0>;
-                       timing0: 480x272 {
+                       timing0: timing-480x272 {
                                clock-frequency = <9000000>;
                                hactive = <480>;
                                vactive = <272>;
index 56e5d954a4900306e060a38542ca0b74bfa1d821..4b070e634b28100bf36201b2de3a549d6cd0f69d 100644 (file)
@@ -74,7 +74,7 @@
                pinctrl-1 = <&lcd_pins_sleep>;
 
                display-timings {
-                       320x240 {
+                       timing-320x240 {
                                hactive         = <320>;
                                vactive         = <240>;
                                hback-porch     = <68>;
index f38f5bff2b9697b5b2575b8137e635110719b7e0..17574d0d05259ebb785e554300adb9b9abb724b9 100644 (file)
@@ -67,7 +67,7 @@
                };
 
                display-timings {
-                       240x320p16 {
+                       timing-240x320p16 {
                                clock-frequency = <6500000>;
                                hactive = <240>;
                                vactive = <320>;
index d5a4a21889d1c1763085a2a4530df7137a9aac63..e7d561a527fdd9eeb15237ddee4c8db1dfd48edd 100644 (file)
        };
        display-timings {
                native-mode = <&timing0>;
-               timing0: 480x272 {
+               timing0: timing-480x272 {
                        clock-frequency = <18400000>;
                        hactive = <480>;
                        vactive = <272>;
index eb1ec85aba28bade102b2ed88ff179c41e3583ec..e6a18954e449e4b665bfb9ad8c67761347a93204 100644 (file)
 
        extcon_usb1: extcon_usb1 {
                compatible = "linux,extcon-usb-gpio";
-               ti,enable-id-detection;
                id-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
        };
 };
index 07c5b963af78ab2347d2e8bb59b3c80937a8e396..4bde3342bb959794c39b202e01ad14d48c554d70 100644 (file)
 
                mount-matrix =   "-1",  "0",  "0",
                                  "0",  "1",  "0",
-                                 "0",  "0",  "1";
+                                 "0",  "0",  "-1";
        };
 
        cam1: camera@3e {
index e9f55bd30bd443c764cf8d99171817b232d892f9..38a2da5e2c5d64477f04e1da9d98cb97be0d95e4 100644 (file)
@@ -16,7 +16,7 @@
        bits-per-pixel = <16>;
        display-timings {
                native-mode = <&timing0>;
-               timing0: 800x480 {
+               timing0: timing-800x480 {
                        clock-frequency = <0>; /* unused but required */
                        hactive = <800>;
                        vactive = <480>;
index b7e09eff5bb23e112c3fc29c530013559013bd35..f23cb5ee11ae63222276c8ac178c52a6a3872c0c 100644 (file)
                        interrupts = <43>;
                };
 
-               uhci@d8007b00 {
+               usb@d8007b00 {
                        compatible = "platform-uhci";
                        reg = <0xd8007b00 0x200>;
                        interrupts = <43>;
index 2d77c087676eb14065e05aa0a4f5b321656bd99e..8ce9e2ef0a81097e7143a5392ee5b42bf8028ec1 100644 (file)
@@ -16,7 +16,7 @@
        bits-per-pixel = <32>;
        display-timings {
                native-mode = <&timing0>;
-               timing0: 800x480 {
+               timing0: timing-800x480 {
                        clock-frequency = <0>; /* unused but required */
                        hactive = <800>;
                        vactive = <480>;
index 168cd12b07bc9d71374e54dcd5f448d0ce88334e..d9e1280372c55c5080d242014c2392eaf4335d11 100644 (file)
                        interrupts = <1>;
                };
 
-               uhci@d8007300 {
+               usb@d8007300 {
                        compatible = "platform-uhci";
                        reg = <0xd8007300 0x200>;
                        interrupts = <0>;
index f6a42149a0a0cf90a6f0f3581917448ddffca2e9..7977b6c1e8ebf215df210dee703e470b9159d329 100644 (file)
@@ -17,7 +17,7 @@
 
        display-timings {
                native-mode = <&timing0>;
-               timing0: 800x480 {
+               timing0: timing-800x480 {
                        clock-frequency = <0>; /* unused but required */
                        hactive = <800>;
                        vactive = <480>;
index bc057b6f7d1616f9a63a88b65d17737f58157349..35d12d77efc0f91e3735b98b8ec1f25a62c9c22e 100644 (file)
                        interrupts = <43>;
                };
 
-               uhci@d8007b00 {
+               usb@d8007b00 {
                        compatible = "platform-uhci";
                        reg = <0xd8007b00 0x200>;
                        interrupts = <43>;
index 33aeb37491f416bc9b57acec8661449d1b72ab16..b292f85d4e69b43d6eeb4525113265722a7b90af 100644 (file)
                        interrupts = <26>;
                };
 
-               uhci@d8007b00 {
+               usb@d8007b00 {
                        compatible = "platform-uhci";
                        reg = <0xd8007b00 0x200>;
                        interrupts = <26>;
                };
 
-               uhci@d8008d00 {
+               usb@d8008d00 {
                        compatible = "platform-uhci";
                        reg = <0xd8008d00 0x200>;
                        interrupts = <26>;
index c7a6fe0ce48f726407d46ba5b6b024451b8049d8..5d409323b10cb94a5694722de1e31cff5be390ce 100644 (file)
@@ -28,7 +28,7 @@
        bits-per-pixel = <16>;
        display-timings {
                native-mode = <&timing0>;
-               timing0: 800x480 {
+               timing0: timing-800x480 {
                        clock-frequency = <0>; /* unused but required */
                        hactive = <800>;
                        vactive = <480>;
index 65c9271050e60649383afdbe7dc8e0a468fce0c1..c61717ebb4f1f3523733241c4df11f741ad4ae14 100644 (file)
                        interrupts = <26>;
                };
 
-               uhci@d8007b00 {
+               usb@d8007b00 {
                        compatible = "platform-uhci";
                        reg = <0xd8007b00 0x200>;
                        interrupts = <26>;
                };
 
-               uhci@d8008d00 {
+               usb@d8008d00 {
                        compatible = "platform-uhci";
                        reg = <0xd8008d00 0x200>;
                        interrupts = <26>;
diff --git a/src/arm64/airoha/en7581-evb.dts b/src/arm64/airoha/en7581-evb.dts
new file mode 100644 (file)
index 0000000..cf58e43
--- /dev/null
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/dts-v1/;
+
+/* Bootloader installs ATF here */
+/memreserve/ 0x80000000 0x200000;
+
+#include "en7581.dtsi"
+
+/ {
+       model = "Airoha EN7581 Evaluation Board";
+       compatible = "airoha,en7581-evb", "airoha,en7581";
+
+       aliases {
+               serial0 = &uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+               linux,usable-memory-range = <0x0 0x80200000 0x0 0x1fe00000>;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0x2 0x00000000>;
+       };
+};
diff --git a/src/arm64/airoha/en7581.dtsi b/src/arm64/airoha/en7581.dtsi
new file mode 100644 (file)
index 0000000..55eb176
--- /dev/null
@@ -0,0 +1,154 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               npu-binary@84000000 {
+                       no-map;
+                       reg = <0x0 0x84000000 0x0 0xa00000>;
+               };
+
+               npu-flag@84b0000 {
+                       no-map;
+                       reg = <0x0 0x84b00000 0x0 0x100000>;
+               };
+
+               npu-pkt@85000000 {
+                       no-map;
+                       reg = <0x0 0x85000000 0x0 0x1a00000>;
+               };
+
+               npu-phyaddr@86b00000 {
+                       no-map;
+                       reg = <0x0 0x86b00000 0x0 0x100000>;
+               };
+
+               npu-rxdesc@86d00000 {
+                       no-map;
+                       reg = <0x0 0x86d00000 0x0 0x100000>;
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&cpu0>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu1>;
+                               };
+
+                               core2 {
+                                       cpu = <&cpu2>;
+                               };
+
+                               core3 {
+                                       cpu = <&cpu3>;
+                               };
+                       };
+               };
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x0>;
+                       enable-method = "psci";
+                       clock-frequency = <80000000>;
+                       next-level-cache = <&l2>;
+               };
+
+               cpu1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x1>;
+                       enable-method = "psci";
+                       clock-frequency = <80000000>;
+                       next-level-cache = <&l2>;
+               };
+
+               cpu2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x2>;
+                       enable-method = "psci";
+                       clock-frequency = <80000000>;
+                       next-level-cache = <&l2>;
+               };
+
+               cpu3: cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x3>;
+                       enable-method = "psci";
+                       clock-frequency = <80000000>;
+                       next-level-cache = <&l2>;
+               };
+
+               l2: l2-cache {
+                       compatible = "cache";
+                       cache-size = <0x80000>;
+                       cache-line-size = <64>;
+                       cache-level = <2>;
+                       cache-unified;
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupt-parent = <&gic>;
+               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>;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               gic: interrupt-controller@9000000 {
+                       compatible = "arm,gic-v3";
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x0 0x09000000 0x0 0x20000>,
+                             <0x0 0x09080000 0x0 0x80000>,
+                             <0x0 0x09400000 0x0 0x2000>,
+                             <0x0 0x09500000 0x0 0x2000>,
+                             <0x0 0x09600000 0x0 0x20000>;
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
+               };
+
+               uart1: serial@1fbf0000 {
+                       compatible = "ns16550";
+                       reg = <0x0 0x1fbf0000 0x0 0x30>;
+                       reg-io-width = <4>;
+                       reg-shift = <2>;
+                       interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-frequency = <1843200>;
+               };
+       };
+};
index 596a25907432bc0d3223402f5e3b0d7c2d47750d..709fe650a360dccc3c5f69b359494f7b43eb480d 100644 (file)
@@ -5,7 +5,7 @@
 #include "sun50i-a64-sopine-baseboard.dts"
 
 / {
-       model = "Pine64 LTS";
+       model = "Pine64 PINE A64 LTS";
        compatible = "pine64,pine64-lts", "allwinner,sun50i-r18",
                     "allwinner,sun50i-a64";
 
index b54099b654c8a676998712adfa495eb5866baf40..026d843cd7e05df534b501a052606af8bfeec1cf 100644 (file)
@@ -4,7 +4,7 @@
 #include "sun50i-a64-pine64.dts"
 
 / {
-       model = "Pine64+";
+       model = "Pine64 PINE A64+";
        compatible = "pine64,pine64-plus", "allwinner,sun50i-a64";
 
        /* TODO: Camera, touchscreen, etc. */
index 2accb5ddf783359e3de69d155edb0c4cf479e66a..09e71fd60785735edc71144dd4348da97a9b3b87 100644 (file)
@@ -9,7 +9,7 @@
 #include <dt-bindings/gpio/gpio.h>
 
 / {
-       model = "Pine64";
+       model = "Pine64 PINE A64";
        compatible = "pine64,pine64", "allwinner,sun50i-a64";
 
        aliases {
index 6c65d5bc16ba942740f5d3e8988c75b7195f6f55..379c2c8466f504cc8ad91cc78f65f636750967c1 100644 (file)
@@ -13,7 +13,7 @@
 #include <dt-bindings/pwm/pwm.h>
 
 / {
-       model = "Pinebook";
+       model = "Pine64 Pinebook";
        compatible = "pine64,pinebook", "allwinner,sun50i-a64";
        chassis-type = "laptop";
 
index 6265360ce623fa3e505038da66b33b9ea544ce6e..86cc85eb3d4846d0a0a113f6b2259f82e3bbe2c7 100644 (file)
@@ -9,7 +9,7 @@
 #include "sun50i-a64-pinetab.dts"
 
 / {
-       model = "PineTab, Early Adopter's version";
+       model = "Pine64 PineTab Early Adopter";
        compatible = "pine64,pinetab-early-adopter", "allwinner,sun50i-a64";
 };
 
index c6007df99938bac3ebac7e5dd89b3d4365942366..f5fb1ee32dad977d0876350821618286b27e2f5a 100644 (file)
@@ -14,7 +14,7 @@
 #include <dt-bindings/pwm/pwm.h>
 
 / {
-       model = "PineTab, Development Sample";
+       model = "Pine64 PineTab Developer Sample";
        compatible = "pine64,pinetab", "allwinner,sun50i-a64";
        chassis-type = "tablet";
 
index 5e66ce1a334fb2831071979390c4668ad61df955..be2347c8f26769662c56223dce949442f49252b7 100644 (file)
@@ -8,7 +8,7 @@
 #include "sun50i-a64-sopine.dtsi"
 
 / {
-       model = "SoPine with baseboard";
+       model = "Pine64 SOPINE on Baseboard carrier board";
        compatible = "pine64,sopine-baseboard", "pine64,sopine",
                     "allwinner,sun50i-a64";
 
index ce4aa44c33534284cd458ec20424707b4c86018d..e868ca5ae753a926e102eff414a63e825296713a 100644 (file)
                        device_type = "cpu";
                        reg = <0>;
                        enable-method = "psci";
-                       next-level-cache = <&L2>;
                        clocks = <&ccu CLK_CPUX>;
                        clock-names = "cpu";
                        #cooling-cells = <2>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu1: cpu@1 {
                        device_type = "cpu";
                        reg = <1>;
                        enable-method = "psci";
-                       next-level-cache = <&L2>;
                        clocks = <&ccu CLK_CPUX>;
                        clock-names = "cpu";
                        #cooling-cells = <2>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu2: cpu@2 {
                        device_type = "cpu";
                        reg = <2>;
                        enable-method = "psci";
-                       next-level-cache = <&L2>;
                        clocks = <&ccu CLK_CPUX>;
                        clock-names = "cpu";
                        #cooling-cells = <2>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu3: cpu@3 {
                        device_type = "cpu";
                        reg = <3>;
                        enable-method = "psci";
-                       next-level-cache = <&L2>;
                        clocks = <&ccu CLK_CPUX>;
                        clock-names = "cpu";
                        #cooling-cells = <2>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
-               L2: l2-cache {
+               l2_cache: l2-cache {
                        compatible = "cache";
                        cache-level = <2>;
                        cache-unified;
+                       cache-size = <0x80000>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
                };
        };
 
index 66fe03910d5e6b482e1a1a0fca3fa62050eaee83..066fbeff8bfac2b40df9dc3ed78a98eeed008d27 100644 (file)
@@ -8,7 +8,7 @@
 /delete-node/ &reg_gmac_3v3;
 
 / {
-       model = "Pine H64 model B";
+       model = "Pine64 PINE H64 Model B";
        compatible = "pine64,pine-h64-model-b", "allwinner,sun50i-h6";
 
        wifi_pwrseq: pwrseq {
index 3910393be1f96c9f869b61fe3d16cecd8eeff0a9..c8b27555287257397149129425329d96b975076e 100644 (file)
@@ -9,7 +9,7 @@
 #include <dt-bindings/gpio/gpio.h>
 
 / {
-       model = "Pine H64 model A";
+       model = "Pine64 PINE H64 Model A";
        compatible = "pine64,pine-h64", "allwinner,sun50i-h6";
 
        aliases {
index 8a8591c4e7dd6cf6aaca502ddb8c72fba110f513..2301c59b41b1880c3712fd17d12904dcd484a5c2 100644 (file)
                        clocks = <&ccu CLK_CPUX>;
                        clock-latency-ns = <244144>; /* 8 32k periods */
                        #cooling-cells = <2>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu1: cpu@1 {
                        clocks = <&ccu CLK_CPUX>;
                        clock-latency-ns = <244144>; /* 8 32k periods */
                        #cooling-cells = <2>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu2: cpu@2 {
                        clocks = <&ccu CLK_CPUX>;
                        clock-latency-ns = <244144>; /* 8 32k periods */
                        #cooling-cells = <2>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu3: cpu@3 {
                        clocks = <&ccu CLK_CPUX>;
                        clock-latency-ns = <244144>; /* 8 32k periods */
                        #cooling-cells = <2>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
+               };
+
+               l2_cache: l2-cache {
+                       compatible = "cache";
+                       cache-level = <2>;
+                       cache-unified;
+                       cache-size = <0x80000>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
                };
        };
 
index aca22a7f0191c27614ea6372cd636572837a204a..dd10aaf472b66883a10994b00ded6f1fdd4a65b5 100644 (file)
@@ -11,7 +11,7 @@
                        opp-hz = /bits/ 64 <480000000>;
                        opp-microvolt = <900000>;
                        clock-latency-ns = <244144>; /* 8 32k periods */
-                       opp-supported-hw = <0x1f>;
+                       opp-supported-hw = <0x3f>;
                };
 
                opp-600000000 {
@@ -25,7 +25,7 @@
                        opp-hz = /bits/ 64 <720000000>;
                        opp-microvolt = <900000>;
                        clock-latency-ns = <244144>; /* 8 32k periods */
-                       opp-supported-hw = <0x0d>;
+                       opp-supported-hw = <0x2d>;
                };
 
                opp-792000000 {
                        opp-microvolt-speed2 = <950000>;
                        opp-microvolt-speed3 = <950000>;
                        opp-microvolt-speed4 = <1020000>;
+                       opp-microvolt-speed5 = <900000>;
                        clock-latency-ns = <244144>; /* 8 32k periods */
-                       opp-supported-hw = <0x1f>;
+                       opp-supported-hw = <0x3f>;
+               };
+
+               opp-1032000000 {
+                       opp-hz = /bits/ 64 <1032000000>;
+                       opp-microvolt = <900000>;
+                       clock-latency-ns = <244144>; /* 8 32k periods */
+                       opp-supported-hw = <0x20>;
                };
 
                opp-1104000000 {
@@ -59,8 +67,9 @@
                        opp-microvolt-speed0 = <1000000>;
                        opp-microvolt-speed2 = <1000000>;
                        opp-microvolt-speed3 = <1000000>;
+                       opp-microvolt-speed5 = <950000>;
                        clock-latency-ns = <244144>; /* 8 32k periods */
-                       opp-supported-hw = <0x0d>;
+                       opp-supported-hw = <0x2d>;
                };
 
                opp-1200000000 {
@@ -70,8 +79,9 @@
                        opp-microvolt-speed2 = <1050000>;
                        opp-microvolt-speed3 = <1050000>;
                        opp-microvolt-speed4 = <1100000>;
+                       opp-microvolt-speed5 = <1020000>;
                        clock-latency-ns = <244144>; /* 8 32k periods */
-                       opp-supported-hw = <0x1f>;
+                       opp-supported-hw = <0x3f>;
                };
 
                opp-1320000000 {
                        opp-hz = /bits/ 64 <1416000000>;
                        opp-microvolt = <1100000>;
                        clock-latency-ns = <244144>; /* 8 32k periods */
-                       opp-supported-hw = <0x0d>;
+                       opp-supported-hw = <0x2d>;
                };
 
                opp-1512000000 {
                        opp-hz = /bits/ 64 <1512000000>;
                        opp-microvolt-speed1 = <1100000>;
                        opp-microvolt-speed3 = <1100000>;
+                       opp-microvolt-speed5 = <1160000>;
                        clock-latency-ns = <244144>; /* 8 32k periods */
-                       opp-supported-hw = <0x0a>;
+                       opp-supported-hw = <0x2a>;
                };
        };
 };
index 921d5f61d8d6a74970a0cabeb7c7de35bd7b4351..b29ce7321317b647733cb3db108a4b935a5dda9a 100644 (file)
                        enable-method = "psci";
                        clocks = <&ccu CLK_CPUX>;
                        #cooling-cells = <2>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu1: cpu@1 {
                        enable-method = "psci";
                        clocks = <&ccu CLK_CPUX>;
                        #cooling-cells = <2>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu2: cpu@2 {
                        enable-method = "psci";
                        clocks = <&ccu CLK_CPUX>;
                        #cooling-cells = <2>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu3: cpu@3 {
                        enable-method = "psci";
                        clocks = <&ccu CLK_CPUX>;
                        #cooling-cells = <2>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
+               };
+
+               l2_cache: l2-cache {
+                       compatible = "cache";
+                       cache-level = <2>;
+                       cache-unified;
+                       cache-size = <0x40000>;
+                       cache-line-size = <64>;
+                       cache-sets = <256>;
                };
        };
 
                #size-cells = <1>;
                ranges = <0x0 0x0 0x0 0x40000000>;
 
+               crypto: crypto@1904000 {
+                       compatible = "allwinner,sun50i-h616-crypto";
+                       reg = <0x01904000 0x800>;
+                       interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>,
+                                <&ccu CLK_MBUS_CE>, <&rtc CLK_IOSC>;
+                       clock-names = "bus", "mod", "ram", "trng";
+                       resets = <&ccu RST_BUS_CE>;
+               };
+
                syscon: syscon@3000000 {
                        compatible = "allwinner,sun50i-h616-system-control";
                        reg = <0x03000000 0x1000>;
                        #interrupt-cells = <3>;
                };
 
+               iommu: iommu@30f0000 {
+                       compatible = "allwinner,sun50i-h616-iommu";
+                       reg = <0x030f0000 0x10000>;
+                       interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_IOMMU>;
+                       resets = <&ccu RST_BUS_IOMMU>;
+                       #iommu-cells = <1>;
+               };
+
                mmc0: mmc@4020000 {
                        compatible = "allwinner,sun50i-h616-mmc",
                                     "allwinner,sun50i-a100-mmc";
                        status = "disabled";
                };
 
+               gpadc: adc@5070000 {
+                       compatible = "allwinner,sun50i-h616-gpadc",
+                                    "allwinner,sun20i-d1-gpadc";
+                       reg = <0x05070000 0x400>;
+                       clocks = <&ccu CLK_BUS_GPADC>;
+                       resets = <&ccu RST_BUS_GPADC>;
+                       interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+                       #io-channel-cells = <1>;
+               };
+
                ths: thermal-sensor@5070400 {
                        compatible = "allwinner,sun50i-h616-ths";
                        reg = <0x05070400 0x400>;
                        #thermal-sensor-cells = <1>;
                };
 
+               lradc: lradc@5070800 {
+                       compatible = "allwinner,sun50i-h616-lradc",
+                                    "allwinner,sun50i-r329-lradc";
+                       reg = <0x05070800 0x400>;
+                       interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_KEYADC>;
+                       resets = <&ccu RST_BUS_KEYADC>;
+                       status = "disabled";
+               };
+
                usbotg: usb@5100000 {
                        compatible = "allwinner,sun50i-h616-musb",
                                     "allwinner,sun8i-h3-musb";
index ee30584b6ad7060df7c78cd9c8bd05a912e10ae6..afb49e65859f9894f0873f15ea10db8a09e3ab48 100644 (file)
@@ -6,7 +6,7 @@
 /dts-v1/;
 
 #include "sun50i-h616.dtsi"
-
+#include "sun50i-h616-cpu-opp.dtsi"
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
                        reg_dcdc1: dcdc1 {
                                regulator-always-on;
                                regulator-min-microvolt = <900000>;
-                               regulator-max-microvolt = <1100000>;
+                               regulator-max-microvolt = <1160000>;
                                regulator-name = "vdd-cpu";
                        };
 
index 63036256917f2f45fe7df8012d5a3e8fe37cfbcc..ff453336eab1d16fc67bada040fb9445f6629b9e 100644 (file)
@@ -9,6 +9,78 @@
 / {
        model = "Anbernic RG35XX H";
        compatible = "anbernic,rg35xx-h", "allwinner,sun50i-h700";
+
+       adc-joystick {
+               compatible = "adc-joystick";
+               io-channels = <&adc_mux 0>,
+                             <&adc_mux 1>,
+                             <&adc_mux 2>,
+                             <&adc_mux 3>;
+               pinctrl-0 = <&joy_mux_pin>;
+               pinctrl-names = "default";
+               poll-interval = <60>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               axis@0 {
+                       reg = <0>;
+                       abs-flat = <32>;
+                       abs-fuzz = <32>;
+                       abs-range = <4096 0>;
+                       linux,code = <ABS_X>;
+               };
+
+               axis@1 {
+                       reg = <1>;
+                       abs-flat = <32>;
+                       abs-fuzz = <32>;
+                       abs-range = <0 4096>;
+                       linux,code = <ABS_Y>;
+               };
+
+               axis@2 {
+                       reg = <2>;
+                       abs-flat = <32>;
+                       abs-fuzz = <32>;
+                       abs-range = <0 4096>;
+                       linux,code = <ABS_RX>;
+               };
+
+               axis@3 {
+                       reg = <3>;
+                       abs-flat = <32>;
+                       abs-fuzz = <32>;
+                       abs-range = <4096 0>;
+                       linux,code = <ABS_RY>;
+               };
+       };
+
+       adc_mux: adc-mux {
+               compatible = "io-channel-mux";
+               channels = "left_x", "left_y", "right_x", "right_y";
+               #io-channel-cells = <1>;
+               io-channels = <&gpadc 0>;
+               io-channel-names = "parent";
+               mux-controls = <&gpio_mux>;
+               settle-time-us = <100>;
+       };
+
+       gpio_mux: mux-controller {
+               compatible = "gpio-mux";
+               mux-gpios = <&pio 8 1 GPIO_ACTIVE_LOW>,
+                           <&pio 8 2 GPIO_ACTIVE_LOW>;
+               #mux-control-cells = <0>;
+       };
+};
+
+&gpadc {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       channel@0 {
+               reg = <0>;
+       };
 };
 
 &gpio_keys_gamepad {
 &ohci1 {
        status = "okay";
 };
+
+&pio {
+       joy_mux_pin: joy-mux-pin {
+               pins = "PI0";
+               function = "gpio_out";
+       };
+};
index cbbc53c4792180d7b8ee75e7d25d79fc1caca5aa..0def0b0daaf73101362eb13e0db5901c6ade06e1 100644 (file)
@@ -34,6 +34,7 @@
                        compatible = "arm,cortex-a53";
                        device_type = "cpu";
                        enable-method = "psci";
+                       next-level-cache = <&l2_shared>;
                        reg = <0x0>;
                };
 
@@ -41,6 +42,7 @@
                        compatible = "arm,cortex-a53";
                        device_type = "cpu";
                        enable-method = "psci";
+                       next-level-cache = <&l2_shared>;
                        reg = <0x1>;
                };
 
@@ -48,6 +50,7 @@
                        compatible = "arm,cortex-a53";
                        device_type = "cpu";
                        enable-method = "psci";
+                       next-level-cache = <&l2_shared>;
                        reg = <0x2>;
                };
 
                        compatible = "arm,cortex-a53";
                        device_type = "cpu";
                        enable-method = "psci";
+                       next-level-cache = <&l2_shared>;
                        reg = <0x3>;
                };
+
+               l2_shared: cache {
+                       compatible = "cache";
+                       cache-level = <2>;
+                       cache-unified;
+               };
        };
 
        firmware {
index 26173f0b0051b69ad701aee28fc0218c7f9038ec..4eee777ef1a149f00b26bfc70d31cd7c6c4caa27 100644 (file)
 &qspi {
        status = "okay";
        flash@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
                compatible = "micron,mt25qu02g", "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <100000000>;
index 81d0e914a77c430c7d7bd343a72838002f756b66..7c53cb9621e5747d48bdae88e0e1cd576e02efff 100644 (file)
 &qspi {
        status = "okay";
        flash@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
                compatible = "micron,mt25qu02g", "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <100000000>;
index 73ca1d7eed81d527145f8aae4fb4e73f3240637a..de10e7aebf2114e58f50aa10a99a58b85bea536f 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include "amlogic-a4-common.dtsi"
+#include <dt-bindings/power/amlogic,a4-pwrc.h>
 / {
        cpus {
                #address-cells = <2>;
                        enable-method = "psci";
                };
        };
+
+       sm: secure-monitor {
+               compatible = "amlogic,meson-gxbb-sm";
+
+               pwrc: power-controller {
+                       compatible = "amlogic,a4-pwrc";
+                       #power-domain-cells = <1>;
+               };
+       };
 };
index 32a754fe7990fe7bb722b6474c27b2ca455d7f40..f8fb060c49aebb50d1a4fde6270cf57600138f8d 100644 (file)
                        };
 
                        gpio_intc: interrupt-controller@4080 {
-                               compatible = "amlogic,meson-gpio-intc",
-                                            "amlogic,c3-gpio-intc";
+                               compatible = "amlogic,c3-gpio-intc", "amlogic,meson-gpio-intc";
                                reg = <0x0 0x4080 0x0 0x0020>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
index 4bc30af0584875d8961b3ae8bde280e375e92322..0d92f5253b64025e78e9b3b00321a897d69920b3 100644 (file)
@@ -7,6 +7,7 @@
 /dts-v1/;
 
 #include "meson-a1.dtsi"
+#include <dt-bindings/thermal/thermal.h>
 
 / {
        compatible = "amlogic,ad402", "amlogic,a1";
                vin-supply = <&vddao_3v3>;
                regulator-always-on;
        };
+
+       thermal-zones {
+               soc_thermal: soc-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <100>;
+                       sustainable-power = <130>;
+
+                       thermal-sensors = <&cpu_temp>;
+
+                       trips {
+                               soc_passive: soc-passive {
+                                       temperature = <70000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               soc_hot: soc-hot {
+                                       temperature = <85000>;
+                                       hysteresis = <5000>;
+                                       type = "hot";
+                               };
+
+                               soc_critical: soc-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       soc_cooling_maps: cooling-maps {
+                               map0 {
+                                       trip = <&soc_passive>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+
+                               map1 {
+                                       trip = <&soc_hot>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
 };
 
 /* Bluetooth HCI H4 */
index c03e207ea6c5d64abf765c42d20651633c234697..e5366d4239b13a3d0d5caaab3115f15ea74990b3 100644 (file)
@@ -28,6 +28,7 @@
                        reg = <0x0 0x0>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       #cooling-cells = <2>;
                };
 
                cpu1: cpu@1 {
@@ -36,6 +37,7 @@
                        reg = <0x0 0x1>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       #cooling-cells = <2>;
                };
 
                l2: l2-cache0 {
                                power-domains = <&pwrc PWRC_USB_ID>;
                        };
 
+                       cpu_temp: temperature-sensor@4c00 {
+                               compatible = "amlogic,a1-cpu-thermal";
+                               reg = <0x0 0x4c00 0x0 0x50>;
+                               interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&clkc_periphs CLKID_TS>;
+                               assigned-clocks = <&clkc_periphs CLKID_TS>;
+                               assigned-clock-rates = <500000>;
+                               #thermal-sensor-cells = <0>;
+                               amlogic,ao-secure = <&sec_AO>;
+                       };
+
                        hwrng: rng@5118 {
                                compatible = "amlogic,meson-rng";
                                reg = <0x0 0x5118 0x0 0x4>;
                                clock-names = "fixpll_in", "hifipll_in";
                        };
 
-                       sd_emmc: sd@10000 {
+                       sd_emmc: mmc@10000 {
                                compatible = "amlogic,meson-axg-mmc";
                                reg = <0x0 0x10000 0x0 0x800>;
                                interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
                        assigned-clocks = <&clkc_periphs CLKID_USB_BUS>;
                        assigned-clock-rates = <64000000>;
                        resets = <&reset RESET_USBCTRL>;
-                       reset-name = "usb_ctrl";
 
                        dr_mode = "otg";
 
index 6d12b760b90f75c2b857460e0f0e26fec900d55e..e9b22868983db5d5415c3c3e485d33a95820b915 100644 (file)
                compatible = "amlogic,axg-tdm-iface";
                #sound-dai-cells = <0>;
                sound-name-prefix = "TDM_A";
-               clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>,
-                        <&clkc_audio AUD_CLKID_MST_A_SCLK>,
-                        <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
-               clock-names = "mclk", "sclk", "lrclk";
+               clocks = <&clkc_audio AUD_CLKID_MST_A_SCLK>,
+                        <&clkc_audio AUD_CLKID_MST_A_LRCLK>,
+                        <&clkc_audio AUD_CLKID_MST_A_MCLK>;
+               clock-names = "sclk", "lrclk", "mclk";
                status = "disabled";
        };
 
                compatible = "amlogic,axg-tdm-iface";
                #sound-dai-cells = <0>;
                sound-name-prefix = "TDM_B";
-               clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>,
-                        <&clkc_audio AUD_CLKID_MST_B_SCLK>,
-                        <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
-               clock-names = "mclk", "sclk", "lrclk";
+               clocks = <&clkc_audio AUD_CLKID_MST_B_SCLK>,
+                        <&clkc_audio AUD_CLKID_MST_B_LRCLK>,
+                        <&clkc_audio AUD_CLKID_MST_B_MCLK>;
+               clock-names = "sclk", "lrclk", "mclk";
                status = "disabled";
        };
 
                compatible = "amlogic,axg-tdm-iface";
                #sound-dai-cells = <0>;
                sound-name-prefix = "TDM_C";
-               clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>,
-                        <&clkc_audio AUD_CLKID_MST_C_SCLK>,
-                        <&clkc_audio AUD_CLKID_MST_C_LRCLK>;
-               clock-names = "mclk", "sclk", "lrclk";
+               clocks = <&clkc_audio AUD_CLKID_MST_C_SCLK>,
+                        <&clkc_audio AUD_CLKID_MST_C_LRCLK>,
+                        <&clkc_audio AUD_CLKID_MST_C_MCLK>;
+               clock-names = "sclk", "lrclk", "mclk";
                status = "disabled";
        };
 
index b058ed78faf00682791ce38ca60c1b0d6ff8db66..d08c97797010d61bbccf7c7a38199beaf9004b43 100644 (file)
                                #sound-dai-cells = <0>;
                                status = "disabled";
 
+                               assigned-clocks = <&clkc CLKID_HDMI_SEL>,
+                                                 <&clkc CLKID_HDMI>;
+                               assigned-clock-parents = <&xtal>, <0>;
+                               assigned-clock-rates = <0>, <24000000>;
+
                                /* VPU VENC Input */
                                hdmi_tx_venc_port: port@0 {
                                        reg = <0>;
                                                mux {
                                                        groups = "spdif_out_h";
                                                        function = "spdif_out";
-                                                       drive-strength-microamp = <500>;
+                                                       drive-strength-microamp = <3000>;
                                                        bias-disable;
                                                };
                                        };
                                                mux {
                                                        groups = "spdif_out_a11";
                                                        function = "spdif_out";
-                                                       drive-strength-microamp = <500>;
+                                                       drive-strength-microamp = <3000>;
                                                        bias-disable;
                                                };
                                        };
                                                mux {
                                                        groups = "spdif_out_a13";
                                                        function = "spdif_out";
-                                                       drive-strength-microamp = <500>;
+                                                       drive-strength-microamp = <3000>;
                                                        bias-disable;
                                                };
                                        };
                                compatible = "amlogic,meson-gx-ao-sysctrl",
                                             "simple-mfd", "syscon";
                                reg = <0x0 0x0 0x0 0x100>;
-                               #address-cells = <2>;
-                               #size-cells = <2>;
-                               ranges = <0x0 0x0 0x0 0x0 0x0 0x100>;
 
                                clkc_AO: clock-controller {
                                        compatible = "amlogic,meson-g12a-aoclkc";
                                        clocks = <&xtal>, <&clkc CLKID_CLK81>;
                                        clock-names = "xtal", "mpeg-clk";
                                };
+                       };
 
-                               ao_pinctrl: pinctrl {
-                                       compatible = "amlogic,meson-g12a-aobus-pinctrl";
-                                       #address-cells = <2>;
-                                       #size-cells = <2>;
-                                       ranges;
+                       ao_pinctrl: pinctrl@14 {
+                               compatible = "amlogic,meson-g12a-aobus-pinctrl";
+                               #address-cells = <2>;
+                               #size-cells = <2>;
+                               ranges;
+
+                               gpio_ao: bank@14 {
+                                       reg = <0x0 0x14 0x0 0x8>,
+                                             <0x0 0x1c 0x0 0x8>,
+                                             <0x0 0x24 0x0 0x14>;
+                                       reg-names = "mux",
+                                                   "ds",
+                                                   "gpio";
+                                       gpio-controller;
+                                       #gpio-cells = <2>;
+                                       gpio-ranges = <&ao_pinctrl 0 0 15>;
+                               };
 
-                                       gpio_ao: bank@14 {
-                                               reg = <0x0 0x14 0x0 0x8>,
-                                                     <0x0 0x1c 0x0 0x8>,
-                                                     <0x0 0x24 0x0 0x14>;
-                                               reg-names = "mux",
-                                                           "ds",
-                                                           "gpio";
-                                               gpio-controller;
-                                               #gpio-cells = <2>;
-                                               gpio-ranges = <&ao_pinctrl 0 0 15>;
+                               i2c_ao_sck_pins: i2c_ao_sck_pins {
+                                       mux {
+                                               groups = "i2c_ao_sck";
+                                               function = "i2c_ao";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
                                        };
+                               };
 
-                                       i2c_ao_sck_pins: i2c_ao_sck_pins {
-                                               mux {
-                                                       groups = "i2c_ao_sck";
-                                                       function = "i2c_ao";
-                                                       bias-disable;
-                                                       drive-strength-microamp = <3000>;
-                                               };
+                               i2c_ao_sda_pins: i2c_ao_sda {
+                                       mux {
+                                               groups = "i2c_ao_sda";
+                                               function = "i2c_ao";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
                                        };
+                               };
 
-                                       i2c_ao_sda_pins: i2c_ao_sda {
-                                               mux {
-                                                       groups = "i2c_ao_sda";
-                                                       function = "i2c_ao";
-                                                       bias-disable;
-                                                       drive-strength-microamp = <3000>;
-                                               };
+                               i2c_ao_sck_e_pins: i2c_ao_sck_e {
+                                       mux {
+                                               groups = "i2c_ao_sck_e";
+                                               function = "i2c_ao";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
                                        };
+                               };
 
-                                       i2c_ao_sck_e_pins: i2c_ao_sck_e {
-                                               mux {
-                                                       groups = "i2c_ao_sck_e";
-                                                       function = "i2c_ao";
-                                                       bias-disable;
-                                                       drive-strength-microamp = <3000>;
-                                               };
+                               i2c_ao_sda_e_pins: i2c_ao_sda_e {
+                                       mux {
+                                               groups = "i2c_ao_sda_e";
+                                               function = "i2c_ao";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
                                        };
+                               };
 
-                                       i2c_ao_sda_e_pins: i2c_ao_sda_e {
-                                               mux {
-                                                       groups = "i2c_ao_sda_e";
-                                                       function = "i2c_ao";
-                                                       bias-disable;
-                                                       drive-strength-microamp = <3000>;
-                                               };
+                               mclk0_ao_pins: mclk0-ao {
+                                       mux {
+                                               groups = "mclk0_ao";
+                                               function = "mclk0_ao";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
                                        };
+                               };
 
-                                       mclk0_ao_pins: mclk0-ao {
-                                               mux {
-                                                       groups = "mclk0_ao";
-                                                       function = "mclk0_ao";
-                                                       bias-disable;
-                                                       drive-strength-microamp = <3000>;
-                                               };
+                               tdm_ao_b_din0_pins: tdm-ao-b-din0 {
+                                       mux {
+                                               groups = "tdm_ao_b_din0";
+                                               function = "tdm_ao_b";
+                                               bias-disable;
                                        };
+                               };
 
-                                       tdm_ao_b_din0_pins: tdm-ao-b-din0 {
-                                               mux {
-                                                       groups = "tdm_ao_b_din0";
-                                                       function = "tdm_ao_b";
-                                                       bias-disable;
-                                               };
+                               spdif_ao_out_pins: spdif-ao-out {
+                                       mux {
+                                               groups = "spdif_ao_out";
+                                               function = "spdif_ao_out";
+                                               drive-strength-microamp = <3000>;
+                                               bias-disable;
                                        };
+                               };
 
-                                       spdif_ao_out_pins: spdif-ao-out {
-                                               mux {
-                                                       groups = "spdif_ao_out";
-                                                       function = "spdif_ao_out";
-                                                       drive-strength-microamp = <500>;
-                                                       bias-disable;
-                                               };
+                               tdm_ao_b_din1_pins: tdm-ao-b-din1 {
+                                       mux {
+                                               groups = "tdm_ao_b_din1";
+                                               function = "tdm_ao_b";
+                                               bias-disable;
                                        };
+                               };
 
-                                       tdm_ao_b_din1_pins: tdm-ao-b-din1 {
-                                               mux {
-                                                       groups = "tdm_ao_b_din1";
-                                                       function = "tdm_ao_b";
-                                                       bias-disable;
-                                               };
+                               tdm_ao_b_din2_pins: tdm-ao-b-din2 {
+                                       mux {
+                                               groups = "tdm_ao_b_din2";
+                                               function = "tdm_ao_b";
+                                               bias-disable;
                                        };
+                               };
 
-                                       tdm_ao_b_din2_pins: tdm-ao-b-din2 {
-                                               mux {
-                                                       groups = "tdm_ao_b_din2";
-                                                       function = "tdm_ao_b";
-                                                       bias-disable;
-                                               };
+                               tdm_ao_b_dout0_pins: tdm-ao-b-dout0 {
+                                       mux {
+                                               groups = "tdm_ao_b_dout0";
+                                               function = "tdm_ao_b";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
                                        };
+                               };
 
-                                       tdm_ao_b_dout0_pins: tdm-ao-b-dout0 {
-                                               mux {
-                                                       groups = "tdm_ao_b_dout0";
-                                                       function = "tdm_ao_b";
-                                                       bias-disable;
-                                                       drive-strength-microamp = <3000>;
-                                               };
+                               tdm_ao_b_dout1_pins: tdm-ao-b-dout1 {
+                                       mux {
+                                               groups = "tdm_ao_b_dout1";
+                                               function = "tdm_ao_b";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
                                        };
+                               };
 
-                                       tdm_ao_b_dout1_pins: tdm-ao-b-dout1 {
-                                               mux {
-                                                       groups = "tdm_ao_b_dout1";
-                                                       function = "tdm_ao_b";
-                                                       bias-disable;
-                                                       drive-strength-microamp = <3000>;
-                                               };
-                                       };
-
-                                       tdm_ao_b_dout2_pins: tdm-ao-b-dout2 {
-                                               mux {
-                                                       groups = "tdm_ao_b_dout2";
-                                                       function = "tdm_ao_b";
-                                                       bias-disable;
-                                                       drive-strength-microamp = <3000>;
-                                               };
+                               tdm_ao_b_dout2_pins: tdm-ao-b-dout2 {
+                                       mux {
+                                               groups = "tdm_ao_b_dout2";
+                                               function = "tdm_ao_b";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
                                        };
+                               };
 
-                                       tdm_ao_b_fs_pins: tdm-ao-b-fs {
-                                               mux {
-                                                       groups = "tdm_ao_b_fs";
-                                                       function = "tdm_ao_b";
-                                                       bias-disable;
-                                                       drive-strength-microamp = <3000>;
-                                               };
+                               tdm_ao_b_fs_pins: tdm-ao-b-fs {
+                                       mux {
+                                               groups = "tdm_ao_b_fs";
+                                               function = "tdm_ao_b";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
                                        };
+                               };
 
-                                       tdm_ao_b_sclk_pins: tdm-ao-b-sclk {
-                                               mux {
-                                                       groups = "tdm_ao_b_sclk";
-                                                       function = "tdm_ao_b";
-                                                       bias-disable;
-                                                       drive-strength-microamp = <3000>;
-                                               };
+                               tdm_ao_b_sclk_pins: tdm-ao-b-sclk {
+                                       mux {
+                                               groups = "tdm_ao_b_sclk";
+                                               function = "tdm_ao_b";
+                                               bias-disable;
+                                               drive-strength-microamp = <3000>;
                                        };
+                               };
 
-                                       tdm_ao_b_slv_fs_pins: tdm-ao-b-slv-fs {
-                                               mux {
-                                                       groups = "tdm_ao_b_slv_fs";
-                                                       function = "tdm_ao_b";
-                                                       bias-disable;
-                                               };
+                               tdm_ao_b_slv_fs_pins: tdm-ao-b-slv-fs {
+                                       mux {
+                                               groups = "tdm_ao_b_slv_fs";
+                                               function = "tdm_ao_b";
+                                               bias-disable;
                                        };
+                               };
 
-                                       tdm_ao_b_slv_sclk_pins: tdm-ao-b-slv-sclk {
-                                               mux {
-                                                       groups = "tdm_ao_b_slv_sclk";
-                                                       function = "tdm_ao_b";
-                                                       bias-disable;
-                                               };
+                               tdm_ao_b_slv_sclk_pins: tdm-ao-b-slv-sclk {
+                                       mux {
+                                               groups = "tdm_ao_b_slv_sclk";
+                                               function = "tdm_ao_b";
+                                               bias-disable;
                                        };
+                               };
 
-                                       uart_ao_a_pins: uart-a-ao {
-                                               mux {
-                                                       groups = "uart_ao_a_tx",
-                                                                "uart_ao_a_rx";
-                                                       function = "uart_ao_a";
-                                                       bias-disable;
-                                               };
+                               uart_ao_a_pins: uart-a-ao {
+                                       mux {
+                                               groups = "uart_ao_a_tx",
+                                                        "uart_ao_a_rx";
+                                               function = "uart_ao_a";
+                                               bias-disable;
                                        };
+                               };
 
-                                       uart_ao_a_cts_rts_pins: uart-ao-a-cts-rts {
-                                               mux {
-                                                       groups = "uart_ao_a_cts",
-                                                                "uart_ao_a_rts";
-                                                       function = "uart_ao_a";
-                                                       bias-disable;
-                                               };
+                               uart_ao_a_cts_rts_pins: uart-ao-a-cts-rts {
+                                       mux {
+                                               groups = "uart_ao_a_cts",
+                                                        "uart_ao_a_rts";
+                                               function = "uart_ao_a";
+                                               bias-disable;
                                        };
+                               };
 
-                                       uart_ao_b_2_3_pins: uart-ao-b-2-3 {
-                                               mux {
-                                                       groups = "uart_ao_b_tx_2",
-                                                                "uart_ao_b_rx_3";
-                                                       function = "uart_ao_b";
-                                                       bias-disable;
-                                               };
+                               uart_ao_b_2_3_pins: uart-ao-b-2-3 {
+                                       mux {
+                                               groups = "uart_ao_b_tx_2",
+                                                        "uart_ao_b_rx_3";
+                                               function = "uart_ao_b";
+                                               bias-disable;
                                        };
+                               };
 
-                                       uart_ao_b_8_9_pins: uart-ao-b-8-9 {
-                                               mux {
-                                                       groups = "uart_ao_b_tx_8",
-                                                                "uart_ao_b_rx_9";
-                                                       function = "uart_ao_b";
-                                                       bias-disable;
-                                               };
+                               uart_ao_b_8_9_pins: uart-ao-b-8-9 {
+                                       mux {
+                                               groups = "uart_ao_b_tx_8",
+                                                        "uart_ao_b_rx_9";
+                                               function = "uart_ao_b";
+                                               bias-disable;
                                        };
+                               };
 
-                                       uart_ao_b_cts_rts_pins: uart-ao-b-cts-rts {
-                                               mux {
-                                                       groups = "uart_ao_b_cts",
-                                                                "uart_ao_b_rts";
-                                                       function = "uart_ao_b";
-                                                       bias-disable;
-                                               };
+                               uart_ao_b_cts_rts_pins: uart-ao-b-cts-rts {
+                                       mux {
+                                               groups = "uart_ao_b_cts",
+                                                        "uart_ao_b_rts";
+                                               function = "uart_ao_b";
+                                               bias-disable;
                                        };
+                               };
 
-                                       pwm_a_e_pins: pwm-a-e {
-                                               mux {
-                                                       groups = "pwm_a_e";
-                                                       function = "pwm_a_e";
-                                                       bias-disable;
-                                               };
+                               pwm_a_e_pins: pwm-a-e {
+                                       mux {
+                                               groups = "pwm_a_e";
+                                               function = "pwm_a_e";
+                                               bias-disable;
                                        };
+                               };
 
-                                       pwm_ao_a_pins: pwm-ao-a {
-                                               mux {
-                                                       groups = "pwm_ao_a";
-                                                       function = "pwm_ao_a";
-                                                       bias-disable;
-                                               };
+                               pwm_ao_a_pins: pwm-ao-a {
+                                       mux {
+                                               groups = "pwm_ao_a";
+                                               function = "pwm_ao_a";
+                                               bias-disable;
                                        };
+                               };
 
-                                       pwm_ao_b_pins: pwm-ao-b {
-                                               mux {
-                                                       groups = "pwm_ao_b";
-                                                       function = "pwm_ao_b";
-                                                       bias-disable;
-                                               };
+                               pwm_ao_b_pins: pwm-ao-b {
+                                       mux {
+                                               groups = "pwm_ao_b";
+                                               function = "pwm_ao_b";
+                                               bias-disable;
                                        };
+                               };
 
-                                       pwm_ao_c_4_pins: pwm-ao-c-4 {
-                                               mux {
-                                                       groups = "pwm_ao_c_4";
-                                                       function = "pwm_ao_c";
-                                                       bias-disable;
-                                               };
+                               pwm_ao_c_4_pins: pwm-ao-c-4 {
+                                       mux {
+                                               groups = "pwm_ao_c_4";
+                                               function = "pwm_ao_c";
+                                               bias-disable;
                                        };
+                               };
 
-                                       pwm_ao_c_6_pins: pwm-ao-c-6 {
-                                               mux {
-                                                       groups = "pwm_ao_c_6";
-                                                       function = "pwm_ao_c";
-                                                       bias-disable;
-                                               };
+                               pwm_ao_c_6_pins: pwm-ao-c-6 {
+                                       mux {
+                                               groups = "pwm_ao_c_6";
+                                               function = "pwm_ao_c";
+                                               bias-disable;
                                        };
+                               };
 
-                                       pwm_ao_d_5_pins: pwm-ao-d-5 {
-                                               mux {
-                                                       groups = "pwm_ao_d_5";
-                                                       function = "pwm_ao_d";
-                                                       bias-disable;
-                                               };
+                               pwm_ao_d_5_pins: pwm-ao-d-5 {
+                                       mux {
+                                               groups = "pwm_ao_d_5";
+                                               function = "pwm_ao_d";
+                                               bias-disable;
                                        };
+                               };
 
-                                       pwm_ao_d_10_pins: pwm-ao-d-10 {
-                                               mux {
-                                                       groups = "pwm_ao_d_10";
-                                                       function = "pwm_ao_d";
-                                                       bias-disable;
-                                               };
+                               pwm_ao_d_10_pins: pwm-ao-d-10 {
+                                       mux {
+                                               groups = "pwm_ao_d_10";
+                                               function = "pwm_ao_d";
+                                               bias-disable;
                                        };
+                               };
 
-                                       pwm_ao_d_e_pins: pwm-ao-d-e {
-                                               mux {
-                                                       groups = "pwm_ao_d_e";
-                                                       function = "pwm_ao_d";
-                                               };
+                               pwm_ao_d_e_pins: pwm-ao-d-e {
+                                       mux {
+                                               groups = "pwm_ao_d_e";
+                                               function = "pwm_ao_d";
                                        };
+                               };
 
-                                       remote_input_ao_pins: remote-input-ao {
-                                               mux {
-                                                       groups = "remote_ao_input";
-                                                       function = "remote_ao_input";
-                                                       bias-disable;
-                                               };
+                               remote_input_ao_pins: remote-input-ao {
+                                       mux {
+                                               groups = "remote_ao_input";
+                                               function = "remote_ao_input";
+                                               bias-disable;
                                        };
                                };
                        };
index e732df3f3114d7d8a9d7a898a631405218dac76e..664912d1beaab7ddc88097c3dc1ac10bda3aafcf 100644 (file)
        power-domains = <&pwrc PWRC_G12A_ETH_ID>;
 };
 
+&hdmi_tx {
+       power-domains = <&pwrc PWRC_G12A_VPU_ID>;
+};
+
 &vpu {
        power-domains = <&pwrc PWRC_G12A_VPU_ID>;
 };
index 3da7922d83f1bc34d0e01ed5c2fff3bc9c77c650..0e239939ade6ccb86b933f2e7ee3d20f70252213 100644 (file)
@@ -24,7 +24,6 @@
                compatible = "simple-audio-amplifier";
                enable-gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
                VCC-supply = <&vcc_5v>;
-               #sound-dai-cells = <0>;
                sound-name-prefix = "10U2";
        };
 
 };
 
 &acodec {
+       AVDD-supply = <&vddao_1v8>;
        status = "okay";
 };
 
index 4b8db872bbf315ce36f13dab646c2e46bdb89429..6a346cb86a5394809c764e0412d747d727baabbf 100644 (file)
                reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>;
        };
 
-       fan0: pwm-fan {
-               compatible = "pwm-fan";
-               #cooling-cells = <2>;
-               cooling-levels = <0 120 170 220>;
-               pwms = <&pwm_cd 1 40000 0>;
-       };
-
        hdmi-connector {
                compatible = "hdmi-connector";
                type = "a";
        clock-names = "clkin0";
 };
 
-&pwm_cd {
-       status = "okay";
-       pinctrl-0 = <&pwm_d_x6_pins>;
-       pinctrl-names = "default";
-       pwm-gpios = <&gpio GPIOAO_10 GPIO_ACTIVE_HIGH>;
-};
-
 &pwm_ef {
        status = "okay";
        pinctrl-0 = <&pwm_e_pins>;
diff --git a/src/arm64/amlogic/meson-g12b-dreambox-one.dts b/src/arm64/amlogic/meson-g12b-dreambox-one.dts
new file mode 100644 (file)
index 0000000..ecfa1c6
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "meson-g12b-dreambox.dtsi"
+
+/ {
+       compatible = "dream,dreambox-one", "amlogic,s922x", "amlogic,g12b";
+       model = "Dreambox One";
+};
+
+&sd_emmc_a {
+       sd-uhs-sdr12;
+};
diff --git a/src/arm64/amlogic/meson-g12b-dreambox-two.dts b/src/arm64/amlogic/meson-g12b-dreambox-two.dts
new file mode 100644 (file)
index 0000000..df0d719
--- /dev/null
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "meson-g12b-dreambox.dtsi"
+
+/ {
+       compatible = "dream,dreambox-two", "amlogic,s922x", "amlogic,g12b";
+       model = "Dreambox Two";
+};
+
+&sd_emmc_a {
+       sd-uhs-sdr12;
+       sd-uhs-sdr25;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+};
diff --git a/src/arm64/amlogic/meson-g12b-dreambox.dtsi b/src/arm64/amlogic/meson-g12b-dreambox.dtsi
new file mode 100644 (file)
index 0000000..3a24c24
--- /dev/null
@@ -0,0 +1,154 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2021 Christian Hewitt <christianshewitt@gmail.com>
+ */
+
+#include "meson-g12b-w400.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/sound/meson-g12a-tohdmitx.h>
+
+/ {
+       cvbs-connector {
+               status = "disabled";
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpio GPIOA_11 GPIO_ACTIVE_LOW>;
+               clocks = <&wifi32k>;
+               clock-names = "ext_clock";
+       };
+
+       spdif_dit: audio-codec-1 {
+               #sound-dai-cells = <0>;
+               compatible = "linux,spdif-dit";
+               status = "okay";
+               sound-name-prefix = "DIT";
+       };
+
+       sound {
+               compatible = "amlogic,axg-sound-card";
+               model = "DREAMBOX";
+               audio-aux-devs = <&tdmout_b>;
+               audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
+                               "TDMOUT_B IN 1", "FRDDR_B OUT 1",
+                               "TDMOUT_B IN 2", "FRDDR_C OUT 1",
+                               "TDM_B Playback", "TDMOUT_B OUT",
+                               "SPDIFOUT_A IN 0", "FRDDR_A OUT 3",
+                               "SPDIFOUT_A IN 1", "FRDDR_B OUT 3",
+                               "SPDIFOUT_A IN 2", "FRDDR_C OUT 3";
+               assigned-clocks = <&clkc CLKID_MPLL2>,
+                                 <&clkc CLKID_MPLL0>,
+                                 <&clkc CLKID_MPLL1>;
+               assigned-clock-parents = <0>, <0>, <0>;
+               assigned-clock-rates = <294912000>,
+                                      <270950400>,
+                                      <393216000>;
+
+               dai-link-0 {
+                       sound-dai = <&frddr_a>;
+               };
+
+               dai-link-1 {
+                       sound-dai = <&frddr_b>;
+               };
+
+               dai-link-2 {
+                       sound-dai = <&frddr_c>;
+               };
+
+               /* 8ch hdmi interface */
+               dai-link-3 {
+                       sound-dai = <&tdmif_b>;
+                       dai-format = "i2s";
+                       dai-tdm-slot-tx-mask-0 = <1 1>;
+                       dai-tdm-slot-tx-mask-1 = <1 1>;
+                       dai-tdm-slot-tx-mask-2 = <1 1>;
+                       dai-tdm-slot-tx-mask-3 = <1 1>;
+                       mclk-fs = <256>;
+
+                       codec {
+                               sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
+                       };
+               };
+
+               /* spdif hdmi or toslink interface */
+               dai-link-4 {
+                       sound-dai = <&spdifout_a>;
+
+                       codec-0 {
+                               sound-dai = <&spdif_dit>;
+                       };
+
+                       codec-1 {
+                               sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>;
+                       };
+               };
+
+               /* spdif hdmi interface */
+               dai-link-5 {
+                       sound-dai = <&spdifout_b>;
+
+                       codec {
+                               sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>;
+                       };
+               };
+
+               /* hdmi glue */
+               dai-link-6 {
+                       sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
+
+                       codec {
+                               sound-dai = <&hdmi_tx>;
+                       };
+               };
+       };
+};
+
+&arb {
+       status = "okay";
+};
+
+&frddr_a {
+       status = "okay";
+};
+
+&frddr_b {
+       status = "okay";
+};
+
+&frddr_c {
+       status = "okay";
+};
+
+&ir {
+       linux,rc-map-name = "rc-dreambox";
+};
+
+&saradc {
+       status = "okay";
+       vref-supply = <&vddao_1v8>;
+};
+
+&spdifout_a {
+       pinctrl-0 = <&spdif_out_h_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&spdifout_b {
+       status = "okay";
+};
+
+&tdmif_b {
+       status = "okay";
+};
+
+&tdmout_b {
+       status = "okay";
+};
+
+&tohdmitx {
+       status = "okay";
+};
index d80dd9a3da316ab083c508ae6222d181d28c2b0d..86eb81112232131f01e45c51dac871c781b8387e 100644 (file)
                enable-active-high;
        };
 
+       /* USB hub supports both USB 2.0 and USB 3.0 root hub */
+       usb-hub {
+               dr_mode = "host";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* 2.0 hub on port 1 */
+               hub_2_0: hub@1 {
+                       compatible = "usb5e3,610";
+                       reg = <1>;
+                       peer-hub = <&hub_3_0>;
+                       vdd-supply = <&usb_pwr_en>;
+               };
+
+               /* 3.0 hub on port 4 */
+               hub_3_0: hub@2 {
+                       compatible = "usb5e3,620";
+                       reg = <2>;
+                       peer-hub = <&hub_2_0>;
+                       reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
+                       vdd-supply = <&vcc_5v>;
+               };
+       };
+
        sound {
                compatible = "amlogic,axg-sound-card";
                model = "ODROID-N2";
                "PIN_3",  /* GPIOX_17 */
                "PIN_5",  /* GPIOX_18 */
                "PIN_36"; /* GPIOX_19 */
-       /*
-        * WARNING: The USB Hub on the Odroid-N2 needs a reset signal
-        * to be turned high in order to be detected by the USB Controller
-        * This signal should be handled by a USB specific power sequence
-        * in order to reset the Hub when USB bus is powered down.
-        */
-       usb-hub-hog {
-               gpio-hog;
-               gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>;
-               output-high;
-               line-name = "usb-hub-reset";
-       };
 };
 
 &i2c3 {
index 890f5bfebb0304bead7734b3d0119022fc5ef768..8445701100d0e40e850c189c1c5a927c45ed9173 100644 (file)
                reg = <0x0 0x0 0x0 0x80000000>;
        };
 
+       fan0: pwm-fan {
+               compatible = "pwm-fan";
+               #cooling-cells = <2>;
+               cooling-levels = <0 64 128 192 255>;
+               pwms = <&pwm_AO_ab 0 40000 0>;
+       };
+
        gpio-keys-polled {
                compatible = "gpio-keys-polled";
                poll-interval = <100>;
        clock-latency = <50000>;
 };
 
+&cpu_thermal {
+       trips {
+               cpu_active: cpu-active {
+                       temperature = <70000>; /* millicelsius */
+                       hysteresis = <2000>; /* millicelsius */
+                       type = "active";
+               };
+       };
+
+       cooling-maps {
+               map2 {
+                       trip = <&cpu_active>;
+                       cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+               };
+       };
+};
+
 &frddr_a {
        status = "okay";
 };
index c431986e6a3314d663473352a055a72eb692b68f..c37cc6b036cd71423e739846d349ceed43884331 100644 (file)
                compatible = "usb5e3,610";
                reg = <1>;
                vdd-supply = <&p5v0>;
-               reset-gpio = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
        };
 };
index 12ef6e81c8bd63767d1a91a04c5b877ffcec088c..ed00e67e6923a0392acb776e886f848e9522c983 100644 (file)
                 <&reset RESET_HDMI_SYSTEM_RESET>,
                 <&reset RESET_HDMI_TX>;
        reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
-       clocks = <&clkc CLKID_HDMI_PCLK>,
-                <&clkc CLKID_CLK81>,
+       clocks = <&clkc CLKID_HDMI>,
+                <&clkc CLKID_HDMI_PCLK>,
                 <&clkc CLKID_GCLK_VENCI_INT0>;
        clock-names = "isfr", "iahb", "venci";
+       power-domains = <&pwrc PWRC_GXBB_VPU_ID>;
+
+       assigned-clocks = <&clkc CLKID_HDMI_SEL>,
+                         <&clkc CLKID_HDMI>;
+       assigned-clock-parents = <&xtal>, <0>;
+       assigned-clock-rates = <0>, <24000000>;
 };
 
 &sysctrl {
diff --git a/src/arm64/amlogic/meson-gxl-s905x-vero4k.dts b/src/arm64/amlogic/meson-gxl-s905x-vero4k.dts
new file mode 100644 (file)
index 0000000..de996e9
--- /dev/null
@@ -0,0 +1,199 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Christian Hewitt <christianshewitt@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "meson-gxl-s905x-p212.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/sound/meson-aiu.h>
+
+/ {
+       compatible = "osmc,vero4k", "amlogic,s905x", "amlogic,meson-gxl";
+       model = "OSMC Vero 4K";
+
+       reserved-memory {
+               /* 32 MiB reserved for ARM Trusted Firmware (BL32) */
+               secmon_reserved_bl32: secmon@5300000 {
+                       reg = <0x0 0x05300000 0x0 0x2000000>;
+                       no-map;
+               };
+       };
+
+       gpio-keys-polled {
+               compatible = "gpio-keys-polled";
+               poll-interval = <20>;
+
+               button {
+                       label = "power";
+                       linux,code = <KEY_POWER>;
+                       gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-standby {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&gpio GPIODV_24 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+                       panic-indicator;
+               };
+       };
+
+       dio2133: analog-amplifier {
+               compatible = "simple-audio-amplifier";
+               sound-name-prefix = "AU2";
+               VCC-supply = <&hdmi_5v>;
+               enable-gpios = <&gpio GPIOH_5 GPIO_ACTIVE_HIGH>;
+       };
+
+       spdif_dit: audio-codec-0 {
+               #sound-dai-cells = <0>;
+               compatible = "linux,spdif-dit";
+               sound-name-prefix = "DIT";
+       };
+
+       cvbs-connector {
+               compatible = "composite-video-connector";
+
+               port {
+                       cvbs_connector_in: endpoint {
+                               remote-endpoint = <&cvbs_vdac_out>;
+                       };
+               };
+       };
+
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_tmds_out>;
+                       };
+               };
+       };
+
+       sound {
+               compatible = "amlogic,gx-sound-card";
+               model = "VERO4K";
+               audio-aux-devs = <&dio2133>;
+               audio-widgets = "Line", "Lineout";
+               audio-routing = "AU2 INL", "ACODEC LOLP",
+                               "AU2 INR", "ACODEC LORP",
+                               "AU2 INL", "ACODEC LOLN",
+                               "AU2 INR", "ACODEC LORN",
+                               "Lineout", "AU2 OUTL",
+                               "Lineout", "AU2 OUTR";
+               assigned-clocks = <&clkc CLKID_MPLL0>,
+                                 <&clkc CLKID_MPLL1>,
+                                 <&clkc CLKID_MPLL2>;
+               assigned-clock-parents = <0>, <0>, <0>;
+               assigned-clock-rates = <294912000>,
+                                      <270950400>,
+                                      <393216000>;
+
+               dai-link-0 {
+                       sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
+               };
+
+               dai-link-1 {
+                       sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>;
+               };
+
+               dai-link-2 {
+                       sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
+                       dai-format = "i2s";
+                       mclk-fs = <256>;
+
+                       codec-0 {
+                               sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
+                       };
+
+                       codec-1 {
+                               sound-dai = <&aiu AIU_ACODEC CTRL_I2S>;
+                       };
+               };
+
+               dai-link-3 {
+                       sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>;
+
+                       codec-0 {
+                               sound-dai = <&spdif_dit>;
+                       };
+               };
+
+               dai-link-4 {
+                       sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
+
+                       codec-0 {
+                               sound-dai = <&hdmi_tx>;
+                       };
+               };
+
+               dai-link-5 {
+                       sound-dai = <&aiu AIU_ACODEC CTRL_OUT>;
+
+                       codec-0 {
+                               sound-dai = <&acodec>;
+                       };
+               };
+       };
+};
+
+&acodec {
+       AVDD-supply = <&vddio_ao18>;
+       status = "okay";
+};
+
+&aiu {
+       status = "okay";
+       pinctrl-0 = <&spdif_out_h_pins>;
+       pinctrl-names = "default";
+};
+
+&cec_AO {
+       status = "okay";
+       pinctrl-0 = <&ao_cec_pins>;
+       pinctrl-names = "default";
+       hdmi-phandle = <&hdmi_tx>;
+};
+
+&cvbs_vdac_port {
+       cvbs_vdac_out: endpoint {
+               remote-endpoint = <&cvbs_connector_in>;
+       };
+};
+
+&ethmac {
+       phy-mode = "rmii";
+       phy-handle = <&internal_phy>;
+};
+
+&hdmi_tx {
+       status = "okay";
+       pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
+       pinctrl-names = "default";
+       hdmi-supply = <&hdmi_5v>;
+};
+
+&hdmi_tx_tmds_port {
+       hdmi_tx_tmds_out: endpoint {
+               remote-endpoint = <&hdmi_connector_in>;
+       };
+};
+
+&internal_phy {
+       pinctrl-0 = <&eth_link_led_pins>, <&eth_act_led_pins>;
+       pinctrl-names = "default";
+};
+
+/* This UART is brought out to the DB9 connector */
+&uart_AO {
+       status = "okay";
+};
index 17bcfa4702e17075815fa3fbb37329a7b9dc79af..f58d1790de1cb438cb6c4530648b0a5840f76995 100644 (file)
                 <&reset RESET_HDMI_SYSTEM_RESET>,
                 <&reset RESET_HDMI_TX>;
        reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
-       clocks = <&clkc CLKID_HDMI_PCLK>,
-                <&clkc CLKID_CLK81>,
+       clocks = <&clkc CLKID_HDMI>,
+                <&clkc CLKID_HDMI_PCLK>,
                 <&clkc CLKID_GCLK_VENCI_INT0>;
        clock-names = "isfr", "iahb", "venci";
+       power-domains = <&pwrc PWRC_GXBB_VPU_ID>;
+
+       assigned-clocks = <&clkc CLKID_HDMI_SEL>,
+                         <&clkc CLKID_HDMI>;
+       assigned-clock-parents = <&xtal>, <0>;
+       assigned-clock-rates = <0>, <24000000>;
 };
 
 &sysctrl {
diff --git a/src/arm64/amlogic/meson-gxlx-s905l-p271.dts b/src/arm64/amlogic/meson-gxlx-s905l-p271.dts
new file mode 100644 (file)
index 0000000..1221f45
--- /dev/null
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Christian Hewitt <christianshewitt@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "meson-gxl-s905x.dtsi"
+#include "meson-gx-p23x-q20x.dtsi"
+
+/ {
+       compatible = "amlogic,p271", "amlogic,s905l", "amlogic,meson-gxlx";
+       model = "Amlogic Meson GXLX (S905L) P271 Development Board";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x0 0x40000000>;
+       };
+
+       sound {
+               model = "P271";
+       };
+};
+
+&apb {
+       mali: gpu@c0000 {
+               /* Mali 450-MP2 */
+               interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "gp", "gpmmu", "pp", "pmu",
+                       "pp0", "ppmmu0", "pp1", "ppmmu1";
+       };
+};
+
+&saradc {
+       compatible = "amlogic,meson-gxlx-saradc", "amlogic,meson-saradc";
+};
+
+&usb {
+       dr_mode = "host";
+};
+
+&vdec {
+       compatible = "amlogic,gxlx-vdec", "amlogic,gx-vdec";
+};
index 10896f9df682d8c59afa9db032ab49e01d568392..b686eacb966207e2d17b0c10e68daea25ee6babf 100644 (file)
                                        };
                                };
 
+                               pwm_a_pins1: pwm-a-pins1 {
+                                       mux {
+                                               groups = "pwm_a_d";
+                                               function = "pwm_a";
+                                       };
+                               };
+
+                               pwm_a_pins2: pwm-a-pins2 {
+                                       mux {
+                                               groups = "pwm_a_x";
+                                               function = "pwm_a";
+                                       };
+                               };
+
+                               pwm_b_pins1: pwm-b-pins1 {
+                                       mux {
+                                               groups = "pwm_b_d";
+                                               function = "pwm_b";
+                                       };
+                               };
+
+                               pwm_b_pins2: pwm-b-pins2 {
+                                       mux {
+                                               groups = "pwm_b_x";
+                                               function = "pwm_b";
+                                       };
+                               };
+
+                               pwm_c_pins1: pwm-c-pins1 {
+                                       mux {
+                                               groups = "pwm_c_d";
+                                               function = "pwm_c";
+                                       };
+                               };
+
+                               pwm_c_pins2: pwm-c-pins2 {
+                                       mux {
+                                               groups = "pwm_c_x";
+                                               function = "pwm_c";
+                                       };
+                               };
+
+                               pwm_d_pins1: pwm-d-pins1 {
+                                       mux {
+                                               groups = "pwm_d_d";
+                                               function = "pwm_d";
+                                       };
+                               };
+
+                               pwm_d_pins2: pwm-d-pins2 {
+                                       mux {
+                                               groups = "pwm_d_h";
+                                               function = "pwm_d";
+                                       };
+                               };
+
+                               pwm_e_pins1: pwm-e-pins1 {
+                                       mux {
+                                               groups = "pwm_e_x";
+                                               function = "pwm_e";
+                                       };
+                               };
+
+                               pwm_e_pins2: pwm-e-pins2 {
+                                       mux {
+                                               groups = "pwm_e_z";
+                                               function = "pwm_e";
+                                       };
+                               };
+
+                               pwm_f_pins1: pwm-f-pins1 {
+                                       mux {
+                                               groups = "pwm_f_x";
+                                               function = "pwm_f";
+                                       };
+                               };
+
+                               pwm_f_pins2: pwm-f-pins2 {
+                                       mux {
+                                               groups = "pwm_f_z";
+                                               function = "pwm_f";
+                                       };
+                               };
+
+                               pwm_g_pins1: pwm-g-pins1 {
+                                       mux {
+                                               groups = "pwm_g_d";
+                                               function = "pwm_g";
+                                       };
+                               };
+
+                               pwm_g_pins2: pwm-g-pins2 {
+                                       mux {
+                                               groups = "pwm_g_z";
+                                               function = "pwm_g";
+                                       };
+                               };
+
+                               pwm_h_pins: pwm-h-pins {
+                                       mux {
+                                               groups = "pwm_h";
+                                               function = "pwm_h";
+                                       };
+                               };
+
+                               pwm_i_pins1: pwm-i-pins1 {
+                                       mux {
+                                               groups = "pwm_i_d";
+                                               function = "pwm_i";
+                                       };
+                               };
+
+                               pwm_i_pins2: pwm-i-pins2 {
+                                       mux {
+                                               groups = "pwm_i_h";
+                                               function = "pwm_i";
+                                       };
+                               };
+
+                               pwm_j_pins: pwm-j-pins {
+                                       mux {
+                                               groups = "pwm_j";
+                                               function = "pwm_j";
+                                       };
+                               };
+
+                               pwm_a_hiz_pins: pwm-a-hiz-pins {
+                                       mux {
+                                               groups = "pwm_a_hiz";
+                                               function = "pwm_a_hiz";
+                                       };
+                               };
+
+                               pwm_b_hiz_pins: pwm-b-hiz-pins {
+                                       mux {
+                                               groups = "pwm_b_hiz";
+                                               function = "pwm_b_hiz";
+                                       };
+                               };
+
+                               pwm_c_hiz_pins: pwm-c-hiz-pins {
+                                       mux {
+                                               groups = "pwm_c_hiz";
+                                               function = "pwm_c_hiz";
+                                       };
+                               };
+
+                               pwm_g_hiz_pins: pwm-g-hiz-pins {
+                                       mux {
+                                               groups = "pwm_g_hiz";
+                                               function = "pwm_g_hiz";
+                                       };
+                               };
+
                                spicc0_pins_x: spicc0-pins_x {
                                        mux {
                                                groups = "spi_a_mosi_x",
                                status = "disabled";
                        };
 
+                       pwm_ab: pwm@58000 {
+                               compatible = "amlogic,meson-s4-pwm";
+                               reg = <0x0 0x58000 0x0 0x24>;
+                               clocks = <&clkc_periphs CLKID_PWM_A>,
+                                        <&clkc_periphs CLKID_PWM_B>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       pwm_cd: pwm@5a000 {
+                               compatible = "amlogic,meson-s4-pwm";
+                               reg = <0x0 0x5a000 0x0 0x24>;
+                               clocks = <&clkc_periphs CLKID_PWM_C>,
+                                        <&clkc_periphs CLKID_PWM_D>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       pwm_ef: pwm@5c000 {
+                               compatible = "amlogic,meson-s4-pwm";
+                               reg = <0x0 0x5c000 0x0 0x24>;
+                               clocks = <&clkc_periphs CLKID_PWM_E>,
+                                        <&clkc_periphs CLKID_PWM_F>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       pwm_gh: pwm@5e000 {
+                               compatible = "amlogic,meson-s4-pwm";
+                               reg = <0x0 0x5e000 0x0 0x24>;
+                               clocks = <&clkc_periphs CLKID_PWM_G>,
+                                        <&clkc_periphs CLKID_PWM_H>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       pwm_ij: pwm@60000 {
+                               compatible = "amlogic,meson-s4-pwm";
+                               reg = <0x0 0x60000 0x0 0x24>;
+                               clocks = <&clkc_periphs CLKID_PWM_I>,
+                                        <&clkc_periphs CLKID_PWM_J>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
                        i2c0: i2c@66000 {
                                compatible = "amlogic,meson-axg-i2c";
                                reg = <0x0 0x66000 0x0 0x20>;
index 643f94d9d08e107a7c1ea6f689a910f06804e342..97e4b52066dcf205156b3525cbf411650635af14 100644 (file)
                compatible = "amlogic,axg-tdm-iface";
                #sound-dai-cells = <0>;
                sound-name-prefix = "TDM_A";
-               clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>,
-                        <&clkc_audio AUD_CLKID_MST_A_SCLK>,
-                        <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
-               clock-names = "mclk", "sclk", "lrclk";
+               clocks = <&clkc_audio AUD_CLKID_MST_A_SCLK>,
+                        <&clkc_audio AUD_CLKID_MST_A_LRCLK>,
+                        <&clkc_audio AUD_CLKID_MST_A_MCLK>;
+               clock-names = "sclk", "lrclk", "mclk";
                status = "disabled";
        };
 
                compatible = "amlogic,axg-tdm-iface";
                #sound-dai-cells = <0>;
                sound-name-prefix = "TDM_B";
-               clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>,
-                        <&clkc_audio AUD_CLKID_MST_B_SCLK>,
-                        <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
-               clock-names = "mclk", "sclk", "lrclk";
+               clocks = <&clkc_audio AUD_CLKID_MST_B_SCLK>,
+                        <&clkc_audio AUD_CLKID_MST_B_LRCLK>,
+                        <&clkc_audio AUD_CLKID_MST_B_MCLK>;
+               clock-names = "sclk", "lrclk", "mclk";
                status = "disabled";
        };
 
                compatible = "amlogic,axg-tdm-iface";
                #sound-dai-cells = <0>;
                sound-name-prefix = "TDM_C";
-               clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>,
-                        <&clkc_audio AUD_CLKID_MST_C_SCLK>,
-                        <&clkc_audio AUD_CLKID_MST_C_LRCLK>;
-               clock-names = "mclk", "sclk", "lrclk";
+               clocks = <&clkc_audio AUD_CLKID_MST_C_SCLK>,
+                        <&clkc_audio AUD_CLKID_MST_C_LRCLK>,
+                        <&clkc_audio AUD_CLKID_MST_C_MCLK>;
+               clock-names = "sclk", "lrclk", "mclk";
                status = "disabled";
        };
 
                };
 
                tdmin_a: audio-controller@300 {
-                       compatible = "amlogic,sm1-tdmin",
-                                    "amlogic,axg-tdmin";
+                       compatible = "amlogic,sm1-tdmin";
                        reg = <0x0 0x300 0x0 0x40>;
                        sound-name-prefix = "TDMIN_A";
                        resets = <&clkc_audio AUD_RESET_TDMIN_A>;
                };
 
                tdmin_b: audio-controller@340 {
-                       compatible = "amlogic,sm1-tdmin",
-                                    "amlogic,axg-tdmin";
+                       compatible = "amlogic,sm1-tdmin";
                        reg = <0x0 0x340 0x0 0x40>;
                        sound-name-prefix = "TDMIN_B";
                        resets = <&clkc_audio AUD_RESET_TDMIN_B>;
                };
 
                tdmin_c: audio-controller@380 {
-                       compatible = "amlogic,sm1-tdmin",
-                                    "amlogic,axg-tdmin";
+                       compatible = "amlogic,sm1-tdmin";
                        reg = <0x0 0x380 0x0 0x40>;
                        sound-name-prefix = "TDMIN_C";
                        resets = <&clkc_audio AUD_RESET_TDMIN_C>;
                };
 
                tdmin_lb: audio-controller@3c0 {
-                       compatible = "amlogic,sm1-tdmin",
-                                    "amlogic,axg-tdmin";
+                       compatible = "amlogic,sm1-tdmin";
                        reg = <0x0 0x3c0 0x0 0x40>;
                        sound-name-prefix = "TDMIN_LB";
                        resets = <&clkc_audio AUD_RESET_TDMIN_LB>;
                };
 
                spdifin: audio-controller@400 {
-                       compatible = "amlogic,g12a-spdifin",
+                       compatible = "amlogic,sm1-spdifin",
                                     "amlogic,axg-spdifin";
                        reg = <0x0 0x400 0x0 0x30>;
                        #sound-dai-cells = <0>;
                };
 
                spdifout_a: audio-controller@480 {
-                       compatible = "amlogic,g12a-spdifout",
+                       compatible = "amlogic,sm1-spdifout",
                                     "amlogic,axg-spdifout";
                        reg = <0x0 0x480 0x0 0x50>;
                        #sound-dai-cells = <0>;
                     "amlogic,meson-gpio-intc";
 };
 
+&hdmi_tx {
+       power-domains = <&pwrc PWRC_SM1_VPU_ID>;
+};
+
 &pcie {
        power-domains = <&pwrc PWRC_SM1_PCIE_ID>;
 };
index 6e05cf1a3df653772c166d21e8b13f9268088c31..b1160780a2a6f9e93d42f19e96fbb00d95754eec 100644 (file)
@@ -32,7 +32,7 @@
        };
 
        poweroff_mbox: poweroff_mbox@10548000 {
-               compatible = "syscon";
+               compatible = "apm,merlin-poweroff-mailbox", "syscon";
                reg = <0x0 0x10548000 0x0 0x30>;
        };
 
index e7644cddf06ff93884b8be592cfcf4446acf05f7..2ef658796746b8c479b544b3a905f90c2ade4466 100644 (file)
@@ -32,7 +32,7 @@
        };
 
        poweroff_mbox: poweroff_mbox@10548000 {
-               compatible = "syscon";
+               compatible = "apm,mustang-poweroff-mailbox", "syscon";
                reg = <0x0 0x10548000 0x0 0x30>;
        };
 
index 901a7fc83307ae123056beb1dbf14ff288cf9922..abd01356299581e7bc8fb939856deb6a186479bc 100644 (file)
@@ -21,7 +21,7 @@
                reg-io-width = <2>;
        };
 
-       vmmc_v3_3d: fixed_v3_3d {
+       vmmc_v3_3d: regulator-vmmc {
                compatible = "regulator-fixed";
                regulator-name = "vmmc_supply";
                regulator-min-microvolt = <3300000>;
index 6ad7829f9e28509f534a87a972aa3b1b369e2cb8..bb9b96fb531440c08258c268df39b491eed5a448 100644 (file)
                cache-sets = <1024>;
        };
 
-       refclk100mhz: refclk100mhz {
+       refclk100mhz: clock-100000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <100000000>;
                clock-output-names = "apb_pclk";
        };
 
-       smbclk: refclk24mhzx2 {
+       smbclk: clock-48000000 {
                /* Reference 24MHz clock x 2 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
@@ -83,7 +83,7 @@
                             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
        };
 
-       uartclk: uartclk {
+       uartclk: clock-50000000 {
                /* UART clock - 50MHz */
                compatible = "fixed-clock";
                #clock-cells = <0>;
index 7b41537731a6aec17fee92655a52ab132aaefd36..93f1e7c026b8c3e6a4c221c11f5f20ea8b882dbf 100644 (file)
                timeout-sec = <30>;
        };
 
-       v2m_clk24mhz: clk24mhz {
+       v2m_clk24mhz: clock-24000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <24000000>;
                clock-output-names = "v2m:clk24mhz";
        };
 
-       v2m_refclk1mhz: refclk1mhz {
+       v2m_refclk1mhz: clock-1000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <1000000>;
                clock-output-names = "v2m:refclk1mhz";
        };
 
-       v2m_refclk32khz: refclk32khz {
+       v2m_refclk32khz: clock-32768 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <32768>;
index 60472d65a35574033dbcc0eba024d4231a738629..85f1c15cc65d06187a74d19570c6fbd0ac32e5c8 100644 (file)
                iommu-map = <0x0 &smmu 0x0 0x10000>;
 
                dma-coherent;
+               ats-supported;
        };
 
        smmu: iommu@2b400000 {
index 98ed2b329ed61204672fe011a1b242c4d8ac5690..055764d0b9e5ad82b02aa4f476abdf5a7e542524 100644 (file)
                dma-coherent;
                /* The SMMU is only really of interest to bare-metal hypervisors */
                /* iommus = <&smmu_gpu 0>; */
-               status = "disabled";
        };
 
        sram: sram@2e000000 {
index 2870b5eeb198430aca0ee9301411a56e5aafaa2d..6d7d88e9591ad5f129cbafcb89a38661152214c4 100644 (file)
@@ -8,35 +8,35 @@
  */
 / {
        /* SoC fixed clocks */
-       soc_uartclk: refclk7372800hz {
+       soc_uartclk: clock-7372800 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <7372800>;
                clock-output-names = "juno:uartclk";
        };
 
-       soc_usb48mhz: clk48mhz {
+       soc_usb48mhz: clock-48000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <48000000>;
                clock-output-names = "clk48mhz";
        };
 
-       soc_smc50mhz: clk50mhz {
+       soc_smc50mhz: clock-50000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <50000000>;
                clock-output-names = "smc_clk";
        };
 
-       soc_refclk100mhz: refclk100mhz {
+       soc_refclk100mhz: clock-100000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <100000000>;
                clock-output-names = "apb_pclk";
        };
 
-       soc_faxiclk: refclk400mhz {
+       soc_faxiclk: clock-400000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <400000000>;
index be42932f7e21e505310ce700d87f9fe55953ea4d..ffa4ba4f1fbcd524c37ee06f348ca87f9b29fbaa 100644 (file)
@@ -8,35 +8,35 @@
  */
 
 / {
-       mb_clk24mhz: clk24mhz {
+       mb_clk24mhz: clock-24000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <24000000>;
                clock-output-names = "juno_mb:clk24mhz";
        };
 
-       mb_clk25mhz: clk25mhz {
+       mb_clk25mhz: clock-25000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <25000000>;
                clock-output-names = "juno_mb:clk25mhz";
        };
 
-       v2m_refclk1mhz: refclk1mhz {
+       v2m_refclk1mhz: clock-1000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <1000000>;
                clock-output-names = "juno_mb:refclk1mhz";
        };
 
-       v2m_refclk32khz: refclk32khz {
+       v2m_refclk32khz: clock-32768 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <32768>;
                clock-output-names = "juno_mb:refclk32khz";
        };
 
-       mb_fixed_3v3: mcc-sb-3v3 {
+       mb_fixed_3v3: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "MCC_SB_3V3";
                regulator-min-microvolt = <3300000>;
                                };
 
                                apbregs@10000 {
-                                       compatible = "syscon", "simple-mfd";
+                                       compatible = "arm,juno-fpga-apb-regs",
+                                                    "syscon", "simple-mfd";
                                        reg = <0x010000 0x1000>;
                                        ranges = <0x0 0x10000 0x1000>;
                                        #address-cells = <1>;
index ba8beef3fe99e55bbd6d43da6adaba74243fa27e..66b1b74d27dc1e82a0cd119f513c999023563d18 100644 (file)
@@ -8,28 +8,28 @@
  * VEMotherBoard.lisa
  */
 / {
-       v2m_clk24mhz: clk24mhz {
+       v2m_clk24mhz: clock-24000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <24000000>;
                clock-output-names = "v2m:clk24mhz";
        };
 
-       v2m_refclk1mhz: refclk1mhz {
+       v2m_refclk1mhz: clock-1000000 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <1000000>;
                clock-output-names = "v2m:refclk1mhz";
        };
 
-       v2m_refclk32khz: refclk32khz {
+       v2m_refclk32khz: clock-32768 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <32768>;
                clock-output-names = "v2m:refclk32khz";
        };
 
-       v2m_fixed_3v3: v2m-3v3 {
+       v2m_fixed_3v3: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "3V3";
                regulator-min-microvolt = <3300000>;
@@ -41,7 +41,7 @@
                compatible = "arm,vexpress,config-bus";
                arm,vexpress,config-bridge = <&v2m_sysreg>;
 
-               v2m_oscclk1: oscclk1 {
+               v2m_oscclk1: clock-controller {
                        /* CLCD clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 1>;
index 9115c99d0dc02c8d47eb0f3ac2e0cdfcfa3bfc78..a0e1fa83eafa704ec8b45cd7a10f76baf233a982 100644 (file)
                compatible = "arm,vexpress,config-bus";
                arm,vexpress,config-bridge = <&v2m_sysreg>;
 
-               smbclk: smclk {
+               smbclk: clock-controller {
                        /* SMC clock */
                        compatible = "arm,vexpress-osc";
                        arm,vexpress-sysreg,func = <1 4>;
                        clock-output-names = "smclk";
                };
 
-               volt-vio {
+               regulator-vio {
                        /* VIO to expansion board above */
                        compatible = "arm,vexpress-volt";
                        arm,vexpress-sysreg,func = <2 0>;
                        regulator-always-on;
                };
 
-               volt-12v {
+               regulator-12v {
                        /* 12V from power connector J6 */
                        compatible = "arm,vexpress-volt";
                        arm,vexpress-sysreg,func = <2 1>;
index 0706c8534cebf242df06af57c531b06a51307cb2..f1c8b4613cbc60f3bd756e14230f1431158afa24 100644 (file)
                        interrupts = <GIC_SPI 451 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               trng: rng@12081400 {
+                       compatible = "samsung,exynos850-trng";
+                       reg = <0x12081400 0x100>;
+                       clocks = <&cmu_core CLK_GOUT_SSS_ACLK>,
+                                <&cmu_core CLK_GOUT_SSS_PCLK>;
+                       clock-names = "secss", "pclk";
+               };
+
                pinctrl_hsi: pinctrl@13430000 {
                        compatible = "samsung,exynos850-pinctrl";
                        reg = <0x13430000 0x1000>;
index 5e8ffe065081b7260f2b2d89de2006d9183083c2..387fb779bd29ea3812331a7951f03b181c5fe659 100644 (file)
 };
 
 &usbdrd31 {
-       status = "okay";
        vdd10-supply = <&reg_placeholder>;
        vdd33-supply = <&reg_placeholder>;
+       status = "okay";
 };
 
 &usbdrd31_dwc3 {
 };
 
 &usbdrd31_phy {
+       /* TODO: Update these once PMIC is implemented */
+       pll-supply = <&reg_placeholder>;
+       dvdd-usb20-supply = <&reg_placeholder>;
+       vddh-usb20-supply = <&reg_placeholder>;
+       vdd33-usb20-supply = <&reg_placeholder>;
+       vdda-usbdp-supply = <&reg_placeholder>;
+       vddh-usbdp-supply = <&reg_placeholder>;
        status = "okay";
 };
 
index a66e996666b8785cf76c2d05ae6763eb068dd9f8..eadb8822e6d4fdfafaa15656ed1fa27ab8f8a47d 100644 (file)
 
        pmu-3 {
                compatible = "arm,dsu-pmu";
-               interrupts = <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH 0>;
                cpus = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>,
                       <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>;
+               interrupts = <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH 0>;
        };
 
        psci {
                        compatible = "google,gs101-mct",
                                     "samsung,exynos4210-mct";
                        reg = <0x10050000 0x800>;
+                       clocks = <&ext_24_5m>, <&cmu_misc CLK_GOUT_MISC_MCT_PCLK>;
+                       clock-names = "fin_pll", "mct";
                        interrupts = <GIC_SPI 753 IRQ_TYPE_LEVEL_HIGH 0>,
                                     <GIC_SPI 754 IRQ_TYPE_LEVEL_HIGH 0>,
                                     <GIC_SPI 755 IRQ_TYPE_LEVEL_HIGH 0>,
                                     <GIC_SPI 762 IRQ_TYPE_LEVEL_HIGH 0>,
                                     <GIC_SPI 763 IRQ_TYPE_LEVEL_HIGH 0>,
                                     <GIC_SPI 764 IRQ_TYPE_LEVEL_HIGH 0>;
-                       clocks = <&ext_24_5m>, <&cmu_misc CLK_GOUT_MISC_MCT_PCLK>;
-                       clock-names = "fin_pll", "mct";
                };
 
                watchdog_cl0: watchdog@10060000 {
                        compatible = "google,gs101-wdt";
                        reg = <0x10060000 0x100>;
-                       interrupts = <GIC_SPI 765 IRQ_TYPE_LEVEL_HIGH 0>;
                        clocks = <&cmu_misc CLK_GOUT_MISC_WDT_CLUSTER0_PCLK>,
                                 <&ext_24_5m>;
                        clock-names = "watchdog", "watchdog_src";
+                       interrupts = <GIC_SPI 765 IRQ_TYPE_LEVEL_HIGH 0>;
                        samsung,syscon-phandle = <&pmu_system_controller>;
                        samsung,cluster-index = <0>;
                        status = "disabled";
                watchdog_cl1: watchdog@10070000 {
                        compatible = "google,gs101-wdt";
                        reg = <0x10070000 0x100>;
-                       interrupts = <GIC_SPI 766 IRQ_TYPE_LEVEL_HIGH 0>;
                        clocks = <&cmu_misc CLK_GOUT_MISC_WDT_CLUSTER1_PCLK>,
                                 <&ext_24_5m>;
                        clock-names = "watchdog", "watchdog_src";
+                       interrupts = <GIC_SPI 766 IRQ_TYPE_LEVEL_HIGH 0>;
                        samsung,syscon-phandle = <&pmu_system_controller>;
                        samsung,cluster-index = <1>;
                        status = "disabled";
                                compatible = "google,gs101-hsi2c",
                                             "samsung,exynosautov9-hsi2c";
                                reg = <0x10970000 0xc0>;
-                               interrupts = <GIC_SPI 642 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_7>,
                                         <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_7>;
                                clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 642 IRQ_TYPE_LEVEL_HIGH 0>;
                                pinctrl-0 = <&hsi2c8_bus>;
                                pinctrl-names = "default";
                                status = "disabled";
                        serial_0: serial@10a00000 {
                                compatible = "google,gs101-uart";
                                reg = <0x10a00000 0xc0>;
-                               interrupts = <GIC_SPI 634 IRQ_TYPE_LEVEL_HIGH 0>;
                                clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_0>,
                                         <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_0>;
                                clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 634 IRQ_TYPE_LEVEL_HIGH 0>;
                                pinctrl-0 = <&uart0_bus>;
                                pinctrl-names = "default";
                                samsung,uart-fifosize = <256>;
                                compatible = "google,gs101-hsi2c",
                                             "samsung,exynosautov9-hsi2c";
                                reg = <0x10d50000 0xc0>;
-                               interrupts = <GIC_SPI 655 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_5>,
                                         <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_5>;
                                clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 655 IRQ_TYPE_LEVEL_HIGH 0>;
                                pinctrl-0 = <&hsi2c12_bus>;
                                pinctrl-names = "default";
                                status = "disabled";
                                 <&cmu_hsi0 CLK_GOUT_HSI0_UASC_HSI0_CTRL_PCLK>,
                                 <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_I_USBDPPHY_SCL_APB_PCLK>;
                        clock-names = "phy", "ref", "ctrl_aclk", "ctrl_pclk", "scl_pclk";
-                       samsung,pmu-syscon = <&pmu_system_controller>;
                        #phy-cells = <1>;
+                       samsung,pmu-syscon = <&pmu_system_controller>;
                        status = "disabled";
                };
 
                usbdrd31: usb@11110000 {
                        compatible = "google,gs101-dwusb3";
+                       ranges = <0x0 0x11110000 0x10000>;
                        clocks = <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_BUS_CLK_EARLY>,
                                <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_I_USB31DRD_SUSPEND_CLK_26>,
                                <&cmu_hsi0 CLK_GOUT_HSI0_UASC_HSI0_LINK_ACLK>,
                        clock-names = "bus_early", "susp_clk", "link_aclk", "link_pclk";
                        #address-cells = <1>;
                        #size-cells = <1>;
-                       ranges = <0x0 0x11110000 0x10000>;
                        status = "disabled";
 
                        usbdrd31_dwc3: usb@0 {
                                compatible = "snps,dwc3";
+                               reg = <0x0 0x10000>;
                                clocks = <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_I_USB31DRD_REF_CLK_40>;
                                clock-names = "ref";
-                               reg = <0x0 0x10000>;
                                interrupts = <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH 0>;
                                phys = <&usbdrd31_phy 0>, <&usbdrd31_phy 1>;
                                phy-names = "usb2-phy", "usb3-phy";
index a0f7bbd691a0047f5810aff4a34958cdc5dc75cf..e61ea7e0737e42b7cc78671edc587fd59e6dcaa2 100644 (file)
 
        timer {
                compatible = "arm,armv8-timer";
-               interrupts = <1 13 IRQ_TYPE_LEVEL_LOW>,/* Physical Secure PPI */
-                            <1 14 IRQ_TYPE_LEVEL_LOW>,/* Physical Non-Secure PPI */
-                            <1 11 IRQ_TYPE_LEVEL_LOW>,/* Virtual PPI */
-                            <1 10 IRQ_TYPE_LEVEL_LOW>;/* Hypervisor PPI */
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,/* Physical Secure PPI */
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,/* Physical Non-Secure PPI */
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,/* Virtual PPI */
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;/* Hypervisor PPI */
        };
 
        pmu {
                compatible = "arm,cortex-a53-pmu";
-               interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
        };
 
        gic: interrupt-controller@1400000 {
@@ -93,7 +93,7 @@
                      <0x0 0x1402000 0 0x2000>, /* GICC */
                      <0x0 0x1404000 0 0x2000>, /* GICH */
                      <0x0 0x1406000 0 0x2000>; /* GICV */
-               interrupts = <1 9 IRQ_TYPE_LEVEL_LOW>;
+               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
        };
 
        reboot {
                        status = "disabled";
                };
 
-               esdhc0: esdhc@1560000 {
+               esdhc0: mmc@1560000 {
                        compatible = "fsl,ls1012a-esdhc", "fsl,esdhc";
                        reg = <0x0 0x1560000 0x0 0x10000>;
-                       interrupts = <0 62 0x4>;
+                       interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        voltage-ranges = <1800 1800 3300 3300>;
                        big-endian;
                };
 
-               esdhc1: esdhc@1580000 {
+               esdhc1: mmc@1580000 {
                        compatible = "fsl,ls1012a-esdhc", "fsl,esdhc";
                        reg = <0x0 0x1580000 0x0 0x10000>;
-                       interrupts = <0 65 0x4>;
+                       interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        voltage-ranges = <1800 1800 3300 3300>;
                tmu: tmu@1f00000 {
                        compatible = "fsl,qoriq-tmu";
                        reg = <0x0 0x1f00000 0x0 0x10000>;
-                       interrupts = <0 33 0x4>;
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                        fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x60062>;
                        fsl,tmu-calibration =
                                        <0x00000000 0x00000025>,
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2180000 0x0 0x10000>;
-                       interrupts = <0 56 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
                        scl-gpios = <&gpio0 2 0>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2190000 0x0 0x10000>;
-                       interrupts = <0 57 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
                        scl-gpios = <&gpio0 13 0>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2100000 0x0 0x10000>;
-                       interrupts = <0 64 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "dspi";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                duart0: serial@21c0500 {
                        compatible = "fsl,ns16550", "ns16550a";
                        reg = <0x00 0x21c0500 0x0 0x100>;
-                       interrupts = <0 54 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        status = "disabled";
                duart1: serial@21c0600 {
                        compatible = "fsl,ns16550", "ns16550a";
                        reg = <0x00 0x21c0600 0x0 0x100>;
-                       interrupts = <0 54 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        status = "disabled";
                };
 
                gpio0: gpio@2300000 {
-                       compatible = "fsl,qoriq-gpio";
+                       compatible = "fsl,ls1021a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2300000 0x0 0x10000>;
-                       interrupts = <0 66 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
                };
 
                gpio1: gpio@2310000 {
-                       compatible = "fsl,qoriq-gpio";
+                       compatible = "fsl,ls1021a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2310000 0x0 0x10000>;
-                       interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
                        compatible = "fsl,ls1012a-wdt",
                                     "fsl,imx21-wdt";
                        reg = <0x0 0x2ad0000 0x0 0x10000>;
-                       interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL QORIQ_CLK_PLL_DIV(1)>;
                        big-endian;
                };
                        #sound-dai-cells = <0>;
                        compatible = "fsl,vf610-sai";
                        reg = <0x0 0x2b50000 0x0 0x10000>;
-                       interrupts = <0 148 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>,
                                 <&clockgen QORIQ_CLK_PLATFORM_PLL
                                 <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
-                       dma-names = "tx", "rx";
-                       dmas = <&edma0 1 47>,
-                              <&edma0 1 46>;
+                       dma-names = "rx", "tx";
+                       dmas = <&edma0 1 46>,
+                              <&edma0 1 47>;
                        status = "disabled";
                };
 
                        #sound-dai-cells = <0>;
                        compatible = "fsl,vf610-sai";
                        reg = <0x0 0x2b60000 0x0 0x10000>;
-                       interrupts = <0 149 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>,
                                 <&clockgen QORIQ_CLK_PLATFORM_PLL
                                 <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
-                       dma-names = "tx", "rx";
-                       dmas = <&edma0 1 45>,
-                              <&edma0 1 44>;
+                       dma-names = "rx", "tx";
+                       dmas = <&edma0 1 44>,
+                              <&edma0 1 45>;
                        status = "disabled";
                };
 
                        reg = <0x0 0x2c00000 0x0 0x10000>,
                              <0x0 0x2c10000 0x0 0x10000>,
                              <0x0 0x2c20000 0x0 0x10000>;
-                       interrupts = <0 103 IRQ_TYPE_LEVEL_HIGH>,
-                                    <0 103 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "edma-tx", "edma-err";
                        dma-channels = <32>;
                        big-endian;
                usb0: usb@2f00000 {
                        compatible = "snps,dwc3";
                        reg = <0x0 0x2f00000 0x0 0x10000>;
-                       interrupts = <0 60 0x4>;
+                       interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
                        dr_mode = "host";
                        snps,quirk-frame-length-adjustment = <0x20>;
                        snps,dis_rxdet_inp3_quirk;
                        snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
-                       snps,host-vbus-glitches;
                };
 
                sata: sata@3200000 {
                        reg = <0x0 0x3200000 0x0 0x10000>,
                                <0x0 0x20140520 0x0 0x4>;
                        reg-names = "ahci", "sata-ecc";
-                       interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        dma-coherent;
                usb1: usb@8600000 {
                        compatible = "fsl-usb2-dr-v2.5", "fsl-usb2-dr";
                        reg = <0x0 0x8600000 0x0 0x1000>;
-                       interrupts = <0 139 0x4>;
+                       interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
                        dr_mode = "host";
                        phy_type = "ulpi";
                };
                        compatible = "fsl,ls1012a-msi";
                        reg = <0x0 0x1572000 0x0 0x8>;
                        msi-controller;
-                       interrupts = <0 126 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                pcie1: pcie@3400000 {
                        reg = <0x00 0x03400000 0x0 0x00100000>, /* controller registers */
                              <0x40 0x00000000 0x0 0x00002000>; /* configuration space */
                        reg-names = "regs", "config";
-                       interrupts = <0 118 0x4>, /* controller interrupt */
-                                    <0 117 0x4>; /* PME interrupt */
-                       interrupt-names = "aer", "pme";
+                       interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, /* PME interrupt */
+                                    <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; /* controller interrupt */
+                       interrupt-names = "pme", "aer";
                        #address-cells = <3>;
                        #size-cells = <2>;
                        device_type = "pci";
                        #fsl,rcpm-wakeup-cells = <1>;
                };
 
-               ftm_alarm0: timer@29d0000 {
+               ftm_alarm0: rtc@29d0000 {
                        compatible = "fsl,ls1012a-ftm-alarm";
                        reg = <0x0 0x29d0000 0x0 0x10000>;
                        fsl,rcpm-wakeup = <&rcpm 0x20000>;
index ecd2c1ea177f8febe5832a6624b1bf10a669b8a0..757a34ba7da322627ff7b50e4d7d84efabbc5d15 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
+               i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x0>;
+
+                       /* Atmel AT24C512C-XHD­B: 64 KB EEPROM */
+                       eeprom@50 {
+                               compatible = "atmel,24c512";
+                               reg = <0x50>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                       };
+
+                       /* AT24C04C 512-byte DDR4 SPD EEPROM */
+                       /* Documentation says 0x51, but must be even and i2cdetect says 0x52 */
+                       eeprom@52 {
+                               compatible = "atmel,24c04";
+                               reg = <0x52>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                       };
+
+                       /* Atmel AT24C02C-XHM­B: 256-byte EEPROM */
+                       eeprom@57 {
+                               compatible = "atmel,24c02";
+                               reg = <0x57>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                       };
+               };
+
                i2c@1 {
                        #address-cells = <1>;
                        #size-cells = <0>;
index 70b8731029c4e2cfe5736578cec2cf855125a8e9..acf293310f7a099614c0339ff2a3cf3eae93e453 100644 (file)
        };
 
        thermal-zones {
-               ddr-controller {
+               ddr-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 0>;
                        };
                };
 
-               core-cluster {
+               cluster-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 1>;
                };
 
                pcie_ep1: pcie-ep@3400000 {
-                       compatible = "fsl,ls1028a-pcie-ep","fsl,ls-pcie-ep";
+                       compatible = "fsl,ls1028a-pcie-ep";
                        reg = <0x00 0x03400000 0x0 0x00100000
                               0x80 0x00000000 0x8 0x00000000>;
                        reg-names = "regs", "addr_space";
                };
 
                pcie_ep2: pcie-ep@3500000 {
-                       compatible = "fsl,ls1028a-pcie-ep","fsl,ls-pcie-ep";
+                       compatible = "fsl,ls1028a-pcie-ep";
                        reg = <0x00 0x03500000 0x0 0x00100000
                               0x88 0x00000000 0x8 0x00000000>;
                        reg-names = "regs", "addr_space";
                                     <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "qdma-error", "qdma-queue0",
                                "qdma-queue1", "qdma-queue2", "qdma-queue3";
+                       #dma-cells = <1>;
                        dma-channels = <8>;
                        block-number = <1>;
                        block-offset = <0x10000>;
                malidp0: display@f080000 {
                        compatible = "arm,mali-dp500";
                        reg = <0x0 0xf080000 0x0 0x10000>;
-                       interrupts = <0 222 IRQ_TYPE_LEVEL_HIGH>,
-                                    <0 223 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "DE", "SE";
                        clocks = <&dpclk>,
                                 <&clockgen QORIQ_CLK_HWACCEL 2>,
                                 <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(2)>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
-                       dma-names = "tx", "rx";
-                       dmas = <&edma0 1 4>,
-                              <&edma0 1 3>;
+                       dma-names = "rx", "tx";
+                       dmas = <&edma0 1 3>,
+                              <&edma0 1 4>;
                        fsl,sai-asynchronous;
                        status = "disabled";
                };
                                 <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(2)>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
-                       dma-names = "tx", "rx";
-                       dmas = <&edma0 1 6>,
-                              <&edma0 1 5>;
+                       dma-names = "rx", "tx";
+                       dmas = <&edma0 1 5>,
+                              <&edma0 1 6>;
                        fsl,sai-asynchronous;
                        status = "disabled";
                };
                                 <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(2)>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
-                       dma-names = "tx", "rx";
-                       dmas = <&edma0 1 8>,
-                              <&edma0 1 7>;
+                       dma-names = "rx", "tx";
+                       dmas = <&edma0 1 7>,
+                              <&edma0 1 8>;
                        fsl,sai-asynchronous;
                        status = "disabled";
                };
                                 <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(2)>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
-                       dma-names = "tx", "rx";
-                       dmas = <&edma0 1 10>,
-                              <&edma0 1 9>;
+                       dma-names = "rx", "tx";
+                       dmas = <&edma0 1 9>,
+                              <&edma0 1 10>;
                        fsl,sai-asynchronous;
                        status = "disabled";
                };
                                 <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(2)>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
-                       dma-names = "tx", "rx";
-                       dmas = <&edma0 1 12>,
-                              <&edma0 1 11>;
+                       dma-names = "rx", "tx";
+                       dmas = <&edma0 1 11>,
+                              <&edma0 1 12>;
                        fsl,sai-asynchronous;
                        status = "disabled";
                };
                                 <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(2)>;
                        clock-names = "bus", "mclk1", "mclk2", "mclk3";
-                       dma-names = "tx", "rx";
-                       dmas = <&edma0 1 14>,
-                              <&edma0 1 13>;
+                       dma-names = "rx", "tx";
+                       dmas = <&edma0 1 13>,
+                              <&edma0 1 14>;
                        fsl,sai-asynchronous;
                        status = "disabled";
                };
                tmu: tmu@1f80000 {
                        compatible = "fsl,qoriq-tmu";
                        reg = <0x0 0x1f80000 0x0 0x10000>;
-                       interrupts = <0 23 0x4>;
+                       interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
                        fsl,tmu-range = <0xb0000 0xa0026 0x80048 0x70061>;
                        fsl,tmu-calibration =
                                        <0x00000000 0x00000024>,
                        little-endian;
                };
 
-               ftm_alarm0: timer@2800000 {
+               ftm_alarm0: rtc@2800000 {
                        compatible = "fsl,ls1028a-ftm-alarm";
                        reg = <0x0 0x2800000 0x0 0x10000>;
                        fsl,rcpm-wakeup = <&rcpm 0x0 0x0 0x0 0x0 0x4000 0x0 0x0>;
                        status = "disabled";
                };
 
-               ftm_alarm1: timer@2810000 {
+               ftm_alarm1: rtc@2810000 {
                        compatible = "fsl,ls1028a-ftm-alarm";
                        reg = <0x0 0x2810000 0x0 0x10000>;
                        fsl,rcpm-wakeup = <&rcpm 0x0 0x0 0x0 0x0 0x4000 0x0 0x0>;
index dda27ed7aaf2b15cda135c5c1b3e9a4e8f4cdaff..11b1356e95d5bf2888593ed903907aa719426e68 100644 (file)
@@ -64,7 +64,7 @@
                  0x2 0x0 0x0 0x7fb00000 0x00000100>;
        status = "okay";
 
-       nor@0,0 {
+       flash@0,0 {
                compatible = "cfi-flash";
                reg = <0x0 0x0 0x8000000>;
                big-endian;
index 26f8540cb101b121aec5774b98fd497163494077..c4532c809f0a2c8ed49d945bdeafb751ae843246 100644 (file)
@@ -71,7 +71,7 @@
                  0x1 0x0 0x0 0x7e800000 0x00010000
                  0x2 0x0 0x0 0x7fb00000 0x00000100>;
 
-               nor@0,0 {
+               flash@0,0 {
                        compatible = "cfi-flash";
                        #address-cells = <1>;
                        #size-cells = <1>;
                compatible = "n25q128a13", "jedec,spi-nor";  /* 16MB */
                reg = <0>;
                spi-max-frequency = <1000000>; /* input clock */
+               /*
+                * Standard CS timing properties replace the deprecated vendor
+                * variants below.
+                */
+               spi-cs-setup-delay-ns = <100>;
+               spi-cs-hold-delay-ns = <100>;
                fsl,spi-cs-sck-delay = <100>;
                fsl,spi-sck-cs-delay = <100>;
        };
                compatible = "maxim,ds26522";
                reg = <2>;
                spi-max-frequency = <2000000>;
+               /*
+                * Standard CS timing properties replace the deprecated vendor
+                * variants below.
+                */
+               spi-cs-setup-delay-ns = <100>;
+               spi-cs-hold-delay-ns = <50>;
                fsl,spi-cs-sck-delay = <100>;
                fsl,spi-sck-cs-delay = <50>;
        };
                compatible = "maxim,ds26522";
                reg = <3>;
                spi-max-frequency = <2000000>;
+               /*
+                * Standard CS timing properties replace the deprecated vendor
+                * variants below.
+                */
+               spi-cs-setup-delay-ns = <100>;
+               spi-cs-hold-delay-ns = <50>;
                fsl,spi-cs-sck-delay = <100>;
                fsl,spi-sck-cs-delay = <50>;
        };
index 8ee6d8c0ef6194fb8ba4e1155818e0dc43338722..ab4c919e3e1659b38d799211e59008bd9c0ce833 100644 (file)
        };
 
        thermal-zones {
-               ddr-controller {
+               ddr-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 0>;
                        };
                };
 
-               serdes {
+               serdes-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 1>;
                        };
                };
 
-               fman {
+               fman-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 2>;
                        };
                };
 
-               core-cluster {
+               cluster-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 3>;
                        };
                };
 
-               sec {
+               sec-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 4>;
 
        timer {
                compatible = "arm,armv8-timer";
-               interrupts = <1 13 0xf08>, /* Physical Secure PPI */
-                            <1 14 0xf08>, /* Physical Non-Secure PPI */
-                            <1 11 0xf08>, /* Virtual PPI */
-                            <1 10 0xf08>; /* Hypervisor PPI */
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
                fsl,erratum-a008585;
        };
 
        pmu {
                compatible = "arm,cortex-a53-pmu";
-               interrupts = <0 106 0x4>,
-                            <0 107 0x4>,
-                            <0 95 0x4>,
-                            <0 97 0x4>;
+               interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-affinity = <&cpu0>,
                                     <&cpu1>,
                                     <&cpu2>,
                      <0x0 0x1402000 0 0x2000>, /* GICC */
                      <0x0 0x1404000 0 0x2000>, /* GICH */
                      <0x0 0x1406000 0 0x2000>; /* GICV */
-               interrupts = <1 9 0xf08>;
+               interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
        };
 
        soc: soc {
                        #size-cells = <1>;
                        ranges = <0x0 0x00 0x1700000 0x100000>;
                        reg = <0x00 0x1700000 0x0 0x100000>;
-                       interrupts = <0 75 0x4>;
+                       interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
                        dma-coherent;
 
                        sec_jr0: jr@10000 {
                                             "fsl,sec-v5.0-job-ring",
                                             "fsl,sec-v4.0-job-ring";
                                reg = <0x10000 0x10000>;
-                               interrupts = <0 71 0x4>;
+                               interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
                        sec_jr1: jr@20000 {
                                             "fsl,sec-v5.0-job-ring",
                                             "fsl,sec-v4.0-job-ring";
                                reg = <0x20000 0x10000>;
-                               interrupts = <0 72 0x4>;
+                               interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
                        sec_jr2: jr@30000 {
                                             "fsl,sec-v5.0-job-ring",
                                             "fsl,sec-v4.0-job-ring";
                                reg = <0x30000 0x10000>;
-                               interrupts = <0 73 0x4>;
+                               interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
                        sec_jr3: jr@40000 {
                                             "fsl,sec-v5.0-job-ring",
                                             "fsl,sec-v4.0-job-ring";
                                reg = <0x40000 0x10000>;
-                               interrupts = <0 74 0x4>;
+                               interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
 
                ifc: memory-controller@1530000 {
                        compatible = "fsl,ifc";
                        reg = <0x0 0x1530000 0x0 0x10000>;
-                       interrupts = <0 43 0x4>;
+                       interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                qspi: spi@1550000 {
                        reg = <0x0 0x1550000 0x0 0x10000>,
                                <0x0 0x40000000 0x0 0x4000000>;
                        reg-names = "QuadSPI", "QuadSPI-memory";
-                       interrupts = <0 99 0x4>;
+                       interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "qspi_en", "qspi";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>,
                        status = "disabled";
                };
 
-               esdhc: esdhc@1560000 {
+               esdhc: mmc@1560000 {
                        compatible = "fsl,ls1043a-esdhc", "fsl,esdhc";
                        reg = <0x0 0x1560000 0x0 0x10000>;
-                       interrupts = <0 62 0x4>;
+                       interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
                        clock-frequency = <0>;
                        voltage-ranges = <1800 1800 3300 3300>;
                        sdhci,auto-cmd12;
                ddr: memory-controller@1080000 {
                        compatible = "fsl,qoriq-memory-controller";
                        reg = <0x0 0x1080000 0x0 0x1000>;
-                       interrupts = <0 144 0x4>;
+                       interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
                        big-endian;
                };
 
                tmu: tmu@1f00000 {
                        compatible = "fsl,qoriq-tmu";
                        reg = <0x0 0x1f00000 0x0 0x10000>;
-                       interrupts = <0 33 0x4>;
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                        fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x70062>;
                        fsl,tmu-calibration =
                                        <0x00000000 0x00000023>,
                        memory-region = <&bman_fbpr>;
                };
 
-               bportals: bman-portals@508000000 {
+               bportals: bman-portals-bus@508000000 {
                        ranges = <0x0 0x5 0x08000000 0x8000000>;
                };
 
-               qportals: qman-portals@500000000 {
+               qportals: qman-portals-bus@500000000 {
                        ranges = <0x0 0x5 0x00000000 0x8000000>;
                };
 
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2100000 0x0 0x10000>;
-                       interrupts = <0 64 0x4>;
+                       interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "dspi";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2180000 0x0 0x10000>;
-                       interrupts = <0 56 0x4>;
-                       clock-names = "i2c";
+                       interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        dmas = <&edma0 1 38>,
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2190000 0x0 0x10000>;
-                       interrupts = <0 57 0x4>;
-                       clock-names = "i2c";
+                       interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        scl-gpios = <&gpio4 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x21a0000 0x0 0x10000>;
-                       interrupts = <0 58 0x4>;
-                       clock-names = "i2c";
+                       interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        scl-gpios = <&gpio4 10 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x21b0000 0x0 0x10000>;
-                       interrupts = <0 59 0x4>;
-                       clock-names = "i2c";
+                       interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        scl-gpios = <&gpio4 12 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                duart0: serial@21c0500 {
                        compatible = "fsl,ns16550", "ns16550a";
                        reg = <0x00 0x21c0500 0x0 0x100>;
-                       interrupts = <0 54 0x4>;
+                       interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                };
                duart1: serial@21c0600 {
                        compatible = "fsl,ns16550", "ns16550a";
                        reg = <0x00 0x21c0600 0x0 0x100>;
-                       interrupts = <0 54 0x4>;
+                       interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                };
                duart2: serial@21d0500 {
                        compatible = "fsl,ns16550", "ns16550a";
                        reg = <0x0 0x21d0500 0x0 0x100>;
-                       interrupts = <0 55 0x4>;
+                       interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                };
                duart3: serial@21d0600 {
                        compatible = "fsl,ns16550", "ns16550a";
                        reg = <0x0 0x21d0600 0x0 0x100>;
-                       interrupts = <0 55 0x4>;
+                       interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                };
                gpio1: gpio@2300000 {
                        compatible = "fsl,ls1043a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2300000 0x0 0x10000>;
-                       interrupts = <0 66 0x4>;
+                       interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
                gpio2: gpio@2310000 {
                        compatible = "fsl,ls1043a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2310000 0x0 0x10000>;
-                       interrupts = <0 67 0x4>;
+                       interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
                gpio3: gpio@2320000 {
                        compatible = "fsl,ls1043a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2320000 0x0 0x10000>;
-                       interrupts = <0 68 0x4>;
+                       interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
                gpio4: gpio@2330000 {
                        compatible = "fsl,ls1043a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2330000 0x0 0x10000>;
-                       interrupts = <0 134 0x4>;
+                       interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
                lpuart0: serial@2950000 {
                        compatible = "fsl,ls1021a-lpuart";
                        reg = <0x0 0x2950000 0x0 0x1000>;
-                       interrupts = <0 48 0x4>;
+                       interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_SYSCLK 0>;
                        clock-names = "ipg";
                        status = "disabled";
                lpuart1: serial@2960000 {
                        compatible = "fsl,ls1021a-lpuart";
                        reg = <0x0 0x2960000 0x0 0x1000>;
-                       interrupts = <0 49 0x4>;
+                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        clock-names = "ipg";
                lpuart2: serial@2970000 {
                        compatible = "fsl,ls1021a-lpuart";
                        reg = <0x0 0x2970000 0x0 0x1000>;
-                       interrupts = <0 50 0x4>;
+                       interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        clock-names = "ipg";
                lpuart3: serial@2980000 {
                        compatible = "fsl,ls1021a-lpuart";
                        reg = <0x0 0x2980000 0x0 0x1000>;
-                       interrupts = <0 51 0x4>;
+                       interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        clock-names = "ipg";
                lpuart4: serial@2990000 {
                        compatible = "fsl,ls1021a-lpuart";
                        reg = <0x0 0x2990000 0x0 0x1000>;
-                       interrupts = <0 52 0x4>;
+                       interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        clock-names = "ipg";
                lpuart5: serial@29a0000 {
                        compatible = "fsl,ls1021a-lpuart";
                        reg = <0x0 0x29a0000 0x0 0x1000>;
-                       interrupts = <0 53 0x4>;
+                       interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
                        clock-names = "ipg";
                wdog0: watchdog@2ad0000 {
                        compatible = "fsl,ls1043a-wdt", "fsl,imx21-wdt";
                        reg = <0x0 0x2ad0000 0x0 0x10000>;
-                       interrupts = <0 83 0x4>;
+                       interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(1)>;
-                       clock-names = "wdog";
                        big-endian;
                };
 
                        reg = <0x0 0x2c00000 0x0 0x10000>,
                              <0x0 0x2c10000 0x0 0x10000>,
                              <0x0 0x2c20000 0x0 0x10000>;
-                       interrupts = <0 103 0x4>,
-                                    <0 103 0x4>;
+                       interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "edma-tx", "edma-err";
                        dma-channels = <32>;
                        big-endian;
                                            QORIQ_CLK_PLL_DIV(1)>;
                };
 
-               aux_bus: aux_bus {
+               aux_bus: aux-bus {
                        #address-cells = <2>;
                        #size-cells = <2>;
                        compatible = "simple-bus";
                        usb0: usb@2f00000 {
                                compatible = "snps,dwc3";
                                reg = <0x0 0x2f00000 0x0 0x10000>;
-                               interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
                                dr_mode = "host";
                                snps,quirk-frame-length-adjustment = <0x20>;
                                snps,dis_rxdet_inp3_quirk;
                        usb1: usb@3000000 {
                                compatible = "snps,dwc3";
                                reg = <0x0 0x3000000 0x0 0x10000>;
-                               interrupts = <0 61 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
                                dr_mode = "host";
                                snps,quirk-frame-length-adjustment = <0x20>;
                                snps,dis_rxdet_inp3_quirk;
                        usb2: usb@3100000 {
                                compatible = "snps,dwc3";
                                reg = <0x0 0x3100000 0x0 0x10000>;
-                               interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
                                dr_mode = "host";
                                snps,quirk-frame-length-adjustment = <0x20>;
                                snps,dis_rxdet_inp3_quirk;
                                reg = <0x0 0x3200000 0x0 0x10000>,
                                        <0x0 0x20140520 0x0 0x4>;
                                reg-names = "ahci", "sata-ecc";
-                               interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                                    QORIQ_CLK_PLL_DIV(1)>;
                                dma-coherent;
                        compatible = "fsl,ls1043a-msi";
                        reg = <0x0 0x1571000 0x0 0x8>;
                        msi-controller;
-                       interrupts = <0 116 0x4>;
+                       interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                msi2: msi-controller2@1572000 {
                        compatible = "fsl,ls1043a-msi";
                        reg = <0x0 0x1572000 0x0 0x8>;
                        msi-controller;
-                       interrupts = <0 126 0x4>;
+                       interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                msi3: msi-controller3@1573000 {
                        compatible = "fsl,ls1043a-msi";
                        reg = <0x0 0x1573000 0x0 0x8>;
                        msi-controller;
-                       interrupts = <0 160 0x4>;
+                       interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                pcie1: pcie@3400000 {
                        reg = <0x00 0x03400000 0x0 0x00100000>, /* controller registers */
                              <0x40 0x00000000 0x0 0x00002000>; /* configuration space */
                        reg-names = "regs", "config";
-                       interrupts = <0 117 IRQ_TYPE_LEVEL_HIGH>,
-                                    <0 118 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "pme", "aer";
                        #address-cells = <3>;
                        #size-cells = <2>;
                        reg = <0x00 0x03500000 0x0 0x00100000>, /* controller registers */
                              <0x48 0x00000000 0x0 0x00002000>; /* configuration space */
                        reg-names = "regs", "config";
-                       interrupts = <0 127 IRQ_TYPE_LEVEL_HIGH>,
-                                    <0 128 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "pme", "aer";
                        #address-cells = <3>;
                        #size-cells = <2>;
                        reg = <0x00 0x03600000 0x0 0x00100000>, /* controller registers */
                              <0x50 0x00000000 0x0 0x00002000>; /* configuration space */
                        reg-names = "regs", "config";
-                       interrupts = <0 161 IRQ_TYPE_LEVEL_HIGH>,
-                                    <0 162 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "pme", "aer";
                        #address-cells = <3>;
                        #size-cells = <2>;
                                     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "qdma-error", "qdma-queue0",
                                "qdma-queue1", "qdma-queue2", "qdma-queue3";
+                       #dma-cells = <1>;
                        dma-channels = <8>;
                        block-number = <1>;
                        block-offset = <0x10000>;
                        #fsl,rcpm-wakeup-cells = <1>;
                };
 
-               ftm_alarm0: timer@29d0000 {
+               ftm_alarm0: rtc@29d0000 {
                        compatible = "fsl,ls1043a-ftm-alarm";
                        reg = <0x0 0x29d0000 0x0 0x10000>;
                        fsl,rcpm-wakeup = <&rcpm 0x20000>;
index 3b0ed9305f2bd4558d9c51d64ce40b421797997d..e5296e51f656fef17c441052b8159c44e01ce6df 100644 (file)
                  0x2 0x0 0x0 0x7fb00000 0x00000100>;
        status = "okay";
 
-       nor@0,0 {
+       flash@0,0 {
                compatible = "cfi-flash";
                reg = <0x0 0x0 0x8000000>;
                big-endian;
index 754a64be739cf69bd96333a2dc014c44129acf16..55019866d6a25b3369eb8a3761032176c0e57088 100644 (file)
        };
 
        thermal-zones {
-               ddr-controller {
+               ddr-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 0>;
                        };
                };
 
-               serdes {
+               serdes-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 1>;
                        };
                };
 
-               fman {
+               fman-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 2>;
                        };
                };
 
-               core-cluster {
+               cluster-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 3>;
                        };
                };
 
-               sec {
+               sec-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 4>;
                        status = "disabled";
                };
 
-               esdhc: esdhc@1560000 {
+               esdhc: mmc@1560000 {
                        compatible = "fsl,ls1046a-esdhc", "fsl,esdhc";
                        reg = <0x0 0x1560000 0x0 0x10000>;
                        interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
 
                };
 
-               qportals: qman-portals@500000000 {
+               qportals: qman-portals-bus@500000000 {
                        ranges = <0x0 0x5 0x00000000 0x8000000>;
                };
 
-               bportals: bman-portals@508000000 {
+               bportals: bman-portals-bus@508000000 {
                        ranges = <0x0 0x5 0x08000000 0x8000000>;
                };
 
                tmu: tmu@1f00000 {
                        compatible = "fsl,qoriq-tmu";
                        reg = <0x0 0x1f00000 0x0 0x10000>;
-                       interrupts = <0 33 0x4>;
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                        fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x70062>;
                        fsl,tmu-calibration =
                                /* Calibration data group 1 */
                };
 
                gpio0: gpio@2300000 {
-                       compatible = "fsl,qoriq-gpio";
+                       compatible = "fsl,ls1046a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2300000 0x0 0x10000>;
                        interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                };
 
                gpio1: gpio@2310000 {
-                       compatible = "fsl,qoriq-gpio";
+                       compatible = "fsl,ls1046a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2310000 0x0 0x10000>;
                        interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                };
 
                gpio2: gpio@2320000 {
-                       compatible = "fsl,qoriq-gpio";
+                       compatible = "fsl,ls1046a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2320000 0x0 0x10000>;
                        interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                };
 
                gpio3: gpio@2330000 {
-                       compatible = "fsl,qoriq-gpio";
+                       compatible = "fsl,ls1046a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2330000 0x0 0x10000>;
                        interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                                            QORIQ_CLK_PLL_DIV(2)>;
                };
 
-               aux_bus: aux_bus {
+               aux_bus: aux-bus {
                        #address-cells = <2>;
                        #size-cells = <2>;
                        compatible = "simple-bus";
                        reg = <0x00 0x03400000 0x0 0x00100000>, /* controller registers */
                              <0x40 0x00000000 0x0 0x00002000>; /* configuration space */
                        reg-names = "regs", "config";
-                       interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
-                                    <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
-                       interrupt-names = "aer", "pme";
+                       interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, /* PME interrupt */
+                                    <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; /* controller interrupt */
+                       interrupt-names = "pme", "aer";
                        #address-cells = <3>;
                        #size-cells = <2>;
                        device_type = "pci";
                        reg = <0x00 0x03500000 0x0 0x00100000>, /* controller registers */
                              <0x48 0x00000000 0x0 0x00002000>; /* configuration space */
                        reg-names = "regs", "config";
-                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
-                                    <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
-                       interrupt-names = "aer", "pme";
+                       interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>, /* PME interrupt */
+                                    <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>; /* controller interrupt */
+                       interrupt-names = "pme", "aer";
                        #address-cells = <3>;
                        #size-cells = <2>;
                        device_type = "pci";
                        reg = <0x00 0x03600000 0x0 0x00100000>, /* controller registers */
                              <0x50 0x00000000 0x0 0x00002000>; /* configuration space */
                        reg-names = "regs", "config";
-                       interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
-                                    <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>; /* PME interrupt */
-                       interrupt-names = "aer", "pme";
+                       interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>, /* PME interrupt */
+                                    <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; /* controller interrupt */
+                       interrupt-names = "pme", "aer";
                        #address-cells = <3>;
                        #size-cells = <2>;
                        device_type = "pci";
                                     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "qdma-error", "qdma-queue0",
                                "qdma-queue1", "qdma-queue2", "qdma-queue3";
+                       #dma-cells = <1>;
                        dma-channels = <8>;
                        block-number = <1>;
                        block-offset = <0x10000>;
                        #fsl,rcpm-wakeup-cells = <1>;
                };
 
-               ftm_alarm0: timer@29d0000 {
+               ftm_alarm0: rtc@29d0000 {
                        compatible = "fsl,ls1046a-ftm-alarm";
                        reg = <0x0 0x29d0000 0x0 0x10000>;
                        fsl,rcpm-wakeup = <&rcpm 0x20000>;
index aa52ff73ff9e027208a2e1df6ef1c5937edd4c02..d238a8440a814bd669eb58a3cd5034e02a41f708 100644 (file)
                  3 0 0x5 0x20000000 0x00010000>;
        status = "okay";
 
-       nor@0,0 {
+       flash@0,0 {
                compatible = "cfi-flash";
                reg = <0x0 0x0 0x8000000>;
                bank-width = <2>;
index 604bf88d70b3a3b7c1ab0fd973a0fb10daca918f..e3a7db21fe29a30b529950c9a121bf9362be8819 100644 (file)
                      <0x0 0x0c0c0000 0 0x2000>, /* GICC */
                      <0x0 0x0c0d0000 0 0x1000>, /* GICH */
                      <0x0 0x0c0e0000 0 0x20000>; /* GICV */
-               interrupts = <1 9 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <2>;
                #size-cells = <2>;
                ranges;
        };
 
        thermal-zones {
-               core-cluster {
+               cluster-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 0>;
                        };
                };
 
-               soc {
+               soc-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 1>;
 
        timer {
                compatible = "arm,armv8-timer";
-               interrupts = <1 13 IRQ_TYPE_LEVEL_LOW>,/* Physical Secure PPI */
-                            <1 14 IRQ_TYPE_LEVEL_LOW>,/* Physical Non-Secure PPI */
-                            <1 11 IRQ_TYPE_LEVEL_LOW>,/* Virtual PPI */
-                            <1 10 IRQ_TYPE_LEVEL_LOW>;/* Hypervisor PPI */
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,/* Physical Secure PPI */
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,/* Physical Non-Secure PPI */
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,/* Virtual PPI */
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;/* Hypervisor PPI */
        };
 
        pmu {
                tmu: tmu@1f80000 {
                        compatible = "fsl,qoriq-tmu";
                        reg = <0x0 0x1f80000 0x0 0x10000>;
-                       interrupts = <0 23 0x4>;
+                       interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
                        fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x70062>;
                        fsl,tmu-calibration =
                                /* Calibration data group 1 */
                        reg = <0x0 0x21c0500 0x0 0x100>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
-                       interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
                        reg = <0x0 0x21c0600 0x0 0x100>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
-                       interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
                gpio0: gpio@2300000 {
                        compatible = "fsl,ls1088a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2300000 0x0 0x10000>;
-                       interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
                        little-endian;
                        gpio-controller;
                        #gpio-cells = <2>;
                gpio1: gpio@2310000 {
                        compatible = "fsl,ls1088a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2310000 0x0 0x10000>;
-                       interrupts = <0 36 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
                        little-endian;
                        gpio-controller;
                        #gpio-cells = <2>;
                gpio2: gpio@2320000 {
                        compatible = "fsl,ls1088a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2320000 0x0 0x10000>;
-                       interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                        little-endian;
                        gpio-controller;
                        #gpio-cells = <2>;
                gpio3: gpio@2330000 {
                        compatible = "fsl,ls1088a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2330000 0x0 0x10000>;
-                       interrupts = <0 37 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                        little-endian;
                        gpio-controller;
                        #gpio-cells = <2>;
                ifc: memory-controller@2240000 {
                        compatible = "fsl,ifc";
                        reg = <0x0 0x2240000 0x0 0x20000>;
-                       interrupts = <0 21 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
                        little-endian;
                        #address-cells = <2>;
                        #size-cells = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2000000 0x0 0x10000>;
-                       interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(8)>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2010000 0x0 0x10000>;
-                       interrupts = <0 34 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(8)>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2020000 0x0 0x10000>;
-                       interrupts = <0 35 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(8)>;
                        status = "disabled";
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2030000 0x0 0x10000>;
-                       interrupts = <0 35 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(8)>;
                        status = "disabled";
                        status = "disabled";
                };
 
-               esdhc: esdhc@2140000 {
+               esdhc: mmc@2140000 {
                        compatible = "fsl,ls1088a-esdhc", "fsl,esdhc";
                        reg = <0x0 0x2140000 0x0 0x10000>;
-                       interrupts = <0 28 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
                        clock-frequency = <0>;
                        clocks = <&clockgen QORIQ_CLK_HWACCEL 1>;
                        voltage-ranges = <1800 1800 3300 3300>;
                usb0: usb@3100000 {
                        compatible = "snps,dwc3";
                        reg = <0x0 0x3100000 0x0 0x10000>;
-                       interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
                        dr_mode = "host";
                        snps,quirk-frame-length-adjustment = <0x20>;
                        snps,dis_rxdet_inp3_quirk;
                usb1: usb@3110000 {
                        compatible = "snps,dwc3";
                        reg = <0x0 0x3110000 0x0 0x10000>;
-                       interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
                        dr_mode = "host";
                        snps,quirk-frame-length-adjustment = <0x20>;
                        snps,dis_rxdet_inp3_quirk;
                        reg = <0x0 0x3200000 0x0 0x10000>,
                                <0x7 0x100520 0x0 0x4>;
                        reg-names = "ahci", "sata-ecc";
-                       interrupts = <0 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
                        dma-coherent;
                        reg = <0x00 0x03400000 0x0 0x00100000>, /* controller registers */
                              <0x20 0x00000000 0x0 0x00002000>; /* configuration space */
                        reg-names = "regs", "config";
-                       interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */
                        interrupt-names = "aer";
                        #address-cells = <3>;
                        #size-cells = <2>;
                        reg = <0x00 0x03500000 0x0 0x00100000>, /* controller registers */
                              <0x28 0x00000000 0x0 0x00002000>; /* configuration space */
                        reg-names = "regs", "config";
-                       interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */
+                       interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */
                        interrupt-names = "aer";
                        #address-cells = <3>;
                        #size-cells = <2>;
                        reg = <0x00 0x03600000 0x0 0x00100000>, /* controller registers */
                              <0x30 0x00000000 0x0 0x00002000>; /* configuration space */
                        reg-names = "regs", "config";
-                       interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */
+                       interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; /* aer interrupt */
                        interrupt-names = "aer";
                        #address-cells = <3>;
                        #size-cells = <2>;
                        };
                };
 
-               cluster1_core0_watchdog: wdt@c000000 {
+               cluster1_core0_watchdog: watchdog@c000000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc000000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster1_core1_watchdog: wdt@c010000 {
+               cluster1_core1_watchdog: watchdog@c010000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc010000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster1_core2_watchdog: wdt@c020000 {
+               cluster1_core2_watchdog: watchdog@c020000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc020000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster1_core3_watchdog: wdt@c030000 {
+               cluster1_core3_watchdog: watchdog@c030000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc030000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster2_core0_watchdog: wdt@c100000 {
+               cluster2_core0_watchdog: watchdog@c100000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc100000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster2_core1_watchdog: wdt@c110000 {
+               cluster2_core1_watchdog: watchdog@c110000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc110000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster2_core2_watchdog: wdt@c120000 {
+               cluster2_core2_watchdog: watchdog@c120000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc120000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster2_core3_watchdog: wdt@c130000 {
+               cluster2_core3_watchdog: watchdog@c130000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc130000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        little-endian;
                };
 
-               ftm_alarm0: timer@2800000 {
+               ftm_alarm0: rtc@2800000 {
                        compatible = "fsl,ls1088a-ftm-alarm";
                        reg = <0x0 0x2800000 0x0 0x10000>;
                        fsl,rcpm-wakeup = <&rcpm 0x0 0x0 0x0 0x0 0x4000 0x0>;
index 8352197cea6f426fda2e8537f40965c567171306..e9bc1f4fa13c486e39716d866177ad254097d3f0 100644 (file)
@@ -15,7 +15,7 @@
 / {
        pmu {
                compatible = "arm,cortex-a57-pmu";
-               interrupts = <1 7 0x8>; /* PMU PPI, Level low type */
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
        };
 };
 
index 245bbd615c81c14d8f83baaece9740191671da63..60c422560e3335239a98c3f8586aa23f3fa54cd8 100644 (file)
@@ -15,7 +15,7 @@
 / {
        pmu {
                compatible = "arm,cortex-a72-pmu";
-               interrupts = <1 7 0x8>; /* PMU PPI, Level low type */
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
        };
 };
 
index e2c94da6d6e822cc4c029aedb8601923e72eed0a..9178cd61c78691b6553e2a99ee65e56ee6baa745 100644 (file)
@@ -43,7 +43,7 @@
                  0x2 0x0 0x5 0x30000000 0x00010000
                  0x3 0x0 0x5 0x20000000 0x00010000>;
 
-       nor@0,0 {
+       flash@0,0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "cfi-flash";
index 537cecb13dd08a0fc997c42563feda7326f3757c..69cd05a30b853cbfd651744ef917ce5925aded78 100644 (file)
@@ -21,7 +21,7 @@
                  0x2 0x0 0x5 0x30000000 0x00010000
                  0x3 0x0 0x5 0x20000000 0x00010000>;
 
-       nor@0,0 {
+       flash@0,0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "cfi-flash";
index ccba0a135b247e8c2f96e12c319c61c3d4efbd08..1b306d6802ce3dc30c121c062a7a9936f21de361 100644 (file)
@@ -58,7 +58,7 @@
                #size-cells = <2>;
                ranges;
                interrupt-controller;
-               interrupts = <1 9 0x4>;
+               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
 
                its: msi-controller@6020000 {
                        compatible = "arm,gic-v3-its";
@@ -80,7 +80,7 @@
        };
 
        thermal-zones {
-               ddr-controller1 {
+               ddr-ctrl1-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 1>;
@@ -94,7 +94,7 @@
                        };
                };
 
-               ddr-controller2 {
+               ddr-ctrl2-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 2>;
                        };
                };
 
-               ddr-controller3 {
+               ddr-ctrl3-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 3>;
                        };
                };
 
-               core-cluster1 {
+               cluster1-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 4>;
                        };
                };
 
-               core-cluster2 {
+               cluster2-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 5>;
                        };
                };
 
-               core-cluster3 {
+               cluster3-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 6>;
                        };
                };
 
-               core-cluster4 {
+               cluster4-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 7>;
 
        timer: timer {
                compatible = "arm,armv8-timer";
-               interrupts = <1 13 4>, /* Physical Secure PPI, active-low */
-                            <1 14 4>, /* Physical Non-Secure PPI, active-low */
-                            <1 11 4>, /* Virtual PPI, active-low */
-                            <1 10 4>; /* Hypervisor PPI, active-low */
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>, /* Physical Secure PPI */
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>, /* Physical Non-Secure PPI */
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>, /* Virtual PPI */
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; /* Hypervisor PPI */
        };
 
        psci {
                tmu: tmu@1f80000 {
                        compatible = "fsl,qoriq-tmu";
                        reg = <0x0 0x1f80000 0x0 0x10000>;
-                       interrupts = <0 23 0x4>;
+                       interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
                        fsl,tmu-range = <0xb0000 0x9002a 0x6004c 0x30062>;
                        fsl,tmu-calibration =
                                        <0x00000000 0x00000026>,
                        reg = <0x0 0x21c0500 0x0 0x100>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
-                       interrupts = <0 32 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                serial1: serial@21c0600 {
                        reg = <0x0 0x21c0600 0x0 0x100>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
-                       interrupts = <0 32 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                serial2: serial@21d0500 {
                        reg = <0x0 0x21d0500 0x0 0x100>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
-                       interrupts = <0 33 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                serial3: serial@21d0600 {
                        reg = <0x0 0x21d0600 0x0 0x100>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
-                       interrupts = <0 33 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                };
 
-               cluster1_core0_watchdog: wdt@c000000 {
+               cluster1_core0_watchdog: watchdog@c000000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc000000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster1_core1_watchdog: wdt@c010000 {
+               cluster1_core1_watchdog: watchdog@c010000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc010000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster2_core0_watchdog: wdt@c100000 {
+               cluster2_core0_watchdog: watchdog@c100000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc100000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster2_core1_watchdog: wdt@c110000 {
+               cluster2_core1_watchdog: watchdog@c110000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc110000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster3_core0_watchdog: wdt@c200000 {
+               cluster3_core0_watchdog: watchdog@c200000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc200000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster3_core1_watchdog: wdt@c210000 {
+               cluster3_core1_watchdog: watchdog@c210000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc210000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster4_core0_watchdog: wdt@c300000 {
+               cluster4_core0_watchdog: watchdog@c300000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc300000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               cluster4_core1_watchdog: wdt@c310000 {
+               cluster4_core1_watchdog: watchdog@c310000 {
                        compatible = "arm,sp805", "arm,primecell";
                        reg = <0x0 0xc310000 0x0 0x1000>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                        #iommu-cells = <1>;
                        stream-match-mask = <0x7C00>;
                        dma-coherent;
-                       interrupts = <0 13 4>, /* global secure fault */
-                                    <0 14 4>, /* combined secure interrupt */
-                                    <0 15 4>, /* global non-secure fault */
-                                    <0 16 4>, /* combined non-secure interrupt */
+                       interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, /* global secure fault */
+                                    <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, /* combined secure interrupt */
+                                    <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, /* global non-secure fault */
+                                    <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, /* combined non-secure interrupt */
                                /* performance counter interrupts 0-7 */
-                                    <0 211 4>, <0 212 4>,
-                                    <0 213 4>, <0 214 4>,
-                                    <0 215 4>, <0 216 4>,
-                                    <0 217 4>, <0 218 4>,
+                                    <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>,
                                /* per context interrupt, 64 interrupts */
-                                    <0 146 4>, <0 147 4>,
-                                    <0 148 4>, <0 149 4>,
-                                    <0 150 4>, <0 151 4>,
-                                    <0 152 4>, <0 153 4>,
-                                    <0 154 4>, <0 155 4>,
-                                    <0 156 4>, <0 157 4>,
-                                    <0 158 4>, <0 159 4>,
-                                    <0 160 4>, <0 161 4>,
-                                    <0 162 4>, <0 163 4>,
-                                    <0 164 4>, <0 165 4>,
-                                    <0 166 4>, <0 167 4>,
-                                    <0 168 4>, <0 169 4>,
-                                    <0 170 4>, <0 171 4>,
-                                    <0 172 4>, <0 173 4>,
-                                    <0 174 4>, <0 175 4>,
-                                    <0 176 4>, <0 177 4>,
-                                    <0 178 4>, <0 179 4>,
-                                    <0 180 4>, <0 181 4>,
-                                    <0 182 4>, <0 183 4>,
-                                    <0 184 4>, <0 185 4>,
-                                    <0 186 4>, <0 187 4>,
-                                    <0 188 4>, <0 189 4>,
-                                    <0 190 4>, <0 191 4>,
-                                    <0 192 4>, <0 193 4>,
-                                    <0 194 4>, <0 195 4>,
-                                    <0 196 4>, <0 197 4>,
-                                    <0 198 4>, <0 199 4>,
-                                    <0 200 4>, <0 201 4>,
-                                    <0 202 4>, <0 203 4>,
-                                    <0 204 4>, <0 205 4>,
-                                    <0 206 4>, <0 207 4>,
-                                    <0 208 4>, <0 209 4>;
+                                    <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>, <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 193 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>,
+                                    <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 200 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                dspi: spi@2100000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2100000 0x0 0x10000>;
-                       interrupts = <0 26 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
                        clock-names = "dspi";
                        spi-num-chipselects = <5>;
                };
 
-               esdhc: esdhc@2140000 {
+               esdhc: mmc@2140000 {
                        status = "disabled";
                        compatible = "fsl,ls2080a-esdhc", "fsl,esdhc";
                        reg = <0x0 0x2140000 0x0 0x10000>;
-                       interrupts = <0 28 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(2)>;
                        voltage-ranges = <1800 1800 3300 3300>;
                gpio0: gpio@2300000 {
                        compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2300000 0x0 0x10000>;
-                       interrupts = <0 36 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        little-endian;
                        #gpio-cells = <2>;
                gpio1: gpio@2310000 {
                        compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2310000 0x0 0x10000>;
-                       interrupts = <0 36 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        little-endian;
                        #gpio-cells = <2>;
                gpio2: gpio@2320000 {
                        compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2320000 0x0 0x10000>;
-                       interrupts = <0 37 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        little-endian;
                        #gpio-cells = <2>;
                gpio3: gpio@2330000 {
                        compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2330000 0x0 0x10000>;
-                       interrupts = <0 37 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        little-endian;
                        #gpio-cells = <2>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2000000 0x0 0x10000>;
-                       interrupts = <0 34 0x4>; /* Level high type */
-                       clock-names = "i2c";
+                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
                };
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2010000 0x0 0x10000>;
-                       interrupts = <0 34 0x4>; /* Level high type */
-                       clock-names = "i2c";
+                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
                };
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2020000 0x0 0x10000>;
-                       interrupts = <0 35 0x4>; /* Level high type */
-                       clock-names = "i2c";
+                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
                };
                        #address-cells = <1>;
                        #size-cells = <0>;
                        reg = <0x0 0x2030000 0x0 0x10000>;
-                       interrupts = <0 35 0x4>; /* Level high type */
-                       clock-names = "i2c";
+                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
                };
                ifc: memory-controller@2240000 {
                        compatible = "fsl,ifc";
                        reg = <0x0 0x2240000 0x0 0x20000>;
-                       interrupts = <0 21 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
                        little-endian;
                        #address-cells = <2>;
                        #size-cells = <1>;
                pcie1: pcie@3400000 {
                        compatible = "fsl,ls2080a-pcie", "fsl,ls2085a-pcie";
                        reg-names = "regs", "config";
-                       interrupts = <0 108 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "intr";
                        #address-cells = <3>;
                        #size-cells = <2>;
                pcie2: pcie@3500000 {
                        compatible = "fsl,ls2080a-pcie", "fsl,ls2085a-pcie";
                        reg-names = "regs", "config";
-                       interrupts = <0 113 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "intr";
                        #address-cells = <3>;
                        #size-cells = <2>;
                pcie3: pcie@3600000 {
                        compatible = "fsl,ls2080a-pcie", "fsl,ls2085a-pcie";
                        reg-names = "regs", "config";
-                       interrupts = <0 118 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "intr";
                        #address-cells = <3>;
                        #size-cells = <2>;
                pcie4: pcie@3700000 {
                        compatible = "fsl,ls2080a-pcie", "fsl,ls2085a-pcie";
                        reg-names = "regs", "config";
-                       interrupts = <0 123 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "intr";
                        #address-cells = <3>;
                        #size-cells = <2>;
                        status = "disabled";
                        compatible = "fsl,ls2080a-ahci";
                        reg = <0x0 0x3200000 0x0 0x10000>;
-                       interrupts = <0 133 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
                        dma-coherent;
                        status = "disabled";
                        compatible = "fsl,ls2080a-ahci";
                        reg = <0x0 0x3210000 0x0 0x10000>;
-                       interrupts = <0 136 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(4)>;
                        dma-coherent;
                        usb0: usb@3100000 {
                                compatible = "snps,dwc3";
                                reg = <0x0 0x3100000 0x0 0x10000>;
-                               interrupts = <0 80 0x4>; /* Level high type */
+                               interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
                                dr_mode = "host";
                                snps,quirk-frame-length-adjustment = <0x20>;
                                snps,dis_rxdet_inp3_quirk;
                        usb1: usb@3110000 {
                                compatible = "snps,dwc3";
                                reg = <0x0 0x3110000 0x0 0x10000>;
-                               interrupts = <0 81 0x4>; /* Level high type */
+                               interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
                                dr_mode = "host";
                                snps,quirk-frame-length-adjustment = <0x20>;
                                snps,dis_rxdet_inp3_quirk;
                ccn@4000000 {
                        compatible = "arm,ccn-504";
                        reg = <0x0 0x04000000 0x0 0x01000000>;
-                       interrupts = <0 12 4>;
+                       interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                rcpm: power-controller@1e34040 {
                        little-endian;
                };
 
-               ftm_alarm0: timer@2800000 {
+               ftm_alarm0: rtc@2800000 {
                        compatible = "fsl,ls208xa-ftm-alarm";
                        reg = <0x0 0x2800000 0x0 0x10000>;
                        fsl,rcpm-wakeup = <&rcpm 0x0 0x0 0x0 0x0 0x4000 0x0>;
        ddr1: memory-controller@1080000 {
                compatible = "fsl,qoriq-memory-controller";
                reg = <0x0 0x1080000 0x0 0x1000>;
-               interrupts = <0 17 0x4>;
+               interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
                little-endian;
        };
 
        ddr2: memory-controller@1090000 {
                compatible = "fsl,qoriq-memory-controller";
                reg = <0x0 0x1090000 0x0 0x1000>;
-               interrupts = <0 18 0x4>;
+               interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
                little-endian;
        };
 
index 96055593204ab8b5f21b039dd69fb50cb6f7d91f..bd75a658767ddf9fb52cb0ae511cc391bd376873 100644 (file)
        };
 
        thermal-zones {
-               cluster6-7 {
+               cluster6-7-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 0>;
                        };
                };
 
-               ddr-cluster5 {
+               ddr-ctrl5-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 1>;
                        };
                };
 
-               wriop {
+               wriop-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 2>;
                        };
                };
 
-               dce-qbman-hsio2 {
+               dce-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 3>;
                        };
                };
 
-               ccn-dpaa-tbu {
+               ccn-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 4>;
                        };
                };
 
-               cluster4-hsio3 {
+               cluster4-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 5>;
                        };
                };
 
-               cluster2-3 {
+               cluster2-3-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tmu 6>;
                        #size-cells = <0>;
                        reg = <0x0 0x2000000 0x0 0x10000>;
                        interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "i2c";
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
                        pinctrl-names = "default", "gpio";
                        #size-cells = <0>;
                        reg = <0x0 0x2010000 0x0 0x10000>;
                        interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "i2c";
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
                        pinctrl-names = "default", "gpio";
                        #size-cells = <0>;
                        reg = <0x0 0x2020000 0x0 0x10000>;
                        interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "i2c";
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
                        pinctrl-names = "default", "gpio";
                        #size-cells = <0>;
                        reg = <0x0 0x2030000 0x0 0x10000>;
                        interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "i2c";
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
                        pinctrl-names = "default", "gpio";
                        #size-cells = <0>;
                        reg = <0x0 0x2040000 0x0 0x10000>;
                        interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "i2c";
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
                        pinctrl-names = "default", "gpio";
                        #size-cells = <0>;
                        reg = <0x0 0x2050000 0x0 0x10000>;
                        interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "i2c";
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
                        pinctrl-names = "default", "gpio";
                        #size-cells = <0>;
                        reg = <0x0 0x2060000 0x0 0x10000>;
                        interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "i2c";
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
                        pinctrl-names = "default", "gpio";
                        #size-cells = <0>;
                        reg = <0x0 0x2070000 0x0 0x10000>;
                        interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "i2c";
+                       clock-names = "ipg";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
                        pinctrl-names = "default", "gpio";
                        status = "disabled";
                };
 
-               esdhc0: esdhc@2140000 {
-                       compatible = "fsl,esdhc";
+               esdhc0: mmc@2140000 {
+                       compatible = "fsl,ls2080a-esdhc", "fsl,esdhc";
                        reg = <0x0 0x2140000 0x0 0x10000>;
-                       interrupts = <0 28 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(2)>;
                        dma-coherent;
                        status = "disabled";
                };
 
-               esdhc1: esdhc@2150000 {
-                       compatible = "fsl,esdhc";
+               esdhc1: mmc@2150000 {
+                       compatible = "fsl,ls2080a-esdhc", "fsl,esdhc";
                        reg = <0x0 0x2150000 0x0 0x10000>;
-                       interrupts = <0 63 0x4>; /* Level high type */
+                       interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(2)>;
                        dma-coherent;
                };
 
                gpio0: gpio@2300000 {
-                       compatible = "fsl,qoriq-gpio";
+                       compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2300000 0x0 0x10000>;
                        interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                };
 
                gpio1: gpio@2310000 {
-                       compatible = "fsl,qoriq-gpio";
+                       compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2310000 0x0 0x10000>;
                        interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                };
 
                gpio2: gpio@2320000 {
-                       compatible = "fsl,qoriq-gpio";
+                       compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2320000 0x0 0x10000>;
                        interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                };
 
                gpio3: gpio@2330000 {
-                       compatible = "fsl,qoriq-gpio";
+                       compatible = "fsl,ls2080a-gpio", "fsl,qoriq-gpio";
                        reg = <0x0 0x2330000 0x0 0x10000>;
                        interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        little-endian;
                };
 
-               ftm_alarm0: timer@2800000 {
+               ftm_alarm0: rtc@2800000 {
                        compatible = "fsl,lx2160a-ftm-alarm";
                        reg = <0x0 0x2800000 0x0 0x10000>;
                        fsl,rcpm-wakeup = <&rcpm 0x0 0x0 0x0 0x0 0x4000 0x0 0x0>;
                pinmux_i2crv: pinmux@70010012c {
                        compatible = "pinctrl-single";
                        reg = <0x00000007 0x0010012c 0x0 0xc>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                        pinctrl-single,bit-per-mux;
                        pinctrl-single,register-width = <32>;
                        pinctrl-single,function-mask = <0x7>;
index 897cbb7b6742205b296ee4d5e0986474ed9bfe82..ff5df0fed9e96fa7b1b6743765385148f92e389b 100644 (file)
@@ -447,7 +447,6 @@ audio_subsys: bus@59000000 {
                        <&lsio_mu13 2 1>,
                        <&lsio_mu13 3 0>,
                        <&lsio_mu13 3 1>;
-               memory-region = <&dsp_reserved>;
                status = "disabled";
        };
 
diff --git a/src/arm64/freescale/imx8-ss-cm41.dtsi b/src/arm64/freescale/imx8-ss-cm41.dtsi
new file mode 100644 (file)
index 0000000..d715f2a
--- /dev/null
@@ -0,0 +1,68 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2024 NXP
+ *     Dong Aisheng <aisheng.dong@nxp.com>
+ */
+
+#include <dt-bindings/firmware/imx/rsrc.h>
+#include <dt-bindings/clock/imx8-lpcg.h>
+
+cm41_ipg_clk: clock-cm41-ipg {
+       compatible = "fixed-clock";
+       #clock-cells = <0>;
+       clock-frequency = <132000000>;
+       clock-output-names = "cm41_ipg_clk";
+};
+
+cm41_subsys: bus@38000000 {
+       compatible = "simple-bus";
+       #address-cells = <1>;
+       #size-cells = <1>;
+       ranges = <0x38000000 0x0 0x38000000 0x4000000>;
+       interrupt-parent = <&cm41_intmux>;
+
+       cm41_i2c: i2c@3b230000 {
+               compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c";
+               reg = <0x3b230000 0x1000>;
+               interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cm41_i2c_lpcg IMX_LPCG_CLK_0>,
+                        <&cm41_i2c_lpcg IMX_LPCG_CLK_4>;
+               clock-names = "per", "ipg";
+               assigned-clocks = <&clk IMX_SC_R_M4_1_I2C IMX_SC_PM_CLK_PER>;
+               assigned-clock-rates = <24000000>;
+               power-domains = <&pd IMX_SC_R_M4_1_I2C>;
+               status = "disabled";
+       };
+
+       cm41_intmux: intmux@3b400000 {
+               compatible = "fsl,imx-intmux";
+               reg = <0x3b400000 0x1000>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               clocks = <&cm41_ipg_clk>;
+               clock-names = "ipg";
+               power-domains = <&pd IMX_SC_R_M4_1_INTMUX>;
+               status = "disabled";
+       };
+
+       cm41_i2c_lpcg: clock-controller@3b630000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x3b630000 0x1000>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_M4_1_I2C IMX_SC_PM_CLK_PER>,
+                        <&cm41_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "cm41_lpcg_i2c_clk",
+                                    "cm41_lpcg_i2c_ipg_clk";
+               power-domains = <&pd IMX_SC_R_M4_1_I2C>;
+       };
+};
index 4aaf5a0c1ed8af6f7f845be079c9297f35d2d72b..a4a10ce03bfe0c8aac050c50972bf85db6376456 100644 (file)
@@ -28,6 +28,13 @@ conn_ipg_clk: clock-conn-ipg {
        clock-output-names = "conn_ipg_clk";
 };
 
+conn_bch_clk: clock-conn-bch {
+       compatible = "fixed-clock";
+       #clock-cells = <0>;
+       clock-frequency = <400000000>;
+       clock-output-names = "conn_bch_clk";
+};
+
 conn_subsys: bus@5b000000 {
        compatible = "simple-bus";
        #address-cells = <1>;
@@ -302,4 +309,66 @@ conn_subsys: bus@5b000000 {
                                     "usb3_aclk";
                power-domains = <&pd IMX_SC_R_USB_2_PHY>;
        };
+
+       rawnand_0_lpcg: clock-controller@5b290000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x5b290000 0x4>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_NAND IMX_SC_PM_CLK_PER>,
+                        <&clk IMX_SC_R_NAND IMX_SC_PM_CLK_MST_BUS>,
+                        <&conn_axi_clk>,
+                        <&conn_axi_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>,
+                               <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_5>;
+               clock-output-names = "gpmi_bch",
+                                    "gpmi_io",
+                                    "gpmi_apb",
+                                    "gpmi_bch_apb";
+               power-domains = <&pd IMX_SC_R_NAND>;
+       };
+
+       rawnand_4_lpcg: clock-controller@5b290004 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x5b290004 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&conn_axi_clk>;
+               clock-indices = <IMX_LPCG_CLK_4>;
+               clock-output-names = "apbhdma_hclk";
+               power-domains = <&pd IMX_SC_R_NAND>;
+       };
+
+       dma_apbh: dma-controller@5b810000 {
+               compatible = "fsl,imx8qxp-dma-apbh", "fsl,imx28-dma-apbh";
+               reg = <0x5b810000 0x2000>;
+               interrupts = <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>;
+               #dma-cells = <1>;
+               dma-channels = <4>;
+               clocks = <&rawnand_4_lpcg IMX_LPCG_CLK_0>;
+               power-domains = <&pd IMX_SC_R_NAND>;
+       };
+
+       gpmi: nand-controller@5b812000{
+               compatible = "fsl,imx8qxp-gpmi-nand";
+               reg = <0x5b812000 0x2000>, <0x5b814000 0x2000>;
+               reg-names = "gpmi-nand", "bch";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "bch";
+               clocks = <&rawnand_0_lpcg IMX_LPCG_CLK_1>,
+                        <&rawnand_0_lpcg IMX_LPCG_CLK_4>,
+                        <&rawnand_0_lpcg IMX_LPCG_CLK_0>,
+                        <&rawnand_0_lpcg IMX_LPCG_CLK_5>;
+               clock-names = "gpmi_io", "gpmi_apb",
+                             "gpmi_bch", "gpmi_bch_apb";
+               dmas = <&dma_apbh 0>;
+               dma-names = "rx-tx";
+               power-domains = <&pd IMX_SC_R_NAND>;
+               assigned-clocks = <&clk IMX_SC_R_NAND IMX_SC_PM_CLK_MST_BUS>;
+               assigned-clock-rates = <50000000>;
+               status = "disabled";
+       };
 };
index 2412ab145c0661300ecf57a725e1881d5556061d..1a74ac3ee4ee90355ebc328fd628c53d264aad30 100644 (file)
                stdout-path = &lpuart0;
        };
 
+       imx8dxl-cm4 {
+               compatible = "fsl,imx8qxp-cm4";
+               clocks = <&clk_dummy>;
+               mbox-names = "tx", "rx", "rxdb";
+               mboxes = <&lsio_mu5 0 1 &lsio_mu5 1 1 &lsio_mu5 3 1>;
+               memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+                               <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
+               power-domains = <&pd IMX_SC_R_M4_0_PID0>, <&pd IMX_SC_R_M4_0_MU_1A>;
+               fsl,resource-id = <IMX_SC_R_M4_0_PID0>;
+               fsl,entry-address = <0x34fe0000>;
+       };
+
+
        memory@80000000 {
                device_type = "memory";
                reg = <0x00000000 0x80000000 0 0x40000000>;
                        alloc-ranges = <0 0x98000000 0 0x14000000>;
                        linux,cma-default;
                };
+
+               vdev0vring0: memory0@90000000 {
+                       reg = <0 0x90000000 0 0x8000>;
+                       no-map;
+               };
+
+               vdev0vring1: memory@90008000 {
+                       reg = <0 0x90008000 0 0x8000>;
+                       no-map;
+               };
+
+               vdev1vring0: memory@90010000 {
+                       reg = <0 0x90010000 0 0x8000>;
+                       no-map;
+               };
+
+               vdev1vring1: memory@90018000 {
+                       reg = <0 0x90018000 0 0x8000>;
+                       no-map;
+               };
+
+               rsc_table: memory-rsc-table@900ff000 {
+                       reg = <0 0x900ff000 0 0x1000>;
+                       no-map;
+               };
+
+               vdevbuffer: memory-vdevbuffer@90400000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x90400000 0 0x100000>;
+                       no-map;
+               };
        };
 
        m2_uart1_sel: regulator-m2uart1sel {
                enable-active-high;
                regulator-always-on;
        };
+
+       bt_sco_codec: audio-codec-bt {
+               compatible = "linux,bt-sco";
+               #sound-dai-cells = <1>;
+       };
+
+       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>;
+
+               btcpu: simple-audio-card,cpu {
+                       sound-dai = <&sai0>;
+                       dai-tdm-slot-num = <2>;
+                       dai-tdm-slot-width = <16>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&bt_sco_codec 1>;
+               };
+       };
+
+       sound-wm8960-1 {
+               compatible = "fsl,imx-audio-wm8960";
+               model = "wm8960-audio";
+               audio-cpu = <&sai1>;
+               audio-codec = <&wm8960_1>;
+               audio-asrc = <&asrc0>;
+               audio-routing = "Headphone Jack", "HP_L",
+                               "Headphone Jack", "HP_R",
+                               "Ext Spk", "SPK_LP",
+                               "Ext Spk", "SPK_LN",
+                               "Ext Spk", "SPK_RP",
+                               "Ext Spk", "SPK_RN",
+                               "LINPUT1", "Mic Jack",
+                               "Mic Jack", "MICB";
+       };
+
+       sound-wm8960-2 {
+               compatible = "fsl,imx-audio-wm8960";
+               model = "wm8960-audio-2";
+               audio-cpu = <&sai2>;
+               audio-codec = <&wm8960_2>;
+               audio-routing = "Headphone Jack", "HP_L",
+                               "Headphone Jack", "HP_R",
+                               "Ext Spk", "SPK_LP",
+                               "Ext Spk", "SPK_LN",
+                               "Ext Spk", "SPK_RP",
+                               "Ext Spk", "SPK_RN",
+                               "LINPUT1", "Mic Jack",
+                               "Mic Jack", "MICB";
+       };
+
+       sound-wm8960-3 {
+               compatible = "fsl,imx-audio-wm8960";
+               model = "wm8960-audio-3";
+               audio-cpu = <&sai3>;
+               audio-codec = <&wm8960_3>;
+               audio-routing = "Headphone Jack", "HP_L",
+                               "Headphone Jack", "HP_R",
+                               "Ext Spk", "SPK_LP",
+                               "Ext Spk", "SPK_LN",
+                               "Ext Spk", "SPK_RP",
+                               "Ext Spk", "SPK_RN",
+                               "LINPUT1", "Mic Jack",
+                               "Mic Jack", "MICB";
+       };
 };
 
 &adc0 {
        status = "okay";
 };
 
+&asrc0 {
+       fsl,asrc-rate = <48000>;
+       status = "okay";
+};
+
 &eqos {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_eqos>;
                        };
                };
 
+               i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x1>;
+
+                       wm8960_1: audio-codec@1a {
+                               compatible = "wlf,wm8960";
+                               reg = <0x1a>;
+                               clocks = <&mclkout1_lpcg IMX_LPCG_CLK_0>;
+                               clock-names = "mclk";
+                               assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                                                 <&mclkout1_lpcg IMX_LPCG_CLK_0>;
+                               assigned-clock-rates = <786432000>,
+                                                      <49152000>,
+                                                      <12288000>,
+                                                      <12288000>;
+                               wlf,shared-lrclk;
+                               wlf,hp-cfg = <2 2 3>;
+                               wlf,gpio-cfg = <1 3>;
+                       };
+               };
+
+               i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x2>;
+
+                       wm8960_2: audio-codec@1a {
+                               compatible = "wlf,wm8960";
+                               reg = <0x1a>;
+                               clocks = <&mclkout1_lpcg IMX_LPCG_CLK_0>;
+                               clock-names = "mclk";
+                               assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                                                 <&mclkout1_lpcg IMX_LPCG_CLK_0>;
+                               assigned-clock-rates = <786432000>,
+                                                      <49152000>,
+                                                      <12288000>,
+                                                      <12288000>;
+                               wlf,shared-lrclk;
+                               wlf,hp-cfg = <2 2 3>;
+                               wlf,gpio-cfg = <1 3>;
+                       };
+               };
+
+               i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0x3>;
+
+                       wm8960_3: audio-codec@1a {
+                               compatible = "wlf,wm8960";
+                               reg = <0x1a>;
+                               clocks = <&mclkout1_lpcg IMX_LPCG_CLK_0>;
+                               clock-names = "mclk";
+                               assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                                                 <&mclkout1_lpcg IMX_LPCG_CLK_0>;
+                               assigned-clock-rates = <786432000>,
+                                                      <49152000>,
+                                                      <12288000>,
+                                                      <12288000>;
+                               wlf,shared-lrclk;
+                               wlf,hp-cfg = <2 2 3>;
+                               wlf,gpio-cfg = <1 3>;
+                       };
+               };
+
                i2c@4 {
                        #address-cells = <1>;
                        #size-cells = <0>;
        status = "okay";
 };
 
+&lsio_mu5 {
+       status = "okay";
+};
+
 &flexcan2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_flexcan2>;
        status = "okay";
 };
 
+&sai0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai0>;
+       #sound-dai-cells = <0>;
+       assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai0_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
+       status = "okay";
+};
+
+&sai1 {
+       assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai1_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai1>;
+       status = "okay";
+};
+
+&sai2 {
+       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>,
+                         <&sai2_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai2>;
+       fsl,sai-asynchronous;
+       status = "okay";
+};
+
+&sai3 {
+       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>,
+                         <&sai3_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai3>;
+       fsl,sai-asynchronous;
+       status = "okay";
+};
+
 &thermal_zones {
        pmic-thermal {
                polling-delay-passive = <250>;
                >;
        };
 
+       pinctrl_sai0: sai0grp {
+               fsl,pins = <
+                       IMX8DXL_SPI0_CS0_ADMA_SAI0_RXD          0x06000060
+                       IMX8DXL_SPI0_CS1_ADMA_SAI0_RXC          0x06000040
+                       IMX8DXL_SPI0_SCK_ADMA_SAI0_TXC          0x06000060
+                       IMX8DXL_SPI0_SDI_ADMA_SAI0_TXD          0x06000060
+                       IMX8DXL_SPI0_SDO_ADMA_SAI0_TXFS         0x06000040
+               >;
+       };
+
+       pinctrl_sai1: sai1grp {
+               fsl,pins = <
+                       IMX8DXL_FLEXCAN0_RX_ADMA_SAI1_TXC       0x06000040
+                       IMX8DXL_FLEXCAN0_TX_ADMA_SAI1_TXFS      0x06000040
+                       IMX8DXL_FLEXCAN1_RX_ADMA_SAI1_TXD       0x06000060
+                       IMX8DXL_FLEXCAN1_TX_ADMA_SAI1_RXD       0x06000060
+               >;
+       };
+
+       pinctrl_sai2: sai2grp {
+               fsl,pins = <
+                       IMX8DXL_SNVS_TAMPER_OUT3_ADMA_SAI2_RXC  0x06000040
+                       IMX8DXL_SNVS_TAMPER_IN0_ADMA_SAI2_RXFS  0x06000040
+                       IMX8DXL_SNVS_TAMPER_OUT4_ADMA_SAI2_RXD  0x06000060
+               >;
+       };
+
+       pinctrl_sai3: sai3grp {
+               fsl,pins = <
+                       IMX8DXL_SNVS_TAMPER_IN1_ADMA_SAI3_RXC   0x06000040
+                       IMX8DXL_SNVS_TAMPER_IN3_ADMA_SAI3_RXFS  0x06000040
+                       IMX8DXL_SNVS_TAMPER_IN2_ADMA_SAI3_RXD   0x06000060
+               >;
+       };
+
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
                        IMX8DXL_EMMC0_CLK_CONN_EMMC0_CLK        0x06000041
index 5d012c95222f52fd59be9ad70bf8d23e82a54383..72434529f78e693fe325ad487ba8f4d7819b37ec 100644 (file)
@@ -3,6 +3,63 @@
  * Copyright 2019~2020, 2022 NXP
  */
 
+/delete-node/ &asrc1;
+/delete-node/ &asrc1_lpcg;
+/delete-node/ &adc1;
+/delete-node/ &adc1_lpcg;
+/delete-node/ &amix;
+/delete-node/ &amix_lpcg;
+/delete-node/ &edma1;
+/delete-node/ &esai0;
+/delete-node/ &esai0_lpcg;
+/delete-node/ &sai4;
+/delete-node/ &sai4_lpcg;
+/delete-node/ &sai5;
+/delete-node/ &sai5_lpcg;
+
+&acm {
+       compatible = "fsl,imx8dxl-acm";
+       power-domains = <&pd IMX_SC_R_AUDIO_CLK_0>,
+                       <&pd IMX_SC_R_AUDIO_CLK_1>,
+                       <&pd IMX_SC_R_MCLK_OUT_0>,
+                       <&pd IMX_SC_R_MCLK_OUT_1>,
+                       <&pd IMX_SC_R_AUDIO_PLL_0>,
+                       <&pd IMX_SC_R_AUDIO_PLL_1>,
+                       <&pd IMX_SC_R_ASRC_0>,
+                       <&pd IMX_SC_R_SAI_0>,
+                       <&pd IMX_SC_R_SAI_1>,
+                       <&pd IMX_SC_R_SAI_2>,
+                       <&pd IMX_SC_R_SAI_3>,
+                       <&pd IMX_SC_R_SPDIF_0>,
+                       <&pd IMX_SC_R_MQS_0>;
+       clocks = <&aud_rec0_lpcg IMX_LPCG_CLK_0>,
+                <&aud_rec1_lpcg IMX_LPCG_CLK_0>,
+                <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>,
+                <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>,
+                <&clk_ext_aud_mclk0>,
+                <&clk_ext_aud_mclk1>,
+                <&clk_spdif0_rx>,
+                <&clk_sai0_rx_bclk>,
+                <&clk_sai0_tx_bclk>,
+                <&clk_sai1_rx_bclk>,
+                <&clk_sai1_tx_bclk>,
+                <&clk_sai2_rx_bclk>,
+                <&clk_sai3_rx_bclk>;
+       clock-names = "aud_rec_clk0_lpcg_clk",
+                     "aud_rec_clk1_lpcg_clk",
+                     "aud_pll_div_clk0_lpcg_clk",
+                     "aud_pll_div_clk1_lpcg_clk",
+                     "ext_aud_mclk0",
+                     "ext_aud_mclk1",
+                     "spdif0_rx",
+                     "sai0_rx_bclk",
+                     "sai0_tx_bclk",
+                     "sai1_rx_bclk",
+                     "sai1_tx_bclk",
+                     "sai2_rx_bclk",
+                     "sai3_rx_bclk";
+};
+
 &audio_ipg_clk {
        clock-frequency = <160000000>;
 };
 &lpspi3 {
        interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
 };
+
+&sai0 {
+       interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&sai1 {
+       interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&sai2 {
+       interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&sai3 {
+       interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&spdif0 {
+       interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>, /* rx */
+                    <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>; /* tx */
+};
index 6d13e4fafb761cc0b14175a5993346eff3b65c39..1e02b04494e949dac03b5710f1f2d88e43ae7cc1 100644 (file)
 
 };
 
+&dma_apbh {
+       interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
+};
+
 &enet0_lpcg {
        clocks = <&conn_enet0_root_clk>,
                 <&conn_enet0_root_clk>,
        assigned-clock-rates = <125000000>;
 };
 
+&gpmi {
+       interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+};
+
 &usdhc1 {
        compatible = "fsl,imx8dxl-usdhc", "fsl,imx8qxp-usdhc";
        interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
index 90d1901df2b1d1f80c400bb3e7d974fc61b42ed2..930e14fec42370e1be2c05f60c044bc984214ea4 100644 (file)
                pinctrl-0 = <&pinctrl_typec1>;
                reg = <0x50>;
                interrupt-parent = <&gpio2>;
-               interrupts = <11 8>;
+               interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
                status = "okay";
 
                typec1_con: connector {
diff --git a/src/arm64/freescale/imx8mm-iot-gateway.dts b/src/arm64/freescale/imx8mm-iot-gateway.dts
new file mode 100644 (file)
index 0000000..370558a
--- /dev/null
@@ -0,0 +1,218 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+//
+// Copyright 2020 CompuLab
+
+#include "imx8mm-ucm-som.dtsi"
+#include <dt-bindings/phy/phy-imx8-pcie.h>
+/ {
+       model = "CompuLab i.MX8MM IoT Gateway";
+       compatible = "compulab,imx8mm-iot-gateway", "compulab,imx8mm-ucm-som", "fsl,imx8mm";
+
+       regulator-usbhub-ena {
+               compatible = "regulator-fixed";
+               regulator-name = "usbhub_ena";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       regulator-usbhub-rst {
+               compatible = "regulator-fixed";
+               regulator-name = "usbhub_rst";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio3 24 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       regulator-uart1-mode {
+               compatible = "regulator-fixed";
+               regulator-name = "uart1_mode";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio4 26 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       regulator-uart1-duplex {
+               compatible = "regulator-fixed";
+               regulator-name = "uart1_duplex";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       regulator-uart1-shdn {
+               compatible = "regulator-fixed";
+               regulator-name = "uart1_shdn";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       regulator-uart1-trmen {
+               compatible = "regulator-fixed";
+               regulator-name = "uart1_trmen";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio4 25 GPIO_ACTIVE_LOW>;
+               regulator-always-on;
+       };
+
+       regulator-usdhc2-v {
+               compatible = "regulator-fixed";
+               regulator-name = "usdhc2_v";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       regulator-mpcie2-rst {
+               compatible = "regulator-fixed";
+               regulator-name = "mpcie2_rst";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       regulator-mpcie2lora-dis {
+               compatible = "regulator-fixed";
+               regulator-name = "mpcie2lora_dis";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio3 21 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       pcie0_refclk: clock-pcie0-refclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <100000000>;
+       };
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       eeprom@54 {
+               compatible = "atmel,24c08";
+               reg = <0x54>;
+               pagesize = <16>;
+       };
+};
+
+&ecspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
+       cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&pcie_phy {
+       fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
+       fsl,tx-deemph-gen1 = <0x2d>;
+       fsl,tx-deemph-gen2 = <0xf>;
+       fsl,clkreq-unsupported;
+       clocks = <&pcie0_refclk>;
+       clock-names = "ref";
+       status = "okay";
+};
+
+&pcie0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pcie0>;
+       reset-gpio = <&gpio3 20 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&usbotg1 {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usbotg2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       dr_mode = "host";
+       usb-role-switch;
+       status = "okay";
+
+       usbhub@1 {
+               compatible = "usb424,9514";
+               reg = <1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb9514>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethernet: ethernet@1 {
+                       compatible = "usb424,ec00";
+                       reg = <1>;
+               };
+       };
+};
+
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       bus-width = <4>;
+       mmc-ddr-1_8v;
+       non-removable;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       /* mPCIe2 */
+                       MX8MM_IOMUXC_SAI5_RXD0_GPIO3_IO21               0x140
+                       MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22               0x140
+               >;
+       };
+
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK            0x82
+                       MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI            0x82
+                       MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO            0x82
+               >;
+       };
+
+       pinctrl_ecspi1_cs: ecspi1csgrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9               0x40000
+               >;
+       };
+
+       pinctrl_pcie0: pcie0grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20                0x140
+               >;
+       };
+
+       pinctrl_usb9514: usb9514grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28               0x140 /* USB_PS_EN */
+                       MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24               0x140 /* HUB_RSTn */
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx8mm-phygate-tauri-l-rs232-rs232.dtso b/src/arm64/freescale/imx8mm-phygate-tauri-l-rs232-rs232.dtso
new file mode 100644 (file)
index 0000000..353ace3
--- /dev/null
@@ -0,0 +1,72 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2021 PHYTEC Messtechnik GmbH
+ * Author: Jens Lang <j.lang@phytec.de>
+ *
+ * Tauri-L 2 x RS232:
+ *  - GPIO3_20 uart4_rs485_en needs to be driven low (inactive)
+ */
+
+#include <dt-bindings/clock/imx8mm-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include "imx8mm-pinfunc.h"
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+       compatible = "phytec,imx8mm-phygate-tauri-l";
+
+};
+
+&gpio3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio3_hog>;
+
+       uart4_rs485_en {
+               gpio-hog;
+               gpios = <20 GPIO_ACTIVE_HIGH>;
+               output-low;
+               line-name = "uart4_rs485_en";
+       };
+};
+
+/* UART2 - RS232  */
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       assigned-clocks = <&clk IMX8MM_CLK_UART2>;
+       assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
+       status = "okay";
+};
+
+/* UART4 - RS232  */
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       assigned-clocks = <&clk IMX8MM_CLK_UART4>;
+       assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_gpio3_hog: gpio3hoggrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20        0x49
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX     0x00
+                       MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX     0x00
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX     0x49
+                       MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX     0x49
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx8mm-phygate-tauri-l-rs232-rs485.dtso b/src/arm64/freescale/imx8mm-phygate-tauri-l-rs232-rs485.dtso
new file mode 100644 (file)
index 0000000..8a75d67
--- /dev/null
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2021 PHYTEC Messtechnik GmbH
+ * Author: Jens Lang <j.lang@phytec.de>
+ *
+ * Tauri-L RS232 + RS485:
+ *  - GPIO3_20 uart4_rs485_en needs to be driven high (active)
+ *  - GPIO3_25 RS485_DE Driver enable
+ */
+
+#include <dt-bindings/clock/imx8mm-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include "imx8mm-pinfunc.h"
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+       compatible = "phytec,imx8mm-phygate-tauri-l";
+
+};
+
+&gpio3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio3_hog>;
+
+       uart4_rs485_en {
+               gpio-hog;
+               gpios = <20 GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "uart4_rs485_en";
+       };
+};
+
+/* UART2 - RS232  */
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       assigned-clocks = <&clk IMX8MM_CLK_UART2>;
+       assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
+       status = "okay";
+};
+
+/* UART4 - RS485  */
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       assigned-clocks = <&clk IMX8MM_CLK_UART4>;
+       assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
+       rts-gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>;
+       linux,rs485-enabled-at-boot-time;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_gpio3_hog: gpio3hoggrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20        0x49
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX     0x00
+                       MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX     0x00
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX     0x49
+                       MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX     0x49
+                       MX8MM_IOMUXC_SAI5_MCLK_GPIO3_IO25       0x49
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx8mm-phygate-tauri-l-rs232-rts-cts.dtso b/src/arm64/freescale/imx8mm-phygate-tauri-l-rs232-rts-cts.dtso
new file mode 100644 (file)
index 0000000..107f743
--- /dev/null
@@ -0,0 +1,41 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2023 PHYTEC Messtechnik GmbH
+ * Author: Jens Lang <j.lang@phytec.de>
+ *
+ * Tauri-L RS232 with RTS/CTS hardware flow control:
+ *  - UART4_TX becomes RTS
+ *  - UART4_RX becomes CTS
+ */
+
+#include <dt-bindings/clock/imx8mm-clock.h>
+#include "imx8mm-pinfunc.h"
+
+/dts-v1/;
+/plugin/;
+
+
+&{/} {
+       compatible = "phytec,imx8mm-phygate-tauri-l";
+
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       assigned-clocks = <&clk IMX8MM_CLK_UART2>;
+       assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX     0x00
+                       MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX     0x00
+                       MX8MM_IOMUXC_UART4_RXD_UART2_DCE_CTS_B  0x00
+                       MX8MM_IOMUXC_UART4_TXD_UART2_DCE_RTS_B  0x00
+               >;
+       };
+};
index 27a902569e2a28434af3b6b15dcdb3a43f7a9606..ba6ce3c7f4779da8f91081083c43459f71cff298 100644 (file)
@@ -7,6 +7,7 @@
 
 #include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/leds/common.h>
+#include <dt-bindings/phy/phy-imx8-pcie.h>
 #include "imx8mm-phycore-som.dtsi"
 
 / {
        status = "okay";
 };
 
+&pcie_phy {
+       clocks = <&clk IMX8MM_CLK_PCIE1_PHY>;
+       fsl,clkreq-unsupported;
+       fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_OUTPUT>;
+       fsl,tx-deemph-gen1 = <0x2d>;
+       fsl,tx-deemph-gen2 = <0xf>;
+       status = "okay";
+};
+
 &pwm1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
index 8c0c6e715924713001f0dc0def853166345ffaff..ca0205b9019e6fcd9c0b9a970c8bf8e169ccac37 100644 (file)
        flash0: flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
-               #address-cells = <1>;
-               #size-cells = <1>;
                spi-max-frequency = <84000000>;
                spi-tx-bus-width = <1>;
                spi-rx-bus-width = <4>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
        };
 };
 
diff --git a/src/arm64/freescale/imx8mm-ucm-som.dtsi b/src/arm64/freescale/imx8mm-ucm-som.dtsi
new file mode 100644 (file)
index 0000000..d3b2120
--- /dev/null
@@ -0,0 +1,679 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+//
+// Copyright 2018 CompuLab
+
+/dts-v1/;
+
+#include "imx8mm.dtsi"
+#include <dt-bindings/leds/common.h>
+
+/ {
+       aliases {
+               rtc0 = &rtc_i2c;
+               rtc1 = &snvs_rtc;
+               mmc0 = &usdhc3;
+       };
+
+       chosen {
+               stdout-path = &uart3;
+       };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm2 0 3000000 0>;
+               brightness-levels = <0 255>;
+               num-interpolated-steps = <255>;
+               default-brightness-level = <222>;
+               status = "okay";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_led>;
+
+               heartbeat-led {
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       pmic_osc: clock-pmic {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               clock-output-names = "pmic_osc";
+       };
+
+       wlreg_on: regulator-wlreg-on {
+               compatible = "regulator-fixed";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "wlreg_on";
+               gpio = <&gpio2 10 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <100>;
+               enable-active-high;
+               regulator-always-on;
+               status = "okay";
+       };
+
+       reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
+               compatible = "regulator-fixed";
+               regulator-name = "VSD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <100>;
+               off-on-delay-us = <12000>;
+       };
+
+       regulator-usdhc3rst {
+               compatible = "regulator-fixed";
+               regulator-name = "usdhc3_rst";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio3 16 GPIO_ACTIVE_HIGH>;
+               regulator-always-on;
+               enable-active-high;
+       };
+
+       regulator-fec1rst {
+               compatible = "regulator-fixed";
+               regulator-name = "fec1_rst";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>;
+               regulator-always-on;
+               enable-active-high;
+               startup-delay-us = <500>;
+               regulator-boot-on;
+       };
+};
+
+&A53_0 {
+       arm-supply = <&buck2>;
+};
+
+&cpu_alert0 {
+       temperature = <105000>;
+};
+
+&cpu_crit0 {
+       temperature = <115000>;
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec1>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy0>;
+       fsl,magic-packet;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+               };
+       };
+};
+
+&i2c2 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+
+       pmic@4b {
+               reg = <0x4b>;
+               compatible = "rohm,bd71837";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               #clock-cells = <0>;
+               clocks = <&pmic_osc>;
+               clock-names = "osc";
+               clock-output-names = "pmic_clk";
+               interrupt-parent = <&gpio1>;
+               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+               rohm,reset-snvs-powered;
+
+               regulators {
+                       buck1: BUCK1 {
+                               regulator-name = "buck1";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <1250>;
+                       };
+
+                       buck2: BUCK2 {
+                               regulator-name = "buck2";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <1250>;
+                               rohm,dvs-run-voltage = <1000000>;
+                               rohm,dvs-idle-voltage = <900000>;
+                       };
+
+                       buck3: BUCK3 {
+                               regulator-name = "buck3";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck4: BUCK4 {
+                               regulator-name = "buck4";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck5: BUCK5 {
+                               regulator-name = "buck5";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck6: BUCK6 {
+                               regulator-name = "buck6";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck7: BUCK7 {
+                               regulator-name = "buck7";
+                               regulator-min-microvolt = <1605000>;
+                               regulator-max-microvolt = <1995000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck8: BUCK8 {
+                               regulator-name = "buck8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo1: LDO1 {
+                               regulator-name = "ldo1";
+                               regulator-min-microvolt = <1600000>;
+                               regulator-max-microvolt = <1900000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo2: LDO2 {
+                               regulator-name = "ldo2";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo3: LDO3 {
+                               regulator-name = "ldo3";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo4: LDO4 {
+                               regulator-name = "ldo4";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo5: LDO5 {
+                               regulator-name = "ldo5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       ldo6: LDO6 {
+                               regulator-name = "ldo6";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo7: LDO7 {
+                               regulator-name = "ldo7";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+               };
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c08";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+
+       rtc_i2c: rtc@69 {
+               compatible = "abracon,ab1805";
+               reg = <0x69>;
+       };
+};
+
+&i2c3 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "disabled";
+};
+
+&pwm2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm_backlight>;
+       status = "okay";
+};
+
+&sai2 {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai2>;
+       assigned-clocks = <&clk IMX8MM_CLK_SAI2>;
+       assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <49152000>;
+       clocks = <&clk IMX8MM_CLK_SAI2_IPG>, <&clk IMX8MM_CLK_DUMMY>,
+               <&clk IMX8MM_CLK_SAI2_ROOT>, <&clk IMX8MM_CLK_DUMMY>,
+               <&clk IMX8MM_CLK_DUMMY>, <&clk IMX8MM_AUDIO_PLL1_OUT>,
+               <&clk IMX8MM_AUDIO_PLL2_OUT>;
+       clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
+       fsl,sai-asynchronous;
+       status = "okay";
+};
+
+&snvs {
+       status = "okay";
+};
+
+&snvs_pwrkey {
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       assigned-clocks = <&clk IMX8MM_CLK_UART1>;
+       assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
+       status = "disabled";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       assigned-clocks = <&clk IMX8MM_CLK_UART2>;
+       assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
+       status = "disabled";
+};
+
+&uart3 { /* console */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       status = "okay";
+};
+
+&uart4 { /* bluetooth */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       assigned-clocks = <&clk IMX8MM_CLK_UART4>;
+       assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
+       uart-has-rtscts;
+       status = "disabled";
+
+       bluetooth {
+               compatible = "brcm,bcm4330-bt";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_bt>;
+               max-speed = <3000000>;
+               device-wakeup-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&usbotg1 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       disable-over-current;
+       status = "disabled";
+};
+
+&usbotg2 {
+       dr_mode = "host";
+       hnp-disable;
+       srp-disable;
+       disable-over-current;
+       status = "disabled";
+};
+
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_usdhc1_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>, <&pinctrl_usdhc1_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>, <&pinctrl_usdhc1_gpio>;
+       bus-width = <4>;
+       non-removable;
+};
+
+&usdhc2 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+       wp-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
+       no-1-8-v;
+       bus-width = <4>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       status = "okay";
+};
+
+&usdhc3 {
+       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;
+       no-1-8-v;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog_1>;
+
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10              0x19
+                       MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16            0x190
+               >;
+       };
+
+       pinctrl_bt: bt0grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6                0x19 /* BT_REG_ON */
+                       MX8MM_IOMUXC_SD1_DATA5_GPIO2_IO7                0x19 /* BT_DEV_WU */
+                       MX8MM_IOMUXC_SD1_DATA6_GPIO2_IO8                0x19 /* BT_HST_WU */
+               >;
+       };
+
+       pinctrl_fec1: fec1grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_ENET_MDC_ENET1_MDC                 0x3
+                       MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO               0x3
+                       MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3           0x1f
+                       MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2           0x1f
+                       MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1           0x1f
+                       MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0           0x1f
+                       MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3           0x91
+                       MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2           0x91
+                       MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1           0x91
+                       MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0           0x91
+                       MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC           0x1f
+                       MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC           0x91
+                       MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x91
+                       MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL     0x1f
+               >;
+       };
+
+       pinctrl_gpio_led: gpioledgrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12              0x19
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL                  0x400001c3
+                       MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA                  0x400001c3
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL                  0x400001c3
+                       MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA                  0x400001c3
+               >;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL                  0x400001c3
+                       MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA                  0x400001c3
+               >;
+       };
+
+       pinctrl_i2c4: i2c4grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL                  0x400001c3
+                       MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA                  0x400001c3
+               >;
+       };
+
+       pinctrl_pmic: pmicgrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3               0x41
+               >;
+       };
+
+       pinctrl_pwm_backlight: pwmbacklightgrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_GPIO1_IO13_PWM2_OUT                0x03
+               >;
+       };
+
+
+       pinctrl_sai2: sai2grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SAI2_MCLK_SAI2_MCLK                0xd6
+                       MX8MM_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC             0xd6
+                       MX8MM_IOMUXC_SAI2_RXFS_SAI2_RX_SYNC             0xd6
+                       MX8MM_IOMUXC_SAI2_TXC_SAI2_TX_BCLK              0xd6
+                       MX8MM_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0            0xd6
+                       MX8MM_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0            0xd6
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_UART1_RXD_UART1_DCE_RX             0x140
+                       MX8MM_IOMUXC_UART1_TXD_UART1_DCE_TX             0x140
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_UART2_RXD_UART2_DCE_RX             0x140
+                       MX8MM_IOMUXC_UART2_TXD_UART2_DCE_TX             0x140
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX             0x49
+                       MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX             0x49
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_ECSPI2_MISO_UART4_DCE_CTS_B        0x140
+                       MX8MM_IOMUXC_ECSPI2_MOSI_UART4_DCE_TX           0x140
+                       MX8MM_IOMUXC_ECSPI2_SS0_UART4_DCE_RTS_B         0x140
+                       MX8MM_IOMUXC_ECSPI2_SCLK_UART4_DCE_RX           0x140
+               >;
+       };
+
+       pinctrl_usdhc1_gpio: usdhc1grpgpiogrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SD1_RESET_B_GPIO2_IO10             0x41
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK                 0x190
+                       MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD                 0x1d0
+                       MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0             0x1d0
+                       MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1             0x1d0
+                       MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2             0x1d0
+                       MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3             0x1d0
+                       MX8MM_IOMUXC_GPIO1_IO03_USDHC1_VSELECT          0x1d0
+               >;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1grp100mhzgrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK                 0x194
+                       MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD                 0x1d4
+                       MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0             0x1d4
+                       MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1             0x1d4
+                       MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2             0x1d4
+                       MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3             0x1d4
+                       MX8MM_IOMUXC_GPIO1_IO03_USDHC1_VSELECT          0x1d0
+               >;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1grp200mhzgrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SD1_CLK_USDHC1_CLK                 0x196
+                       MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD                 0x1d6
+                       MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0             0x1d6
+                       MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1             0x1d6
+                       MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2             0x1d6
+                       MX8MM_IOMUXC_SD1_DATA3_USDHC1_DATA3             0x1d6
+                       MX8MM_IOMUXC_GPIO1_IO03_USDHC1_VSELECT          0x1d0
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2grpgpiogrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19             0x41
+                       MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12                0x41
+                       MX8MM_IOMUXC_SD2_WP_GPIO2_IO20                  0x00
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                 0x190
+                       MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                 0x1d0
+                       MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0             0x1d0
+                       MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1             0x1d0
+                       MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x1d0
+                       MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x1d0
+                       MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0x1d0
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2grp100mhzgrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                 0x194
+                       MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                 0x1d4
+                       MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0             0x1d4
+                       MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1             0x1d4
+                       MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x1d4
+                       MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x1d4
+                       MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0x1d0
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2grp200mhzgrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                 0x196
+                       MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                 0x1d6
+                       MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0             0x1d6
+                       MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1             0x1d6
+                       MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x1d6
+                       MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x1d6
+                       MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0x1d0
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x40000190
+                       MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d0
+                       MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d0
+                       MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d0
+                       MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d0
+                       MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d0
+                       MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d0
+                       MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d0
+                       MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d0
+                       MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d0
+                       MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x190
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3grp100mhzgrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x40000194
+                       MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d4
+                       MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d4
+                       MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d4
+                       MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d4
+                       MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d4
+                       MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d4
+                       MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d4
+                       MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d4
+                       MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d4
+                       MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x194
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3grp200mhzgrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x40000196
+                       MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d6
+                       MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d6
+                       MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d6
+                       MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d6
+                       MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d6
+                       MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d6
+                       MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d6
+                       MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d6
+                       MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d6
+                       MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x196
+               >;
+       };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B            0xc6
+               >;
+       };
+};
index de7f67a4ff2a7fd99ff37711daa92db10e2a3952..36803b038cd54a30d4ceb3a7d07701f897993d05 100644 (file)
@@ -5,6 +5,7 @@
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/leds/common.h>
 #include <dt-bindings/net/ti-dp83867.h>
 
 / {
                        ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                        tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
                        rx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+
+                       leds {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               led@1 {
+                                       reg = <1>;
+                                       color = <LED_COLOR_ID_AMBER>;
+                                       function = LED_FUNCTION_LAN;
+                                       default-state = "keep";
+                               };
+
+                               led@2 {
+                                       reg = <2>;
+                                       color = <LED_COLOR_ID_GREEN>;
+                                       function = LED_FUNCTION_LAN;
+                                       default-state = "keep";
+                               };
+                       };
                };
        };
 };
index 35ae0faa815bc5d436c2665882e7127bf5ff3bb1..136cb30df03a66dd8efa2e8f2a7db0c4aa5b2c4c 100644 (file)
                interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
                interrupt-controller;
                #interrupt-cells = <1>;
-               #address-cells = <1>;
-               #size-cells = <0>;
 
                adc {
                        compatible = "gw,gsc-adc";
index c11260c26d0b43b67c19852119eda98e3364cb9a..1d56f2a6c06a5ccccd00f4cfcdcccb187608dc51 100644 (file)
                interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
                interrupt-controller;
                #interrupt-cells = <1>;
-               #address-cells = <1>;
-               #size-cells = <0>;
 
                adc {
                        compatible = "gw,gsc-adc";
index db1737bf637df13f3eb1a43a330a600705a9a20a..45470160f98f51ee107873c053ff61394f9e5a60 100644 (file)
                interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
                interrupt-controller;
                #interrupt-cells = <1>;
-               #address-cells = <1>;
-               #size-cells = <0>;
 
                adc {
                        compatible = "gw,gsc-adc";
index 05489a31e7fd8d85efb36a75b1c341705bb95676..ef951bc9f0dd41bc1f73e6cc2f9afe30be4ab425 100644 (file)
                interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
                interrupt-controller;
                #interrupt-cells = <1>;
-               #address-cells = <1>;
-               #size-cells = <0>;
 
                adc {
                        compatible = "gw,gsc-adc";
index 98544741ce1768ec73492da272c183ec6c18a658..5fa39591419115f7e0a4a1cf81df0248c58382fb 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi2>;
 };
 
-/* Verdin CAN_1 (On-module) */
+/* On-module SPI */
 &ecspi3 {
        #address-cells = <1>;
        #size-cells = <0>;
-       cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>;
+       cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>, <&gpio4 19 GPIO_ACTIVE_LOW>;
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_ecspi3>;
+       pinctrl-0 = <&pinctrl_ecspi3>, <&pinctrl_tpm_spi_cs>;
        status = "okay";
 
+       /* Verdin CAN_1 */
        can1: can@0 {
                compatible = "microchip,mcp251xfd";
                clocks = <&clk40m>;
                reg = <0>;
                spi-max-frequency = <8500000>;
        };
+
+       verdin_som_tpm: tpm@1 {
+               compatible = "atmel,attpm20p", "tcg,tpm_tis-spi";
+               reg = <0x1>;
+               spi-max-frequency = <36000000>;
+       };
 };
 
 /* Verdin ETH_1 (On-module PHY) */
 
 /* Verdin I2C_2_DSI */
 &i2c2 {
-       clock-frequency = <10000>;
+       clock-frequency = <400000>;
        pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c2>;
        pinctrl-1 = <&pinctrl_i2c2_gpio>;
        pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>,
                    <&pinctrl_gpio3>, <&pinctrl_gpio4>,
                    <&pinctrl_gpio7>, <&pinctrl_gpio8>,
-                   <&pinctrl_gpio_hog1>, <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>,
-                   <&pinctrl_pmic_tpm_ena>;
+                   <&pinctrl_gpio_hog1>, <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>;
 
        pinctrl_can1_int: can1intgrp {
                fsl,pins =
        };
 
        /* control signal for optional ATTPM20P or SE050 */
-       pinctrl_pmic_tpm_ena: pmictpmenagrp {
+       pinctrl_tpm_spi_cs: tpmspicsgrp {
                fsl,pins =
                        <MX8MM_IOMUXC_SAI1_TXD7_GPIO4_IO19              0x106>; /* PMIC_TPM_ENA */
        };
index fb24b9aa1b938954201945f6dd42554a05fd0328..e68a3fd73e17dff40f8f1499b317b8a276f51cac 100644 (file)
        flash0: flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
-               #address-cells = <1>;
-               #size-cells = <1>;
                spi-max-frequency = <84000000>;
                spi-tx-bus-width = <1>;
                spi-rx-bus-width = <4>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
        };
 };
 
index 0b1fa04f1d678190f3c88713fe6b7bc0c7a5e4d3..72004ab6bda55047cb488c10f1f32a64537c2a29 100644 (file)
                interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
                interrupt-controller;
                #interrupt-cells = <1>;
-               #address-cells = <1>;
-               #size-cells = <0>;
 
                adc {
                        compatible = "gw,gsc-adc";
index e5d3901f29136f4051e55610045f1908a94eef57..cc9b81d4618868f83a0d2197fa495d700bdedade 100644 (file)
 
                simple-audio-card,cpu {
                        sound-dai = <&sai3>;
+                       frame-master;
+                       bitclock-master;
                };
 
                simple-audio-card,codec {
                        sound-dai = <&wm8962>;
-                       clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO1>;
-                       frame-master;
-                       bitclock-master;
                };
        };
 };
 
        adv_bridge: hdmi@3d {
                compatible = "adi,adv7535";
-               reg = <0x3d>, <0x3c>, <0x3e>, <0x3f>;
-               reg-names = "main", "cec", "edid", "packet";
+               reg = <0x3d>;
+               reg-names = "main";
+               interrupt-parent = <&gpio4>;
+               interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
                adi,dsi-lanes = <4>;
                #sound-dai-cells = <0>;
+               avdd-supply = <&buck5>;
+               dvdd-supply = <&buck5>;
+               pvdd-supply = <&buck5>;
+               a2vdd-supply = <&buck5>;
+               v1p2-supply = <&buck5>;
+               v3p3-supply = <&buck4>;
 
                ports {
                        #address-cells = <1>;
 &sai3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_sai3>;
-       assigned-clocks = <&clk IMX8MP_CLK_SAI3>,
-                         <&clk IMX8MP_AUDIO_PLL2> ;
-       assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL2_OUT>;
-       assigned-clock-rates = <12288000>, <361267200>;
+       assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
+       assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <12288000>;
        fsl,sai-mclk-direction-output;
        status = "okay";
 };
index 8be251b6937891bfbd38ebdb14f38f4bbdb87b26..15f7ab58db36cca562ab18ef249cc7219f17331b 100644 (file)
@@ -71,7 +71,6 @@
 
        mtl_rx_setup: rx-queues-config {
                snps,rx-queues-to-use = <5>;
-               snps,rx-sched-sp;
 
                queue0 {
                        snps,dcb-algorithm;
 
        mtl_tx_setup: tx-queues-config {
                snps,tx-queues-to-use = <5>;
-               snps,tx-sched-sp;
 
                queue0 {
                        snps,dcb-algorithm;
index 9b8f97a84e6197a93c5011a47f94e5e914d04479..af02af9e5334daf3d2b30dd58e86d5355adb9558 100644 (file)
                stdout-path = &uart2;
        };
 
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+               type = "a";
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
        };
 };
 
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi>;
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
 &i2c1 {
        clock-frequency = <400000>;
        pinctrl-names = "default";
        status = "okay";
 };
 
+&lcdif3 {
+       status = "okay";
+};
+
 &snvs_pwrkey {
        status = "okay";
 };
                >;
        };
 
+       pinctrl_hdmi: hdmigrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL                     0x1c3
+                       MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA                     0x1c3
+                       MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD                         0x19
+                       MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC                         0x19
+               >;
+       };
+
        pinctrl_i2c1: i2c1grp {
                fsl,pins = <
                        MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL                                 0x400001c2
index 3b1c940860e02bc09d84c565da25fdc2b5da273b..ebdf13e97b4e2d1f2dc22e7fe916bcba4ef5ac1e 100644 (file)
                };
        };
 
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "X38";
+               type = "a";
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        led {
                compatible = "gpio-leds";
 
        status = "okay";
 };
 
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       ddc-i2c-bus = <&i2c5>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi>;
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
+&lcdif3 {
+       status = "okay";
+};
+
 &pcie_phy {
        clock-names = "ref";
        clocks = <&hsio_blk_ctrl>;
index ac7ec7533a3c8c7b28ec1e75616b55735ba9b306..ef012e8365b1f5ae66d5f50d0dfd4cd2a108a183 100644 (file)
                };
        };
 
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "X28";
+               type = "a";
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        led {
                compatible = "gpio-leds";
 
        status = "okay";
 };
 
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       ddc-i2c-bus = <&i2cmuxed1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi>;
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
+&lcdif3 {
+       status = "okay";
+};
+
 &pcie_phy {
        clocks = <&pcieclk 1>;
        clock-names = "ref";
index f5115f9e8c473be2dcb7067f96bbfb946a7fd3e1..a90e28c07e3f1d5b3b29d9288528e98a868e1b3f 100644 (file)
        cpu-supply = <&buck2>;
 };
 
+&audio_blk_ctrl {
+       assigned-clocks = <&clk IMX8MP_AUDIO_PLL1>;
+       assigned-clock-rates = <393216000>;
+};
+
 &ecspi1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ecspi1>;
                #size-cells = <0>;
 
                /* Up to one of these two PHYs may be populated. */
-               ethphy0f: ethernet-phy@0 { /* SMSC LAN8740Ai */
+               ethphy0f: ethernet-phy@1 { /* SMSC LAN8740Ai */
                        compatible = "ethernet-phy-id0007.c110",
                                     "ethernet-phy-ieee802.3-c22";
                        interrupt-parent = <&gpio3>;
                        interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
                        pinctrl-0 = <&pinctrl_ethphy0>;
                        pinctrl-names = "default";
-                       reg = <0>;
+                       reg = <1>;
                        reset-assert-us = <1000>;
                        reset-deassert-us = <1000>;
                        reset-gpios = <&ioexp 4 GPIO_ACTIVE_LOW>;
                #size-cells = <0>;
 
                /* Up to one PHY may be populated. */
-               ethphy1f: ethernet-phy@1 { /* SMSC LAN8740Ai */
+               ethphy1f: ethernet-phy@2 { /* SMSC LAN8740Ai */
                        compatible = "ethernet-phy-id0007.c110",
                                     "ethernet-phy-ieee802.3-c22";
                        interrupt-parent = <&gpio4>;
                        interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
                        pinctrl-0 = <&pinctrl_ethphy1>;
                        pinctrl-names = "default";
-                       reg = <1>;
+                       reg = <2>;
                        reset-assert-us = <1000>;
                        reset-deassert-us = <1000>;
                        reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
diff --git a/src/arm64/freescale/imx8mp-evk-mx8-dlvds-lcd1.dtso b/src/arm64/freescale/imx8mp-evk-mx8-dlvds-lcd1.dtso
new file mode 100644 (file)
index 0000000..1b71890
--- /dev/null
@@ -0,0 +1,77 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 NXP
+ */
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+       panel-lvds {
+               compatible = "koe,tx26d202vm0bwa";
+               backlight = <&backlight_lvds>;
+               power-supply = <&reg_vext_3v3>;
+
+               panel-timing {
+                       clock-frequency = <148500000>;
+                       hactive = <1920>;
+                       vactive = <1200>;
+                       hfront-porch = <130>;
+                       hback-porch = <70>;
+                       hsync-len = <30>;
+                       vfront-porch = <5>;
+                       vback-porch = <5>;
+                       vsync-len = <5>;
+                       de-active = <1>;
+               };
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               dual-lvds-odd-pixels;
+
+                               panel_in_odd: endpoint {
+                                       remote-endpoint = <&ldb_lvds_ch0>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               dual-lvds-even-pixels;
+
+                               panel_in_even: endpoint {
+                                       remote-endpoint = <&ldb_lvds_ch1>;
+                               };
+                       };
+               };
+       };
+};
+
+&backlight_lvds {
+       status = "okay";
+};
+
+&lcdif2 {
+       status = "okay";
+};
+
+&lvds_bridge {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       ldb_lvds_ch0: endpoint {
+                               remote-endpoint = <&panel_in_odd>;
+                       };
+               };
+
+               port@2 {
+                       ldb_lvds_ch1: endpoint {
+                               remote-endpoint = <&panel_in_even>;
+                       };
+               };
+       };
+};
index 8be5b2a57f27f4c67c14e813f94c9b49d4303b5a..938347704136ac583258e8ed08ae48d41dfe20a9 100644 (file)
                stdout-path = &uart2;
        };
 
+       backlight_lvds: backlight-lvds {
+               compatible = "pwm-backlight";
+               pwms = <&pwm2 0 100000 0>;
+               brightness-levels = <0 100>;
+               num-interpolated-steps = <100>;
+               default-brightness-level = <100>;
+               power-supply = <&reg_per_12v>;
+               status = "disabled";
+       };
+
        hdmi-connector {
                compatible = "hdmi-connector";
                label = "hdmi";
                enable-active-high;
        };
 
+       reg_per_12v: regulator-per-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "PER_12V";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               gpio = <&pca6416 1 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
        reg_usdhc2_vmmc: regulator-usdhc2 {
                compatible = "regulator-fixed";
                pinctrl-names = "default";
                regulator-max-microvolt = <3300000>;
        };
 
+       audio_codec_bt_sco: audio-codec-bt-sco {
+               compatible = "linux,bt-sco";
+               #sound-dai-cells = <1>;
+       };
+
        sound {
                compatible = "simple-audio-card";
                simple-audio-card,name = "wm8960-audio";
 
        };
 
+       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>;
+
+               btcpu: simple-audio-card,cpu {
+                       sound-dai = <&sai2>;
+                       dai-tdm-slot-num = <2>;
+                       dai-tdm-slot-width = <16>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&audio_codec_bt_sco 1>;
+               };
+       };
+
        sound-hdmi {
                compatible = "fsl,imx-audio-hdmi";
                model = "audio-hdmi";
                };
        };
 
+       sound-xcvr {
+               compatible = "fsl,imx-audio-card";
+               model = "imx-audio-xcvr";
+
+               pri-dai-link {
+                       link-name = "XCVR PCM";
+
+                       cpu {
+                               sound-dai = <&xcvr>;
+                       };
+               };
+       };
+
        reserved-memory {
                #address-cells = <2>;
                #size-cells = <2>;
 
        mtl_tx_setup: tx-queues-config {
                snps,tx-queues-to-use = <5>;
-               snps,tx-sched-sp;
 
                queue0 {
                        snps,dcb-algorithm;
        status = "okay";
 };
 
+&sai2 {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai2>;
+       assigned-clocks = <&clk IMX8MP_CLK_SAI2>;
+       assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <12288000>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
 &sai3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_sai3>;
        status = "okay";
 };
 
+&xcvr {
+       #sound-dai-cells = <0>;
+       status = "okay";
+};
+
 &iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
        pinctrl_audio_pwr_reg: audiopwrreggrp {
                fsl,pins = <
                        MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29               0xd6
                >;
        };
 
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD         0x40000010
+               >;
+       };
+
        pinctrl_i2c1: i2c1grp {
                fsl,pins = <
                        MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL         0x400001c2
                >;
        };
 
+       pinctrl_sai2: sai2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK    0xd6
+                       MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC   0xd6
+                       MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00 0xd6
+                       MX8MP_IOMUXC_SAI2_RXD0__AUDIOMIX_SAI2_RX_DATA00 0xd6
+               >;
+       };
+
        pinctrl_sai3: sai3grp {
                fsl,pins = <
                        MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC   0xd6
index da4b1807c2753cdecdcbcbef6e859e38cdee6adf..83194ea7cb81e179cbbe4025bf2261360c40af8a 100644 (file)
        };
 };
 
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi>;
+       status = "okay";
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
+&lcdif3 {
+       status = "okay";
+};
+
 &i2c1 {
        sgtl5000: audio-codec@a {
                compatible = "fsl,sgtl5000";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_smarc_gpio>;
 
+       pinctrl_hdmi: hdmigrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL     0x1c2
+                       MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA     0x1c2
+                       MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC         0x10
+                       MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD         0x10
+               >;
+       };
+
        pinctrl_sai2: sai2grp {
                fsl,pins = <
                        MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC   0xd6
diff --git a/src/arm64/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts b/src/arm64/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts
new file mode 100644 (file)
index 0000000..d7fd9d3
--- /dev/null
@@ -0,0 +1,906 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) 2023-2024 TQ-Systems GmbH <linux@ew.tq-group.com>,
+ * D-82229 Seefeld, Germany.
+ * Author: Martin Schmiedel
+ * Author: Alexander Stein
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/net/ti-dp83867.h>
+#include <dt-bindings/phy/phy-imx8-pcie.h>
+#include <dt-bindings/pwm/pwm.h>
+#include "imx8mp-tqma8mpql.dtsi"
+
+/ {
+       model = "TQ-Systems i.MX8MPlus TQMa8MPxL on MBa8MP-RAS314";
+       compatible = "tq,imx8mp-tqma8mpql-mba8mp-ras314", "tq,imx8mp-tqma8mpql", "fsl,imx8mp";
+       chassis-type = "embedded";
+
+       chosen {
+               stdout-path = &uart4;
+       };
+
+       aliases {
+               mmc0 = &usdhc3;
+               mmc1 = &usdhc2;
+               mmc2 = &usdhc1;
+               rtc0 = &pcf85063;
+               rtc1 = &snvs_rtc;
+       };
+
+       /* X8 */
+       backlight_lvds: backlight {
+               compatible = "pwm-backlight";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_backlight>;
+               pwms = <&pwm2 0 5000000 0>;
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <7>;
+               power-supply = <&reg_vcc_12v0>;
+               enable-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+               status = "disabled";
+       };
+
+       /* X7 + X8 */
+       display: display {
+               /*
+                * Display is not fixed, so compatible has to be added from
+                * DT overlay
+                */
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_lvdsdisplay>;
+               power-supply = <&reg_vcc_3v3>;
+               enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+               backlight = <&backlight_lvds>;
+               status = "disabled";
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpioled>;
+
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       function-enumerator = <0>;
+                       gpios = <&gpio4 18 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-2 {
+                       color = <LED_COLOR_ID_YELLOW>;
+                       function = LED_FUNCTION_STATUS;
+                       function-enumerator = <1>;
+                       gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "X9";
+               type = "a";
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
+       reg_usdhc2_vmmc: regulator-usdhc2 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+               regulator-name = "VSD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <100>;
+               off-on-delay-us = <12000>;
+       };
+
+       reg_vcc_3v3: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "V_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_vcc_5v0: regulator-5v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "V_5V0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       reg_vcc_12v0: regulator-12v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "V_12V";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* global autoconfigured region for contiguous allocations */
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0 0x38000000>;
+                       alloc-ranges = <0 0x40000000 0 0xB0000000>;
+                       linux,cma-default;
+               };
+       };
+
+       rfkill {
+               compatible = "rfkill-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_rfkill>;
+               label = "rfkill-pcie-wlan";
+               radio-type = "wlan";
+               shutdown-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
+       };
+
+       sound {
+               compatible = "fsl,imx-audio-tlv320aic32x4";
+               model = "tq-mba8mp-ras314";
+               audio-cpu = <&sai5>;
+               audio-codec = <&tlv320aic3x04>;
+               audio-routing =
+                       "IN3_L", "Mic Jack",
+                       "Mic Jack", "Mic Bias",
+                       "Headphone Jack", "HPL",
+                       "Headphone Jack", "HPR";
+       };
+};
+
+&ecspi3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi3>;
+       cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>, <&gpio1 6 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&eqos {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_eqos>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy3>;
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy3: ethernet-phy@3 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <3>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_eqos_phy>;
+                       reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <500000>;
+                       reset-deassert-us = <50000>;
+                       enet-phy-lane-no-swap;
+                       interrupt-parent = <&gpio4>;
+                       interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+                       ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+                       ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+                       ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+                       ti,dp83867-rxctrl-strap-quirk;
+                       ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+               };
+       };
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy0>;
+       fsl,magic-packet;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_fec_phy>;
+                       reset-gpios = <&gpio4 0 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <500000>;
+                       reset-deassert-us = <50000>;
+                       enet-phy-lane-no-swap;
+                       interrupt-parent = <&gpio4>;
+                       interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+                       ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+                       ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+                       ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+                       ti,dp83867-rxctrl-strap-quirk;
+                       ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+               };
+       };
+};
+
+&gpio1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio1>;
+
+       gpio-line-names = "WIFI_PMIC_EN", "LVDS_RESET#", "", "",
+                         "", "", "GPIO8", "",
+                         "", "", "", "",
+                         "", "", "GPIO12", "GPIO13",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "";
+
+       wifi-pmic-en-hog {
+               gpio-hog;
+               gpios = <0 0>;
+               output-high;
+               line-name = "WIFI_PMIC_EN";
+       };
+};
+
+&gpio2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio2>;
+
+       gpio-line-names = "GPIO22", "GPIO23", "GPIO24", "GPIO25",
+                         "GPIO26", "GPIO27", "CAM_GPIO1", "CAM_GPIO2",
+                         "", "", "GPIO1", "GPIO0",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "";
+};
+
+&gpio3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio3>;
+
+       gpio-line-names = "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "TEMP_EVENT#", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "";
+};
+
+&gpio4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio4>;
+
+       gpio-line-names = "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "HDMI_OC#", "GPIO14", "GPIO15", "GPIO16",
+                         "GPIO17", "PCIE_WAKE#", "GPIO19", "GPIO20",
+                         "PCIE_PERST#", "", "", "";
+
+       pewake-hog {
+               gpio-hog;
+               gpios = <25 0>;
+               input;
+               line-name = "PCIE_WAKE#";
+       };
+};
+
+&gpio5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio5>, <&pinctrl_gpt1_gpio>,
+                   <&pinctrl_gpt2_gpio>, <&pinctrl_gpt3_gpio>;
+
+       gpio-line-names = "", "GPIO18", "", "GPIO3",
+                         "GPIO2", "GPIO21", "", "",
+                         "", "", "", "",
+                         "", "", "", "",
+                         "", "", "GPIO5", "GPIO6",
+                         "", "", "GPIO11", "GPIO10",
+                         "GPIO9", "GPIO7", "", "GPIO4",
+                         "", "", "", "";
+};
+
+&gpt1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpt1>;
+       status = "disabled";
+};
+
+&gpt2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpt2>;
+       status = "disabled";
+};
+
+&gpt3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpt3>;
+       status = "disabled";
+};
+
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi>;
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
+/* X5 + X6 Camera & Display interface */
+&i2c2 {
+       clock-frequency = <384000>;
+       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";
+};
+
+/* X1 ID_I2C */
+&i2c3 {
+       clock-frequency = <384000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       pinctrl-1 = <&pinctrl_i2c3_gpio>;
+       scl-gpios = <&gpio2 10 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio2 11 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+};
+
+&i2c4 {
+       clock-frequency = <384000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       pinctrl-1 = <&pinctrl_i2c4_gpio>;
+       scl-gpios = <&gpio5 12 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+
+       tlv320aic3x04: audio-codec@18 {
+               compatible = "ti,tlv320aic32x4";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_tlv320aic3x04>;
+               reg = <0x18>;
+               clock-names = "mclk";
+               clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_MCLK1>;
+               reset-gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
+               iov-supply = <&reg_vcc_3v3>;
+               ldoin-supply = <&reg_vcc_3v3>;
+       };
+};
+
+/* X1 I2C */
+&i2c5 {
+       clock-frequency = <384000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c5>;
+       pinctrl-1 = <&pinctrl_i2c5_gpio>;
+       scl-gpios = <&gpio5 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+};
+
+/* X1 I2C on GPIO24/GPIO25 */
+&i2c6 {
+       clock-frequency = <384000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c6>;
+       pinctrl-1 = <&pinctrl_i2c6_gpio>;
+       scl-gpios = <&gpio2 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio2 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "disabled";
+};
+
+&lcdif3 {
+       status = "okay";
+};
+
+&pcf85063 {
+       /* RTC_EVENT# is connected on MBa8MP-RAS314 */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pcf85063>;
+       interrupt-parent = <&gpio3>;
+       interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
+};
+
+&pcie_phy {
+       clocks = <&hsio_blk_ctrl>;
+       clock-names = "ref";
+       fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_OUTPUT>;
+       status = "okay";
+};
+
+&pcie {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pcie>;
+       reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&pwm2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm2>;
+       status = "disabled";
+};
+
+&pwm3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm3>;
+       status = "okay";
+};
+
+&pwm4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm4>;
+       status = "okay";
+};
+
+&sai5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai5>;
+       assigned-clocks = <&clk IMX8MP_CLK_SAI5>;
+       assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <12288000>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
+&snvs_pwrkey {
+       status = "okay";
+};
+
+/* X1 UART1 */
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       uart-has-rtscts;
+       assigned-clocks = <&clk IMX8MP_CLK_UART1>;
+       assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       uart-has-rtscts;
+       assigned-clocks = <&clk IMX8MP_CLK_UART2>;
+       assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
+       status = "okay";
+
+       bluetooth {
+               compatible = "nxp,88w8987-bt";
+       };
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       assigned-clocks = <&clk IMX8MP_CLK_UART3>;
+       assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
+       status = "okay";
+};
+
+&uart4 {
+       /* console */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       status = "okay";
+};
+
+&usb3_0 {
+       fsl,disable-port-power-control;
+       status = "okay";
+};
+
+&usb3_1 {
+       fsl,disable-port-power-control;
+       fsl,permanently-attached;
+       status = "okay";
+};
+
+&usb3_phy0 {
+       vbus-supply = <&reg_vcc_5v0>;
+       status = "okay";
+};
+
+&usb3_phy1 {
+       vbus-supply = <&reg_vcc_5v0>;
+       status = "okay";
+};
+
+&usb_dwc3_0 {
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usb_dwc3_1 {
+       dr_mode = "host";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbhub>;
+       status = "okay";
+
+       hub_2_0: hub@1 {
+               compatible = "usb451,8142";
+               reg = <1>;
+               peer-hub = <&hub_3_0>;
+               reset-gpios = <&gpio5 26 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&reg_vcc_3v3>;
+       };
+
+       hub_3_0: hub@2 {
+               compatible = "usb451,8140";
+               reg = <2>;
+               peer-hub = <&hub_2_0>;
+               reset-gpios = <&gpio5 26 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&reg_vcc_3v3>;
+       };
+};
+
+/* X1 SD card on GPIO22-GPIO27 */
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       disable-wp;
+       bus-width = <4>;
+       status = "disabled";
+};
+
+&usdhc2 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       no-mmc;
+       no-sdio;
+       disable-wp;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_backlight: backlightgrp {
+               fsl,pins = <MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03         0x14>;
+       };
+
+       pinctrl_ecspi3: ecspi3grp {
+               fsl,pins = <MX8MP_IOMUXC_UART1_RXD__ECSPI3_SCLK         0x140>,
+                          <MX8MP_IOMUXC_UART1_TXD__ECSPI3_MOSI         0x140>,
+                          <MX8MP_IOMUXC_UART2_RXD__ECSPI3_MISO         0x1c0>,
+                          <MX8MP_IOMUXC_UART2_TXD__GPIO5_IO25          0x140>,
+                          <MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06         0x140>;
+       };
+
+       pinctrl_ecspi3_gpio: ecspi3gpiogrp {
+               fsl,pins = <MX8MP_IOMUXC_UART1_RXD__GPIO5_IO22          0x80>,
+                          <MX8MP_IOMUXC_UART1_TXD__GPIO5_IO23          0x80>,
+                          <MX8MP_IOMUXC_UART2_RXD__GPIO5_IO24          0x80>,
+                          <MX8MP_IOMUXC_UART2_TXD__GPIO5_IO25          0x80>,
+                          <MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06         0x80>;
+       };
+
+       pinctrl_eqos: eqosgrp {
+               fsl,pins = <MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC                         0x40000044>,
+                          <MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO                       0x40000044>,
+                          <MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0                   0x90>,
+                          <MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1                   0x90>,
+                          <MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2                   0x90>,
+                          <MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3                   0x90>,
+                          <MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK   0x90>,
+                          <MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL             0x90>,
+                          <MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0                   0x12>,
+                          <MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1                   0x12>,
+                          <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>;
+       };
+
+       pinctrl_eqos_phy: eqosphygrp {
+               fsl,pins = <MX8MP_IOMUXC_SAI1_RXD0__GPIO4_IO02                          0x100>,
+                          <MX8MP_IOMUXC_SAI1_RXD1__GPIO4_IO03                          0x1c0>;
+       };
+
+       pinctrl_fec: fecgrp {
+               fsl,pins = <MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC           0x40000044>,
+                          <MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO          0x40000044>,
+                          <MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0     0x90>,
+                          <MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1     0x90>,
+                          <MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2     0x90>,
+                          <MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3     0x90>,
+                          <MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC      0x90>,
+                          <MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL  0x90>,
+                          <MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0     0x12>,
+                          <MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1     0x12>,
+                          <MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2     0x12>,
+                          <MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3     0x12>,
+                          <MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL  0x12>,
+                          <MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC     0x14>;
+       };
+
+       pinctrl_fec_phy: fecphygrp {
+               fsl,pins = <MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00          0x100>,
+                          <MX8MP_IOMUXC_SAI1_RXC__GPIO4_IO01           0x1c0>;
+       };
+
+       pinctrl_gpioled: gpioledgrp {
+               fsl,pins = <MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18          0x14>,
+                          <MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19          0x14>;
+       };
+
+       pinctrl_gpio1: gpio1grp {
+               fsl,pins = <MX8MP_IOMUXC_GPIO1_IO00__GPIO1_IO00         0x14>,
+                          <MX8MP_IOMUXC_GPIO1_IO01__GPIO1_IO01         0x14>;
+       };
+
+       pinctrl_gpio2: gpio2grp {
+               fsl,pins = <MX8MP_IOMUXC_SD1_CLK__GPIO2_IO00            0x94>,
+                          <MX8MP_IOMUXC_SD1_CMD__GPIO2_IO01            0x94>,
+                          <MX8MP_IOMUXC_SD1_DATA0__GPIO2_IO02          0x94>,
+                          <MX8MP_IOMUXC_SD1_DATA1__GPIO2_IO03          0x94>,
+                          <MX8MP_IOMUXC_SD1_DATA2__GPIO2_IO04          0x94>,
+                          <MX8MP_IOMUXC_SD1_DATA3__GPIO2_IO05          0x94>,
+                          <MX8MP_IOMUXC_SD1_DATA4__GPIO2_IO06          0x94>,
+                          <MX8MP_IOMUXC_SD1_DATA5__GPIO2_IO07          0x94>;
+       };
+
+       pinctrl_gpio3: gpio3grp {
+               fsl,pins = <MX8MP_IOMUXC_SAI5_RXC__GPIO3_IO20           0x180>;
+       };
+
+       pinctrl_gpio4: gpio4grp {
+               fsl,pins = <MX8MP_IOMUXC_SAI1_MCLK__GPIO4_IO20          0x80>,
+                          /* PCIE_WAKE# */
+                          <MX8MP_IOMUXC_SAI2_TXC__GPIO4_IO25           0x180>,
+                          <MX8MP_IOMUXC_SAI2_TXD0__GPIO4_IO26          0x94>,
+                          <MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27          0x94>;
+       };
+
+       pinctrl_gpio5: gpio5grp {
+               fsl,pins = <MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01           0x80>,
+                          <MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05      0x80>;
+       };
+
+       pinctrl_hdmi: hdmigrp {
+               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>;
+       };
+
+       pinctrl_gpt1: gpt1grp {
+               fsl,pins = <MX8MP_IOMUXC_UART3_TXD__GPT1_CLK            0x14>;
+       };
+
+       pinctrl_gpt1_gpio: gpt1gpiogrp {
+               fsl,pins = <MX8MP_IOMUXC_UART3_TXD__GPIO5_IO27          0x80>;
+       };
+
+       pinctrl_gpt2: gpt2grp {
+               fsl,pins = <MX8MP_IOMUXC_I2C3_SCL__GPT2_CLK             0x14>;
+       };
+
+       pinctrl_gpt2_gpio: gpt2gpiogrp {
+               fsl,pins = <MX8MP_IOMUXC_I2C3_SCL__GPIO5_IO18           0x80>;
+       };
+
+       pinctrl_gpt3: gpt3grp {
+               fsl,pins = <MX8MP_IOMUXC_I2C3_SDA__GPT3_CLK             0x14>;
+       };
+
+       pinctrl_gpt3_gpio: gpt3gpiogrp {
+               fsl,pins = <MX8MP_IOMUXC_I2C3_SDA__GPIO5_IO19           0x80>;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL             0x400001e2>,
+                          <MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA             0x400001e2>;
+       };
+
+       pinctrl_i2c2_gpio: i2c2-gpiogrp {
+               fsl,pins = <MX8MP_IOMUXC_I2C2_SCL__GPIO5_IO16           0x400001e2>,
+                          <MX8MP_IOMUXC_I2C2_SDA__GPIO5_IO17           0x400001e2>;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <MX8MP_IOMUXC_SD1_RESET_B__I2C3_SCL          0x400001e2>,
+                          <MX8MP_IOMUXC_SD1_STROBE__I2C3_SDA           0x400001e2>;
+       };
+
+       pinctrl_i2c3_gpio: i2c3-gpiogrp {
+               fsl,pins = <MX8MP_IOMUXC_SD1_RESET_B__GPIO2_IO10        0x400001e2>,
+                          <MX8MP_IOMUXC_SD1_STROBE__GPIO2_IO11         0x400001e2>;
+       };
+
+       pinctrl_i2c4: i2c4grp {
+               fsl,pins = <MX8MP_IOMUXC_ECSPI2_MISO__I2C4_SCL          0x400001e2>,
+                          <MX8MP_IOMUXC_ECSPI2_SS0__I2C4_SDA           0x400001e2>;
+       };
+
+       pinctrl_i2c4_gpio: i2c4-gpiogrp {
+               fsl,pins = <MX8MP_IOMUXC_ECSPI2_MISO__GPIO5_IO12        0x400001e2>,
+                          <MX8MP_IOMUXC_ECSPI2_SS0__GPIO5_IO13         0x400001e2>;
+       };
+
+       pinctrl_i2c5: i2c5grp {
+               fsl,pins = <MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL             0x400001e2>,
+                          <MX8MP_IOMUXC_SPDIF_RX__I2C5_SDA             0x400001e2>;
+       };
+
+       pinctrl_i2c5_gpio: i2c5-gpiogrp {
+               fsl,pins = <MX8MP_IOMUXC_SPDIF_TX__GPIO5_IO03           0x400001e2>,
+                          <MX8MP_IOMUXC_SPDIF_RX__GPIO5_IO04           0x400001e2>;
+       };
+
+       pinctrl_i2c6: i2c6grp {
+               fsl,pins = <MX8MP_IOMUXC_SD1_DATA0__I2C6_SCL            0x400001e2>,
+                          <MX8MP_IOMUXC_SD1_DATA1__I2C6_SDA            0x400001e2>;
+       };
+
+       pinctrl_i2c6_gpio: i2c6-gpiogrp {
+               fsl,pins = <MX8MP_IOMUXC_SD1_DATA0__GPIO2_IO02          0x400001e2>,
+                          <MX8MP_IOMUXC_SD1_DATA1__GPIO2_IO03          0x400001e2>;
+       };
+
+       pinctrl_pcf85063: pcf85063grp {
+               fsl,pins = <MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19          0x80>;
+       };
+
+       pinctrl_pcie: pciegrp {
+               fsl,pins = <MX8MP_IOMUXC_I2C4_SCL__PCIE_CLKREQ_B        0x60>,
+                          <MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28          0x94>;
+       };
+
+       pinctrl_lvdsdisplay: lvdsdisplaygrp {
+               fsl,pins = <MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07         0x10>;
+       };
+
+       pinctrl_pwm2: pwm2grp {
+               fsl,pins = <MX8MP_IOMUXC_GPIO1_IO09__PWM2_OUT           0x14>;
+       };
+
+       pinctrl_pwm3: pwm3grp {
+               fsl,pins = <MX8MP_IOMUXC_GPIO1_IO14__PWM3_OUT           0x14>;
+       };
+
+       pinctrl_pwm3_gpio: pwm3grpiogrp {
+               fsl,pins = <MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14         0x80>;
+       };
+
+       pinctrl_pwm4: pwm4grp {
+               fsl,pins = <MX8MP_IOMUXC_GPIO1_IO15__PWM4_OUT           0x14>;
+       };
+
+       pinctrl_pwm4_gpio: pwm4grpiogrp {
+               fsl,pins = <MX8MP_IOMUXC_GPIO1_IO15__GPIO1_IO15         0x80>;
+       };
+
+       pinctrl_rfkill: rfkillgrp {
+               fsl,pins = <MX8MP_IOMUXC_SAI3_MCLK__GPIO5_IO02          0x14>;
+       };
+
+       pinctrl_sai5: sai5grp {
+               fsl,pins = <MX8MP_IOMUXC_SAI5_MCLK__AUDIOMIX_SAI5_MCLK          0x94>,
+                          <MX8MP_IOMUXC_SAI5_RXD0__AUDIOMIX_SAI5_RX_DATA00     0x94>,
+                          <MX8MP_IOMUXC_SAI5_RXD3__AUDIOMIX_SAI5_TX_DATA00     0x94>,
+                          <MX8MP_IOMUXC_SAI5_RXD1__AUDIOMIX_SAI5_TX_SYNC       0x94>,
+                          <MX8MP_IOMUXC_SAI5_RXD2__AUDIOMIX_SAI5_TX_BCLK       0x94>;
+       };
+
+       pinctrl_tlv320aic3x04: tlv320aic3x04grp {
+               fsl,pins = <MX8MP_IOMUXC_ECSPI2_MOSI__GPIO5_IO11                0x180>;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <MX8MP_IOMUXC_SAI2_RXFS__UART1_DCE_TX        0x14>,
+                          <MX8MP_IOMUXC_SAI2_RXC__UART1_DCE_RX         0x14>,
+                          <MX8MP_IOMUXC_SAI2_RXD0__UART1_DTE_CTS       0x14>,
+                          <MX8MP_IOMUXC_SAI2_TXFS__UART1_DTE_RTS       0x14>;
+       };
+
+       pinctrl_uart1_gpio: uart1gpiogrp {
+               fsl,pins = <MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21          0x80>,
+                          <MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22           0x80>,
+                          <MX8MP_IOMUXC_SAI2_RXD0__GPIO4_IO23          0x80>,
+                          <MX8MP_IOMUXC_SAI2_TXFS__GPIO4_IO24          0x80>;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <MX8MP_IOMUXC_SAI3_TXC__UART2_DCE_TX         0x14>,
+                          <MX8MP_IOMUXC_SAI3_TXFS__UART2_DCE_RX        0x14>,
+                          <MX8MP_IOMUXC_SAI3_RXD__UART2_DCE_RTS        0x14>,
+                          <MX8MP_IOMUXC_SAI3_RXC__UART2_DCE_CTS        0x14>;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <MX8MP_IOMUXC_SD1_DATA6__UART3_DCE_TX        0x140>,
+                          <MX8MP_IOMUXC_SD1_DATA7__UART3_DCE_RX        0x140>;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX        0x140>,
+                          <MX8MP_IOMUXC_UART4_RXD__UART4_DCE_RX        0x140>;
+       };
+
+       pinctrl_usbhub: usbhubgrp {
+               fsl,pins = <MX8MP_IOMUXC_UART3_RXD__GPIO5_IO26          0x10>;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK            0x192>,
+                          <MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD            0x1d2>,
+                          <MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0        0x1d2>,
+                          <MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1        0x1d2>,
+                          <MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2        0x1d2>,
+                          <MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3        0x1d2>;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK            0x192>,
+                          <MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD            0x1d2>,
+                          <MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0        0x1d2>,
+                          <MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1        0x1d2>,
+                          <MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2        0x1d2>,
+                          <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3        0x1d2>,
+                          <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT     0xc0>;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK            0x194>,
+                          <MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD            0x1d4>,
+                          <MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0        0x1d4>,
+                          <MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1        0x1d4>,
+                          <MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2        0x1d4>,
+                          <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3        0x1d4>,
+                          <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT     0xc0>;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK            0x194>,
+                          <MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD            0x1d4>,
+                          <MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0        0x1d4>,
+                          <MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1        0x1d4>,
+                          <MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2        0x1d4>,
+                          <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3        0x1d4>,
+                          <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT     0xc0>;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
+               fsl,pins = <MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12           0x1c0>;
+       };
+};
index c51ed7d991d186ca2a89c4dcaf7db7c63b435f57..ae64731266f35e9a2be8cdff95d87dbcab36e161 100644 (file)
                #size-cells = <2>;
                ranges;
 
-               ocram: ocram@900000 {
-                       no-map;
-                       reg = <0 0x900000 0 0x70000>;
-               };
-
                /* global autoconfigured region for contiguous allocations */
                linux,cma {
                        compatible = "shared-dma-pool";
index ebc29a950ba9a775098ba9bce78eb1c555cac869..336785a9fba89650e0f1cd80e9994232b8090b45 100644 (file)
 
        flash0: flash@0 {
                reg = <0>;
-               #address-cells = <1>;
-               #size-cells = <1>;
                compatible = "jedec,spi-nor";
                spi-max-frequency = <80000000>;
                spi-tx-bus-width = <1>;
                spi-rx-bus-width = <4>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
        };
 };
 
index 560c68e4da6dc836944506bf173d6403381132e7..6c75a5ecf56bb1156bf679b429508e433ee2d375 100644 (file)
@@ -5,6 +5,7 @@
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/leds/common.h>
 #include <dt-bindings/net/ti-dp83867.h>
 
 / {
                        ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                        tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
                        rx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+
+                       leds {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               led@1 {
+                                       reg = <1>;
+                                       color = <LED_COLOR_ID_AMBER>;
+                                       function = LED_FUNCTION_LAN;
+                                       default-state = "keep";
+                               };
+
+                               led@2 {
+                                       reg = <2>;
+                                       color = <LED_COLOR_ID_GREEN>;
+                                       function = LED_FUNCTION_LAN;
+                                       default-state = "keep";
+                               };
+                       };
                };
        };
 };
index a77e9a44d9fa25200564aa9be1b073b576954876..d765b79728415ea77e02a6345c4132daf1a94dfa 100644 (file)
@@ -9,6 +9,7 @@
 #include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/leds/common.h>
 #include <dt-bindings/phy/phy-imx8-pcie.h>
+#include <dt-bindings/net/ti-dp83867.h>
 
 #include "imx8mp.dtsi"
 
                ethphy0: ethernet-phy@0 {
                        compatible = "ethernet-phy-ieee802.3-c22";
                        reg = <0x0>;
+                       ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+                       ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+                       tx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+                       rx-fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+
+                       leds {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               led@1 {
+                                       reg = <1>;
+                                       color = <LED_COLOR_ID_AMBER>;
+                                       function = LED_FUNCTION_LAN;
+                                       default-state = "keep";
+                               };
+
+                               led@2 {
+                                       reg = <2>;
+                                       color = <LED_COLOR_ID_GREEN>;
+                                       function = LED_FUNCTION_LAN;
+                                       default-state = "keep";
+                               };
+                       };
                };
        };
 };
index 6e6b9c2c46406fc3691193e6874eb85fd8d28065..fbcd93e33aeaa0864be6ac66b8a33baed39795fc 100644 (file)
@@ -4,6 +4,18 @@
  */
 
 / {
+       native-hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "X21";
+               type = "a";
+
+               port {
+                       native_hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        sound {
                compatible = "simple-audio-card";
                simple-audio-card,bitclock-master = <&codec_dai>;
        pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
 };
 
+/* Verdin HDMI_1 */
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&native_hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
 /* Current measurement into module VCC */
 &hwmon {
        status = "okay";
        status = "okay";
 };
 
+&lcdif3 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        vpcie-supply = <&reg_pcie>;
index 42ed44a1171101964e952441df49e4f70a314da3..09733fea036dd30b481e1fa286dc723c40705cef 100644 (file)
@@ -4,6 +4,18 @@
  */
 
 / {
+       native-hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "X37";
+               type = "a";
+
+               port {
+                       native_hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        reg_eth2phy: regulator-eth2phy {
                compatible = "regulator-fixed";
                enable-active-high;
        vcc-supply = <&reg_1p8v>;
 };
 
+/* Verdin HDMI_1 */
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&native_hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
 /* Current measurement into module VCC */
 &hwmon {
        status = "okay";
        status = "okay";
 };
 
+&lcdif3 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        status = "okay";
index 1d15f7449c58004624ec9429c997a62a20c2e3ec..3a40338cf2d88f853a2dd8dc6977bf704a97aaae 100644 (file)
 #include <dt-bindings/leds/common.h>
 
 / {
+       native-hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "X14";
+               type = "a";
+
+               port {
+                       native_hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
        status = "okay";
 };
 
+/* Verdin HDMI_1 */
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&native_hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
 /* Temperature sensor on Mallow */
 &hwmon_temp {
        compatible = "ti,tmp1075";
        status = "okay";
 };
 
+&lcdif3 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        status = "okay";
index 91d597391b7cbbfc7daf5159eb094a659291a742..2ee91f31e7f0221b7ecd497b9b15672e0ddf2667 100644 (file)
@@ -41,8 +41,7 @@
        pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>,
                    <&pinctrl_gpio3>, <&pinctrl_gpio4>,
                    <&pinctrl_gpio7>, <&pinctrl_gpio8>,
-                   <&pinctrl_gpio_hog1>, <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>,
-                   <&pinctrl_hdmi_hog>;
+                   <&pinctrl_gpio_hog1>, <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>;
 };
 
 /*
index ef94f9a57e2071a9e330d7b924b0df07d20a149d..efcab00c0142138e05e39fc28dc41482c882770d 100644 (file)
@@ -55,8 +55,7 @@
        pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>,
                    <&pinctrl_gpio3>, <&pinctrl_gpio4>,
                    <&pinctrl_gpio7>, <&pinctrl_gpio8>,
-                   <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>, <&pinctrl_gpio_hog4>,
-                   <&pinctrl_hdmi_hog>;
+                   <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>, <&pinctrl_gpio_hog4>;
 };
 
 /* On-module Bluetooth */
index a7b261ff3e4cd8f03a7e6c2c4d41da4284c081d6..533b7fe218ce6662e092db1d023a919d1092a97c 100644 (file)
@@ -6,6 +6,18 @@
 #include <dt-bindings/leds/common.h>
 
 / {
+       native-hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "J15";
+               type = "a";
+
+               port {
+                       native_hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        /* Carrier Board Supply +V1.8 */
        reg_1p8v: regulator-1p8v {
                compatible = "regulator-fixed";
        pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
 };
 
+/* Verdin HDMI_1 */
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&native_hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
 &hwmon_temp {
        status = "okay";
 };
        status = "okay";
 };
 
+&lcdif3 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        status = "okay";
index aef4bef4bccddb68af23f626065d2940253564ae..d23a3942174d8aaad152b17f5da80fa057ceb1ce 100644 (file)
 
        mtl_rx_setup: rx-queues-config {
                snps,rx-queues-to-use = <5>;
-               snps,rx-sched-sp;
 
                queue0 {
                        snps,dcb-algorithm;
 
        mtl_tx_setup: tx-queues-config {
                snps,tx-queues-to-use = <5>;
-               snps,tx-sched-sp;
 
                queue0 {
                        snps,dcb-algorithm;
                          "SODIMM_44";
 };
 
+/* Verdin HDMI_1 */
+&hdmi_tx {
+       ddc-i2c-bus = <&i2c5>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi>;
+};
+
 /* On-module I2C */
 &i2c1 {
        clock-frequency = <400000>;
 
 /* Verdin I2C_2_DSI */
 &i2c2 {
-       /* Lower frequency to avoid DDC/EDID issues with certain displays/screens. */
-       clock-frequency = <10000>;
+       clock-frequency = <400000>;
        pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c2>;
        pinctrl-1 = <&pinctrl_i2c2_gpio>;
                        <MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00             0x1c4>; /* SODIMM 252 */
        };
 
-       pinctrl_hdmi_hog: hdmihoggrp {
+       pinctrl_hdmi: hdmigrp {
                fsl,pins =
-                       <MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC        0x40000019>,    /* SODIMM 63 */
-                       <MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD        0x40000019>;    /* SODIMM 61 */
+                       <MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC        0x140>, /* SODIMM 63 */
+                       <MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD        0x180>; /* SODIMM 61 */
        };
 
        /* On-module I2C */
index b92abb5a5c536f41bb1017690135e098bec98415..603dfe80216f8804c5bee14dc3fdc5039060e0b4 100644 (file)
                                                reg = <IMX8MP_POWER_DOMAIN_USB2_PHY>;
                                        };
 
+                                       pgc_mlmix: power-domain@4 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_MLMIX>;
+                                               clocks = <&clk IMX8MP_CLK_ML_AXI>,
+                                                        <&clk IMX8MP_CLK_ML_AHB>,
+                                                        <&clk IMX8MP_CLK_NPU_ROOT>;
+                                               assigned-clocks = <&clk IMX8MP_CLK_ML_CORE>,
+                                                                 <&clk IMX8MP_CLK_ML_AXI>,
+                                                                 <&clk IMX8MP_CLK_ML_AHB>;
+                                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
+                                                                        <&clk IMX8MP_SYS_PLL1_800M>,
+                                                                        <&clk IMX8MP_SYS_PLL1_800M>;
+                                               assigned-clock-rates = <800000000>,
+                                                                      <800000000>,
+                                                                      <300000000>;
+                                       };
+
                                        pgc_audio: power-domain@5 {
                                                #power-domain-cells = <0>;
                                                reg = <IMX8MP_POWER_DOMAIN_AUDIOMIX>;
                                                assigned-clock-rates = <800000000>, <400000000>;
                                        };
 
+                                       pgc_vpumix: power-domain@8 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_VPUMIX>;
+                                               clocks = <&clk IMX8MP_CLK_VPU_ROOT>;
+                                       };
+
                                        pgc_gpu3d: power-domain@9 {
                                                #power-domain-cells = <0>;
                                                reg = <IMX8MP_POWER_DOMAIN_GPU3D>;
                                                         <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
                                        };
 
+                                       pgc_vpu_g1: power-domain@11 {
+                                               #power-domain-cells = <0>;
+                                               power-domains = <&pgc_vpumix>;
+                                               reg = <IMX8MP_POWER_DOMAIN_VPU_G1>;
+                                               clocks = <&clk IMX8MP_CLK_VPU_G1_ROOT>;
+                                       };
+
+                                       pgc_vpu_g2: power-domain@12 {
+                                               #power-domain-cells = <0>;
+                                               power-domains = <&pgc_vpumix>;
+                                               reg = <IMX8MP_POWER_DOMAIN_VPU_G2>;
+                                               clocks = <&clk IMX8MP_CLK_VPU_G2_ROOT>;
+
+                                       };
+
+                                       pgc_vpu_vc8000e: power-domain@13 {
+                                               #power-domain-cells = <0>;
+                                               power-domains = <&pgc_vpumix>;
+                                               reg = <IMX8MP_POWER_DOMAIN_VPU_VC8000E>;
+                                               clocks = <&clk IMX8MP_CLK_VPU_VC8KE_ROOT>;
+                                       };
+
                                        pgc_hdmimix: power-domain@14 {
                                                #power-domain-cells = <0>;
                                                reg = <IMX8MP_POWER_DOMAIN_HDMIMIX>;
                                                reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX_ISPDWP>;
                                                clocks = <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>;
                                        };
-
-                                       pgc_vpumix: power-domain@19 {
-                                               #power-domain-cells = <0>;
-                                               reg = <IMX8MP_POWER_DOMAIN_VPUMIX>;
-                                               clocks = <&clk IMX8MP_CLK_VPU_ROOT>;
-                                       };
-
-                                       pgc_vpu_g1: power-domain@20 {
-                                               #power-domain-cells = <0>;
-                                               power-domains = <&pgc_vpumix>;
-                                               reg = <IMX8MP_POWER_DOMAIN_VPU_G1>;
-                                               clocks = <&clk IMX8MP_CLK_VPU_G1_ROOT>;
-                                       };
-
-                                       pgc_vpu_g2: power-domain@21 {
-                                               #power-domain-cells = <0>;
-                                               power-domains = <&pgc_vpumix>;
-                                               reg = <IMX8MP_POWER_DOMAIN_VPU_G2>;
-                                               clocks = <&clk IMX8MP_CLK_VPU_G2_ROOT>;
-                                       };
-
-                                       pgc_vpu_vc8000e: power-domain@22 {
-                                               #power-domain-cells = <0>;
-                                               power-domains = <&pgc_vpumix>;
-                                               reg = <IMX8MP_POWER_DOMAIN_VPU_VC8000E>;
-                                               clocks = <&clk IMX8MP_CLK_VPU_VC8KE_ROOT>;
-                                       };
-
-                                       pgc_mlmix: power-domain@24 {
-                                               #power-domain-cells = <0>;
-                                               reg = <IMX8MP_POWER_DOMAIN_MLMIX>;
-                                               clocks = <&clk IMX8MP_CLK_ML_AXI>,
-                                                        <&clk IMX8MP_CLK_ML_AHB>,
-                                                        <&clk IMX8MP_CLK_NPU_ROOT>;
-                                               assigned-clocks = <&clk IMX8MP_CLK_ML_CORE>,
-                                                                 <&clk IMX8MP_CLK_ML_AXI>,
-                                                                 <&clk IMX8MP_CLK_ML_AHB>;
-                                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
-                                                                        <&clk IMX8MP_SYS_PLL1_800M>,
-                                                                        <&clk IMX8MP_SYS_PLL1_800M>;
-                                               assigned-clock-rates = <800000000>,
-                                                                      <800000000>,
-                                                                      <300000000>;
-                                       };
                                };
                        };
                };
                                        dma-names = "tx";
                                        status = "disabled";
                                };
+
+                               xcvr: xcvr@30cc0000 {
+                                       compatible = "fsl,imx8mp-xcvr";
+                                       reg = <0x30cc0000 0x800>,
+                                             <0x30cc0800 0x400>,
+                                             <0x30cc0c00 0x080>,
+                                             <0x30cc0e00 0x080>;
+                                       reg-names = "ram", "regs", "rxfifo",
+                                                   "txfifo";
+                                       interrupts = /* XCVR IRQ 0 */
+                                                    <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                                    /* XCVR IRQ 1 */
+                                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                                    /* XCVR PHY - SPDIF wakeup IRQ */
+                                                    <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
+                                       clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_EARC_IPG>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_EARC_PHY>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SPBA2_ROOT>,
+                                                <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_AUDPLL_ROOT>;
+                                       clock-names = "ipg", "phy", "spba", "pll_ipg";
+                                       dmas = <&sdma2 30 2 0>, <&sdma2 31 2 0>;
+                                       dma-names = "rx", "tx";
+                                       resets = <&audio_blk_ctrl 0>;
+                                       status = "disabled";
+                               };
                        };
 
                        sdma3: dma-controller@30e00000 {
                                compatible = "fsl,imx8mp-audio-blk-ctrl";
                                reg = <0x30e20000 0x10000>;
                                #clock-cells = <1>;
+                               #reset-cells = <1>;
                                clocks = <&clk IMX8MP_CLK_AUDIO_ROOT>,
                                         <&clk IMX8MP_CLK_SAI1>,
                                         <&clk IMX8MP_CLK_SAI2>,
                                              "sai1", "sai2", "sai3",
                                              "sai5", "sai6", "sai7";
                                power-domains = <&pgc_audio>;
+                               assigned-clocks = <&clk IMX8MP_AUDIO_PLL1>,
+                                                 <&clk IMX8MP_AUDIO_PLL2>;
+                               assigned-clock-rates = <393216000>, <361267200>;
                        };
                };
 
                        };
 
                        irqsteer_hdmi: interrupt-controller@32fc2000 {
-                               compatible = "fsl,imx-irqsteer";
+                               compatible = "fsl,imx8mp-irqsteer", "fsl,imx-irqsteer";
                                reg = <0x32fc2000 0x1000>;
                                interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-controller;
index ffb5fe61630da350870409b21797a2c94acf3450..1b39514d5c12aafcf7412e2ce6905c0d168667f6 100644 (file)
@@ -45,7 +45,6 @@
                        gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEDOWN>;
                        debounce-interval = <50>;
-                       wakeup-source;
                };
 
                key-vol-up {
@@ -53,7 +52,6 @@
                        gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                        debounce-interval = <50>;
-                       wakeup-source;
                };
        };
 
index 5ca6b22525469b9fc1818d7202e5a220bc2b0c05..01e5092e4c40a98ab394bb844311e63a48c211b8 100644 (file)
        flash0: flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
-               #address-cells = <1>;
-               #size-cells = <1>;
                spi-max-frequency = <84000000>;
                spi-tx-bus-width = <1>;
                spi-rx-bus-width = <4>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
        };
 };
 
index 6e05361c1ffb23768909f383f583190283390abc..778741dbbb33819fae225638e6d155238ca293ac 100644 (file)
                enable-active-high;
        };
 
+       reg_fec2_supply: regulator-fec2-nvcc {
+               compatible = "regulator-fixed";
+               regulator-name = "fec2_nvcc";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               gpio = <&max7322 0 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_can01_en: regulator-can01-gen {
+               compatible = "regulator-fixed";
+               regulator-name = "can01-en";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pca6416 3 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_can2_en: regulator-can2-gen {
+               compatible = "regulator-fixed";
+               regulator-name = "can2-en";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pca6416 4 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_can01_stby: regulator-can01-stby {
+               compatible = "regulator-fixed";
+               regulator-name = "can01-stby";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pca6416 5 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&reg_can01_en>;
+       };
+
+       reg_can2_stby: regulator-can2-stby {
+               compatible = "regulator-fixed";
+               regulator-name = "can2-stby";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pca6416 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               vin-supply = <&reg_can2_en>;
+       };
+
        reg_vref_1v8: regulator-adc-vref {
                compatible = "regulator-fixed";
                regulator-name = "vref_1v8";
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
        };
+
+       bt_sco_codec: audio-codec-bt {
+               compatible = "linux,bt-sco";
+               #sound-dai-cells = <1>;
+       };
+
+       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>;
+
+               btcpu: simple-audio-card,cpu {
+                       sound-dai = <&sai0>;
+                       dai-tdm-slot-num = <2>;
+                       dai-tdm-slot-width = <16>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&bt_sco_codec 1>;
+               };
+       };
+
+       sound-wm8960 {
+               compatible = "fsl,imx-audio-wm8960";
+               model = "wm8960-audio";
+               audio-cpu = <&sai1>;
+               audio-codec = <&wm8960>;
+               hp-det-gpio = <&lsio_gpio0 31 GPIO_ACTIVE_HIGH>;
+               audio-routing = "Headphone Jack", "HP_L",
+                               "Headphone Jack", "HP_R",
+                               "Ext Spk", "SPK_LP",
+                               "Ext Spk", "SPK_LN",
+                               "Ext Spk", "SPK_RP",
+                               "Ext Spk", "SPK_RN",
+                               "LINPUT1", "Mic Jack",
+                               "Mic Jack", "MICB";
+       };
 };
 
 &adc0 {
        status = "okay";
 };
 
+&amix {
+       status = "okay";
+};
+
+&asrc0 {
+       fsl,asrc-rate = <48000>;
+       status = "okay";
+};
+
+&cm41_i2c {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_cm41_i2c>;
+       status = "okay";
+
+       pca6416: gpio@20 {
+               compatible = "ti,tca6416";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+};
+
+&cm41_intmux {
+       status = "okay";
+};
+
+&i2c0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c0>;
+       status = "okay";
+
+       accelerometer@19 {
+               compatible = "st,lsm303agr-accel";
+               reg = <0x19>;
+       };
+
+       gyrometer@20 {
+               compatible = "nxp,fxas21002c";
+               reg = <0x20>;
+       };
+
+       light-sensor@44 {
+               compatible = "isil,isl29023";
+               reg = <0x44>;
+               interrupt-parent = <&lsio_gpio4>;
+               interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+       };
+
+       pressure-sensor@60 {
+               compatible = "fsl,mpl3115";
+               reg = <0x60>;
+       };
+
+       max7322: gpio@68 {
+               compatible = "maxim,max7322";
+               reg = <0x68>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       gyrometer@69 {
+               compatible = "st,l3g4200d-gyro";
+               reg = <0x69>;
+       };
+};
+
 &i2c1 {
        #address-cells = <1>;
        #size-cells = <0>;
        scl-gpios = <&lsio_gpio0 14 GPIO_ACTIVE_HIGH>;
        sda-gpios = <&lsio_gpio0 15 GPIO_ACTIVE_HIGH>;
        status = "okay";
+
+       wm8960: audio-codec@1a {
+               compatible = "wlf,wm8960";
+               reg = <0x1a>;
+               clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "mclk";
+               assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                                 <&mclkout0_lpcg IMX_LPCG_CLK_0>;
+               assigned-clock-rates = <786432000>, <49152000>, <12288000>, <12288000>;
+               wlf,shared-lrclk;
+               wlf,hp-cfg = <2 2 3>;
+               wlf,gpio-cfg = <1 3>;
+       };
+};
+
+&flexcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       xceiver-supply = <&reg_can01_stby>;
+       status = "okay";
+};
+
+&flexcan2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       xceiver-supply = <&reg_can01_stby>;
+       status = "okay";
+};
+
+&flexcan3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan3>;
+       xceiver-supply = <&reg_can2_stby>;
+       status = "okay";
 };
 
 &lpuart0 {
        };
 };
 
+&lsio_mu5 {
+       status = "okay";
+};
+
+&lsio_mu6 {
+       status = "okay";
+};
+
 &flexspi0 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_flexspi0>;
        };
 };
 
+&fec2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec2>;
+       phy-mode = "rgmii-txid";
+       phy-handle = <&ethphy1>;
+       phy-supply = <&reg_fec2_supply>;
+       nvmem-cells = <&fec_mac1>;
+       nvmem-cell-names = "mac-address";
+       rx-internal-delay-ps = <2000>;
+       fsl,magic-packet;
+       status = "okay";
+};
+
 &usdhc1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usdhc1>;
        status = "okay";
 };
 
+&sai0 {
+       #sound-dai-cells = <0>;
+       assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai0_lpcg IMX_LPCG_CLK_4>;
+       assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai0>;
+       status = "okay";
+};
+
+&sai1 {
+       assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai1_lpcg IMX_LPCG_CLK_4>;
+       assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai1>;
+       status = "okay";
+};
+
+&sai6 {
+       assigned-clocks = <&acm IMX_ADMA_ACM_SAI6_MCLK_SEL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai6_lpcg IMX_LPCG_CLK_4>;
+       assigned-clock-parents = <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <0>, <786432000>, <98304000>, <12288000>, <98304000>;
+       fsl,sai-asynchronous;
+       status = "okay";
+};
+
+&sai7 {
+       assigned-clocks = <&acm IMX_ADMA_ACM_SAI7_MCLK_SEL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai7_lpcg IMX_LPCG_CLK_4>;
+       assigned-clock-parents = <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <0>, <786432000>, <98304000>, <12288000>, <98304000>;
+       fsl,sai-asynchronous;
+       status = "okay";
+};
+
 &iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       IMX8QM_MCLK_OUT0_AUD_ACM_MCLK_OUT0                      0x0600004c
+                       IMX8QM_SCU_GPIO0_03_LSIO_GPIO0_IO31                     0x0600004c
+               >;
+       };
+
+       pinctrl_i2c0: i2c0grp {
+               fsl,pins = <
+                       IMX8QM_HDMI_TX0_TS_SCL_DMA_I2C0_SCL                     0x06000021
+                       IMX8QM_HDMI_TX0_TS_SDA_DMA_I2C0_SDA                     0x06000021
+               >;
+       };
+
        pinctrl_i2c1: i2c1grp {
                fsl,pins = <
                        IMX8QM_GPT0_CLK_DMA_I2C1_SCL 0x0600004c
                >;
        };
 
+       pinctrl_cm41_i2c: cm41i2cgrp {
+               fsl,pins = <
+                       IMX8QM_M41_I2C0_SDA_M41_I2C0_SDA                        0x0600004c
+                       IMX8QM_M41_I2C0_SCL_M41_I2C0_SCL                        0x0600004c
+               >;
+       };
+
        pinctrl_fec1: fec1grp {
                fsl,pins = <
                        IMX8QM_ENET0_MDC_CONN_ENET0_MDC                         0x06000020
                >;
        };
 
+       pinctrl_fec2: fec2grp {
+               fsl,pins = <
+                       IMX8QM_COMP_CTL_GPIO_1V8_3V3_ENET_ENETA_PAD             0x000014a0
+                       IMX8QM_ENET1_RGMII_TX_CTL_CONN_ENET1_RGMII_TX_CTL       0x00000060
+                       IMX8QM_ENET1_RGMII_TXC_CONN_ENET1_RGMII_TXC             0x00000060
+                       IMX8QM_ENET1_RGMII_TXD0_CONN_ENET1_RGMII_TXD0           0x00000060
+                       IMX8QM_ENET1_RGMII_TXD1_CONN_ENET1_RGMII_TXD1           0x00000060
+                       IMX8QM_ENET1_RGMII_TXD2_CONN_ENET1_RGMII_TXD2           0x00000060
+                       IMX8QM_ENET1_RGMII_TXD3_CONN_ENET1_RGMII_TXD3           0x00000060
+                       IMX8QM_ENET1_RGMII_RXC_CONN_ENET1_RGMII_RXC             0x00000060
+                       IMX8QM_ENET1_RGMII_RX_CTL_CONN_ENET1_RGMII_RX_CTL       0x00000060
+                       IMX8QM_ENET1_RGMII_RXD0_CONN_ENET1_RGMII_RXD0           0x00000060
+                       IMX8QM_ENET1_RGMII_RXD1_CONN_ENET1_RGMII_RXD1           0x00000060
+                       IMX8QM_ENET1_RGMII_RXD2_CONN_ENET1_RGMII_RXD2           0x00000060
+                       IMX8QM_ENET1_RGMII_RXD3_CONN_ENET1_RGMII_RXD3           0x00000060
+               >;
+       };
+
+       pinctrl_flexcan1: flexcan0grp {
+               fsl,pins = <
+                       IMX8QM_FLEXCAN0_TX_DMA_FLEXCAN0_TX                      0x21
+                       IMX8QM_FLEXCAN0_RX_DMA_FLEXCAN0_RX                      0x21
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan1grp {
+               fsl,pins = <
+                       IMX8QM_FLEXCAN1_TX_DMA_FLEXCAN1_TX                      0x21
+                       IMX8QM_FLEXCAN1_RX_DMA_FLEXCAN1_RX                      0x21
+               >;
+       };
+
+       pinctrl_flexcan3: flexcan3grp {
+               fsl,pins = <
+                       IMX8QM_FLEXCAN2_TX_DMA_FLEXCAN2_TX                      0x21
+                       IMX8QM_FLEXCAN2_RX_DMA_FLEXCAN2_RX                      0x21
+               >;
+       };
+
        pinctrl_lpuart0: lpuart0grp {
                fsl,pins = <
                        IMX8QM_UART0_RX_DMA_UART0_RX                            0x06000020
                >;
        };
 
+       pinctrl_sai0: sai0grp {
+               fsl,pins = <
+                       IMX8QM_SPI0_CS1_AUD_SAI0_TXC                            0x0600004c
+                       IMX8QM_SPI2_CS1_AUD_SAI0_TXFS                           0x0600004c
+                       IMX8QM_SAI1_RXFS_AUD_SAI0_RXD                           0x0600004c
+                       IMX8QM_SAI1_RXC_AUD_SAI0_TXD                            0x0600006c
+               >;
+       };
+
+       pinctrl_sai1: sai1grp {
+               fsl,pins = <
+                       IMX8QM_SAI1_RXD_AUD_SAI1_RXD                            0x06000040
+                       IMX8QM_SAI1_TXFS_AUD_SAI1_TXFS                          0x06000040
+                       IMX8QM_SAI1_TXD_AUD_SAI1_TXD                            0x06000060
+                       IMX8QM_SAI1_TXC_AUD_SAI1_TXC                            0x06000040
+               >;
+       };
+
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
                        IMX8QM_EMMC0_CLK_CONN_EMMC0_CLK                         0x06000041
diff --git a/src/arm64/freescale/imx8qm-ss-audio.dtsi b/src/arm64/freescale/imx8qm-ss-audio.dtsi
new file mode 100644 (file)
index 0000000..3036af4
--- /dev/null
@@ -0,0 +1,473 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2024 NXP
+ *     Dong Aisheng <aisheng.dong@nxp.com>
+ */
+
+/delete-node/ &acm;
+/delete-node/ &sai4;
+/delete-node/ &sai5;
+/delete-node/ &sai4_lpcg;
+/delete-node/ &sai5_lpcg;
+
+&amix {
+       dais = <&sai6>, <&sai7>;
+};
+
+&asrc0 {
+       clocks = <&asrc0_lpcg IMX_LPCG_CLK_0>,
+                <&asrc0_lpcg IMX_LPCG_CLK_2>,
+                <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>,
+                <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>,
+                <&acm IMX_ADMA_ACM_AUD_CLK0_SEL>,
+                <&acm IMX_ADMA_ACM_AUD_CLK1_SEL>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>;
+       power-domains = <&pd IMX_SC_R_ASRC_0>;
+};
+
+&asrc0_lpcg {
+       clocks = <&audio_ipg_clk>,
+                <&audio_ipg_clk>;
+       clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_2>;
+       clock-output-names = "asrc0_lpcg_ipg_clk", "asrc0_lpcg_mem_clk";
+};
+
+&asrc1 {
+       clocks = <&asrc1_lpcg IMX_LPCG_CLK_0>,
+                <&asrc1_lpcg IMX_LPCG_CLK_2>,
+                <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>,
+                <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>,
+                <&acm IMX_ADMA_ACM_AUD_CLK0_SEL>,
+                <&acm IMX_ADMA_ACM_AUD_CLK1_SEL>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>,
+                <&clk_dummy>;
+       power-domains = <&pd IMX_SC_R_ASRC_1>;
+};
+
+&asrc1_lpcg {
+       clocks = <&audio_ipg_clk>, <&audio_ipg_clk>;
+       clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_2>;
+       clock-output-names = "asrc1_lpcg_ipg_clk", "asrc1_lpcg_mem_clk";
+};
+
+&audio_subsys {
+
+       sai4: sai@59080000 {
+               compatible = "fsl,imx8qm-sai";
+               reg = <0x59080000 0x10000>;
+               interrupts = <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&sai4_lpcg IMX_LPCG_CLK_0>,
+                        <&clk_dummy>,
+                        <&sai4_lpcg IMX_LPCG_CLK_4>,
+                        <&clk_dummy>,
+                        <&clk_dummy>;
+               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+               dma-names = "rx";
+               dmas = <&edma0 18 0 1>;
+               fsl,dataline = <0 0xf 0x0>;
+               power-domains = <&pd IMX_SC_R_SAI_4>;
+               status = "disabled";
+       };
+
+       sai5: sai@59090000 {
+               compatible = "fsl,imx8qm-sai";
+               reg = <0x59090000 0x10000>;
+               interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&sai5_lpcg IMX_LPCG_CLK_0>,
+                        <&clk_dummy>,
+                        <&sai5_lpcg IMX_LPCG_CLK_4>,
+                        <&clk_dummy>,
+                        <&clk_dummy>;
+               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+               dma-names = "tx";
+               dmas = <&edma0 19 0 0>;
+               fsl,dataline = <0 0x0 0xf>;
+               power-domains = <&pd IMX_SC_R_SAI_5>;
+               status = "disabled";
+       };
+
+       sai4_lpcg: clock-controller@59480000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59480000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_SAI4_MCLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>;
+               clock-output-names = "sai4_lpcg_mclk", "sai4_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_SAI_4>;
+               status = "disabled";
+       };
+
+       sai5_lpcg: clock-controller@59490000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59490000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_SAI5_MCLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>;
+               clock-output-names = "sai5_lpcg_mclk", "sai5_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_SAI_5>;
+               status = "disabled";
+       };
+
+       esai1: esai@59810000 {
+               compatible = "fsl,imx8qm-esai";
+               reg = <0x59810000 0x10000>;
+               interrupts = <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&esai1_lpcg IMX_LPCG_CLK_0>,
+                        <&esai1_lpcg IMX_LPCG_CLK_4>,
+                        <&esai1_lpcg IMX_LPCG_CLK_0>,
+                        <&clk_dummy>;
+               clock-names = "core", "extal", "fsys", "spba";
+               dmas = <&edma1 6 0 1>, <&edma1 7 0 0>;
+               dma-names = "rx", "tx";
+               power-domains = <&pd IMX_SC_R_ESAI_1>;
+               status = "disabled";
+       };
+
+       sai6: sai@59820000 {
+               compatible = "fsl,imx8qm-sai";
+               reg = <0x59820000 0x10000>;
+               interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&sai6_lpcg IMX_LPCG_CLK_0>,
+                        <&clk_dummy>,
+                        <&sai6_lpcg IMX_LPCG_CLK_4>,
+                        <&clk_dummy>,
+                        <&clk_dummy>;
+               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+               dma-names = "rx", "tx";
+               dmas = <&edma1 8 0 1>, <&edma1 9 0 0>;
+               power-domains = <&pd IMX_SC_R_SAI_6>;
+               status = "disabled";
+       };
+
+       sai7: sai@59830000 {
+               compatible = "fsl,imx8qm-sai";
+               reg = <0x59830000 0x10000>;
+               interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&sai7_lpcg IMX_LPCG_CLK_0>,
+                        <&clk_dummy>,
+                        <&sai7_lpcg IMX_LPCG_CLK_4>,
+                        <&clk_dummy>,
+                        <&clk_dummy>;
+               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+               dma-names = "tx";
+               dmas = <&edma1 10 0 0>;
+               power-domains = <&pd IMX_SC_R_SAI_7>;
+               status = "disabled";
+       };
+
+       esai1_lpcg: clock-controller@59c10000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59c10000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_ESAI1_MCLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>;
+               clock-output-names = "esai1_lpcg_extal_clk", "esai1_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_ESAI_1>;
+       };
+
+       sai6_lpcg: clock-controller@59c20000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59c20000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_SAI6_MCLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>;
+               clock-output-names = "sai6_lpcg_mclk", "sai6_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_SAI_6>;
+       };
+
+       sai7_lpcg: clock-controller@59c30000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59c30000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_SAI7_MCLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>;
+               clock-output-names = "sai7_lpcg_mclk", "sai7_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_SAI_7>;
+       };
+
+       acm: acm@59e00000 {
+               compatible = "fsl,imx8qm-acm";
+               reg = <0x59e00000 0x1d0000>;
+               #clock-cells = <1>;
+               power-domains = <&pd IMX_SC_R_AUDIO_CLK_0>,
+                               <&pd IMX_SC_R_AUDIO_CLK_1>,
+                               <&pd IMX_SC_R_MCLK_OUT_0>,
+                               <&pd IMX_SC_R_MCLK_OUT_1>,
+                               <&pd IMX_SC_R_AUDIO_PLL_0>,
+                               <&pd IMX_SC_R_AUDIO_PLL_1>,
+                               <&pd IMX_SC_R_ASRC_0>,
+                               <&pd IMX_SC_R_ASRC_1>,
+                               <&pd IMX_SC_R_ESAI_0>,
+                               <&pd IMX_SC_R_ESAI_1>,
+                               <&pd IMX_SC_R_SAI_0>,
+                               <&pd IMX_SC_R_SAI_1>,
+                               <&pd IMX_SC_R_SAI_2>,
+                               <&pd IMX_SC_R_SAI_3>,
+                               <&pd IMX_SC_R_SAI_4>,
+                               <&pd IMX_SC_R_SAI_5>,
+                               <&pd IMX_SC_R_SAI_6>,
+                               <&pd IMX_SC_R_SAI_7>,
+                               <&pd IMX_SC_R_SPDIF_0>,
+                               <&pd IMX_SC_R_SPDIF_1>,
+                               <&pd IMX_SC_R_MQS_0>;
+               clocks = <&aud_rec0_lpcg IMX_LPCG_CLK_0>,
+                        <&aud_rec1_lpcg IMX_LPCG_CLK_0>,
+                        <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>,
+                        <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>,
+                        <&clk_mlb_clk>,
+                        <&clk_hdmi_rx_mclk>,
+                        <&clk_ext_aud_mclk0>,
+                        <&clk_ext_aud_mclk1>,
+                        <&clk_esai0_rx_clk>,
+                        <&clk_esai0_rx_hf_clk>,
+                        <&clk_esai0_tx_clk>,
+                        <&clk_esai0_tx_hf_clk>,
+                        <&clk_esai1_rx_clk>,
+                        <&clk_esai1_rx_hf_clk>,
+                        <&clk_esai1_tx_clk>,
+                        <&clk_esai1_tx_hf_clk>,
+                        <&clk_spdif0_rx>,
+                        <&clk_spdif0_rx>,
+                        <&clk_sai0_rx_bclk>,
+                        <&clk_sai0_tx_bclk>,
+                        <&clk_sai1_rx_bclk>,
+                        <&clk_sai1_tx_bclk>,
+                        <&clk_sai2_rx_bclk>,
+                        <&clk_sai3_rx_bclk>,
+                        <&clk_sai4_rx_bclk>,
+                        <&clk_sai5_rx_bclk>,
+                        <&clk_sai6_rx_bclk>;
+               clock-names = "aud_rec_clk0_lpcg_clk",
+                             "aud_rec_clk1_lpcg_clk",
+                             "aud_pll_div_clk0_lpcg_clk",
+                             "aud_pll_div_clk1_lpcg_clk",
+                             "mlb_clk",
+                             "hdmi_rx_mclk",
+                             "ext_aud_mclk0",
+                             "ext_aud_mclk1",
+                             "esai0_rx_clk",
+                             "esai0_rx_hf_clk",
+                             "esai0_tx_clk",
+                             "esai0_tx_hf_clk",
+                             "esai1_rx_clk",
+                             "esai1_rx_hf_clk",
+                             "esai1_tx_clk",
+                             "esai1_tx_hf_clk",
+                             "spdif0_rx",
+                             "spdif1_rx",
+                             "sai0_rx_bclk",
+                             "sai0_tx_bclk",
+                             "sai1_rx_bclk",
+                             "sai1_tx_bclk",
+                             "sai2_rx_bclk",
+                             "sai3_rx_bclk",
+                             "sai4_rx_bclk",
+                             "sai5_tx_bclk",
+                             "sai6_rx_bclk";
+       };
+};
+
+&dsp_lpcg {
+       status = "disabled";
+};
+
+&dsp_ram_lpcg {
+       status = "disabled";
+};
+
+/* edma2 called in imx8qm RM with the same address in edma0 of imx8qxp */
+&edma0{
+       reg = <0x591f0000 0x150000>;
+       dma-channels = <20>;
+       dma-channel-mask = <0>;
+       interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>, /* asrc0 */
+                    <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>, /* esai0 */
+                    <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>, /* spdif0 */
+                    <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>, /* spdif1 */
+                    <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>, /* sai0 */
+                    <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>, /* sai1 */
+                    <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>, /* sai2 */
+                    <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>, /* sai3 */
+                    <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>, /* sai4 */
+                    <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>; /* sai5 */
+       power-domains = <&pd IMX_SC_R_DMA_2_CH0>,
+                       <&pd IMX_SC_R_DMA_2_CH1>,
+                       <&pd IMX_SC_R_DMA_2_CH2>,
+                       <&pd IMX_SC_R_DMA_2_CH3>,
+                       <&pd IMX_SC_R_DMA_2_CH4>,
+                       <&pd IMX_SC_R_DMA_2_CH5>,
+                       <&pd IMX_SC_R_DMA_2_CH6>,
+                       <&pd IMX_SC_R_DMA_2_CH7>,
+                       <&pd IMX_SC_R_DMA_2_CH8>,
+                       <&pd IMX_SC_R_DMA_2_CH9>,
+                       <&pd IMX_SC_R_DMA_2_CH10>,
+                       <&pd IMX_SC_R_DMA_2_CH11>,
+                       <&pd IMX_SC_R_DMA_2_CH12>,
+                       <&pd IMX_SC_R_DMA_2_CH13>,
+                       <&pd IMX_SC_R_DMA_2_CH14>,
+                       <&pd IMX_SC_R_DMA_2_CH15>,
+                       <&pd IMX_SC_R_DMA_2_CH16>,
+                       <&pd IMX_SC_R_DMA_2_CH17>,
+                       <&pd IMX_SC_R_DMA_2_CH18>,
+                       <&pd IMX_SC_R_DMA_2_CH19>;
+};
+
+/* edma3 called in imx8qm RM with the same address in edma1 of imx8qxp */
+&edma1{
+       reg = <0x599f0000 0xc0000>;
+       dma-channels = <11>;
+       dma-channel-mask = <0xc0>;
+       interrupts = <GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH>, /* asrc1 */
+                    <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 385 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 387 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* no used */
+                    <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, /* no used */
+                    <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>, /* sai6 */
+                    <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>; /* sai7 */
+       power-domains = <&pd IMX_SC_R_DMA_3_CH0>,
+                       <&pd IMX_SC_R_DMA_3_CH1>,
+                       <&pd IMX_SC_R_DMA_3_CH2>,
+                       <&pd IMX_SC_R_DMA_3_CH3>,
+                       <&pd IMX_SC_R_DMA_3_CH4>,
+                       <&pd IMX_SC_R_DMA_3_CH5>,
+                       <&pd IMX_SC_R_DMA_3_CH6>,
+                       <&pd IMX_SC_R_DMA_3_CH7>,
+                       <&pd IMX_SC_R_DMA_3_CH8>,
+                       <&pd IMX_SC_R_DMA_3_CH9>,
+                       <&pd IMX_SC_R_DMA_3_CH10>;
+};
+
+&esai0 {
+       clocks = <&esai0_lpcg IMX_LPCG_CLK_0>,
+                <&esai0_lpcg IMX_LPCG_CLK_4>,
+                <&esai0_lpcg IMX_LPCG_CLK_0>,
+                <&clk_dummy>;
+       power-domains = <&pd IMX_SC_R_ESAI_0>;
+};
+
+&esai0_lpcg {
+       clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>;
+       clock-output-names = "esai0_lpcg_extal_clk", "esai0_lpcg_ipg_clk";
+};
+
+&mqs0_lpcg {
+       clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>;
+       clock-output-names = "mqs0_lpcg_mclk", "mqs0_lpcg_ipg_clk";
+};
+
+&sai0 {
+       clocks = <&sai0_lpcg IMX_LPCG_CLK_0>,
+                <&clk_dummy>,
+                <&sai0_lpcg IMX_LPCG_CLK_4>,
+                <&clk_dummy>,
+                <&clk_dummy>;
+       power-domains = <&pd IMX_SC_R_SAI_0>;
+};
+
+&sai0_lpcg {
+       clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>;
+       clock-output-names = "sai0_lpcg_mclk", "sai0_lpcg_ipg_clk";
+};
+
+&sai1 {
+       clocks = <&sai1_lpcg IMX_LPCG_CLK_0>,
+                <&clk_dummy>,
+                <&sai1_lpcg IMX_LPCG_CLK_4>,
+                <&clk_dummy>,
+                <&clk_dummy>;
+       power-domains = <&pd IMX_SC_R_SAI_1>;
+};
+
+&sai1_lpcg {
+       clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>;
+       clock-output-names = "sai1_lpcg_mclk", "sai1_lpcg_ipg_clk";
+};
+
+&sai2 {
+       clocks = <&sai2_lpcg IMX_LPCG_CLK_0>,
+                <&clk_dummy>,
+                <&sai2_lpcg IMX_LPCG_CLK_4>,
+                <&clk_dummy>,
+                <&clk_dummy>;
+       power-domains = <&pd IMX_SC_R_SAI_2>;
+};
+
+&sai2_lpcg {
+       clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>;
+       clock-output-names = "sai2_lpcg_mclk", "sai2_lpcg_ipg_clk";
+};
+
+&sai3 {
+       clocks = <&sai3_lpcg IMX_LPCG_CLK_0>,
+                <&clk_dummy>,
+                <&sai3_lpcg IMX_LPCG_CLK_4>,
+                <&clk_dummy>,
+                <&clk_dummy>;
+       power-domains = <&pd IMX_SC_R_SAI_3>;
+};
+
+&sai3_lpcg {
+       clock-indices = <IMX_LPCG_CLK_4>, <IMX_LPCG_CLK_0>;
+       clock-output-names = "sai3_lpcg_mclk", "sai3_lpcg_ipg_clk";
+};
+
+&spdif0 {
+       clocks = <&spdif0_lpcg IMX_LPCG_CLK_4>, /* core */
+                <&clk_dummy>,                  /* rxtx0 */
+                <&spdif0_lpcg IMX_LPCG_CLK_5>, /* rxtx1 */
+                <&clk_dummy>,                  /* rxtx2 */
+                <&clk_dummy>,                  /* rxtx3 */
+                <&clk_dummy>,                  /* rxtx4 */
+                <&audio_ipg_clk>,              /* rxtx5 */
+                <&clk_dummy>,                  /* rxtx6 */
+                <&clk_dummy>,                  /* rxtx7 */
+                <&clk_dummy>;                  /* spba */
+       power-domains = <&pd IMX_SC_R_SPDIF_0>;
+};
+
+&spdif0_lpcg {
+       clock-indices = <IMX_LPCG_CLK_5>, <IMX_LPCG_CLK_4>;
+       clock-output-names = "spdif0_lpcg_tx_clk", "spdif0_lpcg_gclkw";
+};
index b3d01677b70c48702b316d7395112a1d4e189858..61986e0639e531f372505645a887df9d916f7bd7 100644 (file)
                        compatible = "fsl,imx8qxp-sc-rtc";
                };
 
+               ocotp: ocotp {
+                       compatible = "fsl,imx8qm-scu-ocotp";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       read-only;
+
+                       fec_mac0: mac@1c4 {
+                               reg = <0x1c4 6>;
+                       };
+
+                       fec_mac1: mac@1c6 {
+                               reg = <0x1c6 6>;
+                       };
+               };
+
                tsens: thermal-sensor {
                        compatible = "fsl,imx8qxp-sc-thermal", "fsl,imx-sc-thermal";
                        #thermal-sensor-cells = <1>;
                };
        };
 
+       clk_dummy: clock-dummy {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "clk_dummy";
+       };
+
+       clk_esai1_rx_clk: clock-esai1-rx {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "esai1_rx_clk";
+       };
+
+       clk_esai1_rx_hf_clk: clock-esai1-rx-hf {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "esai1_rx_hf_clk";
+       };
+
+       clk_esai1_tx_clk: clock-esai1-tx {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "esai1_tx_clk";
+       };
+
+       clk_esai1_tx_hf_clk: clock-esai1-tx-hf {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "esai1_tx_hf_clk";
+       };
+
+       clk_hdmi_rx_mclk: clock-hdmi-rx-mclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "hdmi-rx-mclk";
+       };
+
+       clk_mlb_clk: clock-mlb-clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "mlb_clk";
+       };
+
+       clk_sai5_rx_bclk: clock-sai5-rx-bclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "sai5_rx_bclk";
+       };
+
+       clk_sai5_tx_bclk: clock-sai5-tx-bclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "sai5_tx_bclk";
+       };
+
+       clk_sai6_rx_bclk: clock-sai6-rx-bclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "sai6_rx_bclk";
+       };
+
+       clk_sai6_tx_bclk: clock-sai6-tx-bclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "sai6_tx_bclk";
+       };
+
+       clk_spdif1_rx: clock-spdif1-rx {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+               clock-output-names = "spdif1_rx";
+       };
+
        /* sorted in register address */
+       #include "imx8-ss-cm41.dtsi"
+       #include "imx8-ss-audio.dtsi"
        #include "imx8-ss-vpu.dtsi"
+       #include "imx8-ss-gpu0.dtsi"
        #include "imx8-ss-img.dtsi"
        #include "imx8-ss-dma.dtsi"
        #include "imx8-ss-conn.dtsi"
 #include "imx8qm-ss-dma.dtsi"
 #include "imx8qm-ss-conn.dtsi"
 #include "imx8qm-ss-lsio.dtsi"
+#include "imx8qm-ss-audio.dtsi"
index cee13e58762cb532cb715fc426bae75332893b69..936ba5ecdcac76fd03bb9b9c79cd928d31cb3338 100644 (file)
@@ -63,6 +63,7 @@
 };
 
 &dsp {
+       memory-region = <&dsp_reserved>;
        status = "okay";
 };
 
index bd98eff4d685f1e7709654bafe736f290e5cfd59..a15987f49e8d6beb4d6e3e5d8e894cd0a2fa057f 100644 (file)
        status = "okay";
 };
 
-&mu1 {
-       status = "okay";
-};
-
-&mu2 {
-       status = "okay";
-};
-
-&lpi2c3 {
-       #address-cells = <1>;
-       #size-cells = <0>;
-       clock-frequency = <400000>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_lpi2c3>;
-       status = "okay";
-
-       ptn5110: tcpc@50 {
-               compatible = "nxp,ptn5110", "tcpci";
-               reg = <0x50>;
-               interrupt-parent = <&gpio3>;
-               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
-
-               typec1_con: connector {
-                       compatible = "usb-c-connector";
-                       label = "USB-C";
-                       power-role = "dual";
-                       data-role = "dual";
-                       try-power-role = "sink";
-                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
-                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
-                                    PDO_VAR(5000, 20000, 3000)>;
-                       op-sink-microwatt = <15000000>;
-                       self-powered;
-
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               port@0 {
-                                       reg = <0>;
-
-                                       typec1_dr_sw: endpoint {
-                                               remote-endpoint = <&usb1_drd_sw>;
-                                       };
-                               };
-                       };
-               };
-       };
-
-       ptn5110_2: tcpc@51 {
-               compatible = "nxp,ptn5110", "tcpci";
-               reg = <0x51>;
-               interrupt-parent = <&gpio3>;
-               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
-
-               typec2_con: connector {
-                       compatible = "usb-c-connector";
-                       label = "USB-C";
-                       power-role = "dual";
-                       data-role = "dual";
-                       try-power-role = "sink";
-                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
-                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
-                                    PDO_VAR(5000, 20000, 3000)>;
-                       op-sink-microwatt = <15000000>;
-                       self-powered;
-
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               port@0 {
-                                       reg = <0>;
-
-                                       typec2_dr_sw: endpoint {
-                                               remote-endpoint = <&usb2_drd_sw>;
-                                       };
-                               };
-                       };
-               };
-       };
-};
-
 &eqos {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&pinctrl_eqos>;
        };
 };
 
-&lpuart1 { /* console */
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_uart1>;
-       status = "okay";
-};
-
-&lpuart5 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_uart5>;
-       status = "okay";
-};
-
-&usbotg1 {
-       dr_mode = "otg";
-       hnp-disable;
-       srp-disable;
-       adp-disable;
-       usb-role-switch;
-       disable-over-current;
-       samsung,picophy-pre-emp-curr-control = <3>;
-       samsung,picophy-dc-vol-level-adjust = <7>;
-       status = "okay";
-
-       port {
-               usb1_drd_sw: endpoint {
-                       remote-endpoint = <&typec1_dr_sw>;
-               };
-       };
-};
-
-&usbotg2 {
-       dr_mode = "otg";
-       hnp-disable;
-       srp-disable;
-       adp-disable;
-       usb-role-switch;
-       disable-over-current;
-       samsung,picophy-pre-emp-curr-control = <3>;
-       samsung,picophy-dc-vol-level-adjust = <7>;
-       status = "okay";
-
-       port {
-               usb2_drd_sw: endpoint {
-                       remote-endpoint = <&typec2_dr_sw>;
-               };
-       };
-};
-
-&usdhc1 {
-       pinctrl-names = "default", "state_100mhz", "state_200mhz";
-       pinctrl-0 = <&pinctrl_usdhc1>;
-       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
-       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
-       bus-width = <8>;
-       non-removable;
-       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_sleep>, <&pinctrl_usdhc2_gpio_sleep>;
-       cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
-       vmmc-supply = <&reg_usdhc2_vmmc>;
-       bus-width = <4>;
-       status = "okay";
-       no-mmc;
-};
-
-&wdog3 {
-       status = "okay";
-};
-
 &lpi2c2 {
        #address-cells = <1>;
        #size-cells = <0>;
 };
 
 &lpi2c3 {
+       #address-cells = <1>;
+       #size-cells = <0>;
        clock-frequency = <400000>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_lpi2c3>;
        status = "okay";
 
+       ptn5110: tcpc@50 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x50>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+
+               typec1_con: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       data-role = "dual";
+                       try-power-role = "sink";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                    PDO_VAR(5000, 20000, 3000)>;
+                       op-sink-microwatt = <15000000>;
+                       self-powered;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec1_dr_sw: endpoint {
+                                               remote-endpoint = <&usb1_drd_sw>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       ptn5110_2: tcpc@51 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x51>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+
+               typec2_con: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       data-role = "dual";
+                       try-power-role = "sink";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                    PDO_VAR(5000, 20000, 3000)>;
+                       op-sink-microwatt = <15000000>;
+                       self-powered;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec2_dr_sw: endpoint {
+                                               remote-endpoint = <&usb2_drd_sw>;
+                                       };
+                               };
+                       };
+               };
+       };
+
        pcf2131: rtc@53 {
                compatible = "nxp,pcf2131";
                reg = <0x53>;
        };
 };
 
+&lpuart1 { /* console */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&lpuart5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5>;
+       status = "okay";
+};
+
+&mu1 {
+       status = "okay";
+};
+
+&mu2 {
+       status = "okay";
+};
+
+&usbotg1 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+
+       port {
+               usb1_drd_sw: endpoint {
+                       remote-endpoint = <&typec1_dr_sw>;
+               };
+       };
+};
+
+&usbotg2 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+
+       port {
+               usb2_drd_sw: endpoint {
+                       remote-endpoint = <&typec2_dr_sw>;
+               };
+       };
+};
+
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       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_sleep>, <&pinctrl_usdhc2_gpio_sleep>;
+       cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       bus-width = <4>;
+       status = "okay";
+       no-mmc;
+};
+
+&wdog3 {
+       status = "okay";
+};
+
 &iomuxc {
        pinctrl_eqos: eqosgrp {
                fsl,pins = <
diff --git a/src/arm64/freescale/imx93-9x9-qsb.dts b/src/arm64/freescale/imx93-9x9-qsb.dts
new file mode 100644 (file)
index 0000000..950dece
--- /dev/null
@@ -0,0 +1,492 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
+/*
+ * Copyright 2024 NXP
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/usb/pd.h>
+#include "imx93.dtsi"
+
+/ {
+       model = "NXP i.MX93 9x9 Quick Start Board";
+       compatible = "fsl,imx93-9x9-qsb", "fsl,imx93";
+
+       chosen {
+               stdout-path = &lpuart1;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0 0x10000000>;
+                       linux,cma-default;
+               };
+
+               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;
+               };
+
+               rsc_table: rsc-table@2021e000 {
+                       reg = <0 0x2021e000 0 0x1000>;
+                       no-map;
+               };
+
+               vdevbuffer: vdevbuffer@a4020000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0xa4020000 0 0x100000>;
+                       no-map;
+               };
+
+       };
+
+       reg_vref_1v8: regulator-adc-vref {
+               compatible = "regulator-fixed";
+               regulator-name = "VREF_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       reg_rpi_3v3: regulator-rpi {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_RPI_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pcal6524 21 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_usdhc2_vmmc: regulator-usdhc2 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+               regulator-name = "VSD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               off-on-delay-us = <12000>;
+       };
+};
+
+&adc1 {
+       vref-supply = <&reg_vref_1v8>;
+       status = "okay";
+};
+
+&cm33 {
+       mbox-names = "tx", "rx", "rxdb";
+       mboxes = <&mu1 0 1>,
+                <&mu1 1 1>,
+                <&mu1 3 1>;
+       memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+                       <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
+       status = "okay";
+};
+
+&eqos {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_eqos>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy1>;
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clock-frequency = <5000000>;
+
+               ethphy1: ethernet-phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+                       eee-broken-1000t;
+                       reset-gpios = <&pcal6524 15 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <80000>;
+                       realtek,clkout-disable;
+               };
+       };
+};
+
+&lpi2c1 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c1>;
+       status = "okay";
+
+       ptn5110: tcpc@50 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x50>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
+
+               typec1_con: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       data-role = "dual";
+                       try-power-role = "sink";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                    PDO_VAR(5000, 20000, 3000)>;
+                       op-sink-microwatt = <15000000>;
+                       self-powered;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec1_dr_sw: endpoint {
+                                               remote-endpoint = <&usb1_drd_sw>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       rtc@53 {
+               compatible = "nxp,pcf2131";
+               reg = <0x53>;
+               interrupt-parent = <&pcal6524>;
+               interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+       };
+};
+
+&lpi2c2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c2>;
+       status = "okay";
+
+       pcal6524: gpio@22 {
+               compatible = "nxp,pcal6524";
+               reg = <0x22>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pcal6524>;
+       };
+
+       pmic@25 {
+               compatible = "nxp,pca9451a";
+               reg = <0x25>;
+               interrupt-parent = <&pcal6524>;
+               interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+
+               regulators {
+                       buck1: BUCK1 {
+                               regulator-name = "BUCK1";
+                               regulator-min-microvolt = <650000>;
+                               regulator-max-microvolt = <2237500>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck2: BUCK2 {
+                               regulator-name = "BUCK2";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <2187500>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck4: BUCK4{
+                               regulator-name = "BUCK4";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck5: BUCK5{
+                               regulator-name = "BUCK5";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck6: BUCK6 {
+                               regulator-name = "BUCK6";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo1: LDO1 {
+                               regulator-name = "LDO1";
+                               regulator-min-microvolt = <1600000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo4: LDO4 {
+                               regulator-name = "LDO4";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo5: LDO5 {
+                               regulator-name = "LDO5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&lpuart1 { /* console */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&mu1 {
+       status = "okay";
+};
+
+&mu2 {
+       status = "okay";
+};
+
+&usbotg1 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+
+       port {
+               usb1_drd_sw: endpoint {
+                       remote-endpoint = <&typec1_dr_sw>;
+               };
+       };
+};
+
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
+
+&usdhc2 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       cd-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       bus-width = <4>;
+       no-mmc;
+       status = "okay";
+};
+
+&wdog3 {
+       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_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_pcal6524: pcal6524grp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO1__GPIO3_IO26          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_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_RESET_B__GPIO3_IO07        0x31e
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CD_B__GPIO3_IO00           0x31e
+               >;
+       };
+
+       /* 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
+               >;
+       };
+};
index af795ecf678b784520596e443c50dc609e5c6b12..852dd3d2eac74d457b4731f3bab2c8107a79d704 100644 (file)
                reg = <0x1c>;
        };
 
+       ptn5110: usb-typec@50 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x50>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "X17";
+                       power-role = "dual";
+                       data-role = "dual";
+                       try-power-role = "sink";
+                       typec-power-opmode = "default";
+                       pd-disable;
+                       self-powered;
+
+                       port {
+                               typec_con_hs: endpoint {
+                                       remote-endpoint = <&typec_hs>;
+                               };
+                       };
+               };
+       };
+
        eeprom2: eeprom@54 {
                compatible = "nxp,se97b", "atmel,24c02";
                reg = <0x54>;
                                  "WLAN_PD#", "WLAN_W_DISABLE#",
                                  "WLAN_PERST#", "12V_EN";
 
-               /*
-                * Controls the on board USB Hub reset which is low
-                * active as reset signal. The output-low states, the
-                * signal is inactive, e.g. no reset
-                */
-               usb-reset-hog {
-                       gpio-hog;
-                       gpios = <2 GPIO_ACTIVE_LOW>;
-                       output-low;
-                       line-name = "USB_RESET#";
-               };
-
                /*
                 * Controls the WiFi card PD pin which is low active
                 * as power down signal. The output-high states, the signal
        status = "okay";
 };
 
+&usbotg1 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+
+       port {
+               typec_hs: endpoint {
+                       remote-endpoint = <&typec_con_hs>;
+               };
+       };
+};
+
+&usbotg2 {
+       dr_mode = "host";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+
+       hub_2_0: hub@1 {
+               compatible = "usb424,2517";
+               reg = <1>;
+               reset-gpios = <&expander1 2 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&reg_3v3>;
+       };
+};
+
 &usdhc2 {
        pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc2_hs>, <&pinctrl_usdhc2_gpio>;
index eb3f4cfb69863e9221ec0a0a8e245a6321cfac5d..e2ee9f5a042cb11d368e34bcc54a402113e1ed71 100644 (file)
                reg = <0x1c>;
        };
 
+       ptn5110: usb-typec@50 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x50>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "X17";
+                       power-role = "dual";
+                       data-role = "dual";
+                       try-power-role = "sink";
+                       typec-power-opmode = "default";
+                       pd-disable;
+                       self-powered;
+
+                       port {
+                               typec_con_hs: endpoint {
+                                       remote-endpoint = <&typec_hs>;
+                               };
+                       };
+               };
+       };
+
        eeprom2: eeprom@54 {
                compatible = "nxp,se97b", "atmel,24c02";
                reg = <0x54>;
        pinctrl-0 = <&pinctrl_tpm5>;
 };
 
+&usbotg1 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+
+       port {
+               typec_hs: endpoint {
+                       remote-endpoint = <&typec_con_hs>;
+               };
+       };
+};
+
+&usbotg2 {
+       dr_mode = "host";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+
+       hub_2_0: hub@1 {
+               compatible = "usb424,2517";
+               reg = <1>;
+               reset-gpios = <&expander1 2 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&reg_3v3>;
+       };
+};
+
 &usdhc2 {
        pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc2_hs>, <&pinctrl_usdhc2_gpio>;
        pinctrl-1 = <&pinctrl_usdhc2_uhs>, <&pinctrl_usdhc2_gpio>;
        pinctrl-2 = <&pinctrl_usdhc2_uhs>, <&pinctrl_usdhc2_gpio>;
-       cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
+       cd-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
        vmmc-supply = <&reg_usdhc2_vmmc>;
        bus-width = <4>;
        no-sdio;
index 9d2328c185c90ed1629872b1dca87142260ff5ed..72a9a5d4e27a3ccc6eb68983b6f4de69f06c4db0 100644 (file)
@@ -19,7 +19,7 @@
                linux,cma {
                        compatible = "shared-dma-pool";
                        reusable;
-                       alloc-ranges = <0 0x60000000 0 0x40000000>;
+                       alloc-ranges = <0 0x80000000 0 0x40000000>;
                        size = <0 0x10000000>;
                        linux,cma-default;
                };
                spi-max-frequency = <62000000>;
                spi-tx-bus-width = <4>;
                spi-rx-bus-width = <4>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
        };
 };
 
 &wdog3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
        status = "okay";
 };
 
index 4a3f42355cb8fcfcb75e60c5170495b858c25d24..a0993022c102da243822c9161e56fa400f999f75 100644 (file)
                                                         <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>;
                                assigned-clock-rates = <100000000>, <250000000>;
                                intf_mode = <&wakeupmix_gpr 0x28>;
-                               snps,clk-csr = <0>;
+                               snps,clk-csr = <6>;
                                nvmem-cells = <&eth_mac2>;
                                nvmem-cell-names = "mac-address";
                                status = "disabled";
diff --git a/src/arm64/freescale/imx95-19x19-evk.dts b/src/arm64/freescale/imx95-19x19-evk.dts
new file mode 100644 (file)
index 0000000..d14a54a
--- /dev/null
@@ -0,0 +1,289 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 NXP
+ */
+
+/dts-v1/;
+
+#include "imx95.dtsi"
+
+/ {
+       model = "NXP i.MX95 19X19 board";
+       compatible = "fsl,imx95-19x19-evk", "fsl,imx95";
+
+       aliases {
+               mmc0 = &usdhc1;
+               mmc1 = &usdhc2;
+               serial0 = &lpuart1;
+       };
+
+       chosen {
+               stdout-path = &lpuart1;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0 0x80000000>;
+       };
+
+       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;
+               };
+       };
+
+       reg_m2_pwr: regulator-m2-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "M.2-power";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&i2c7_pcal6524 20 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_pcie0: regulator-pcie {
+               compatible = "regulator-fixed";
+               regulator-name = "PCIE_WLAN_EN";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&reg_m2_pwr>;
+               gpio = <&i2c7_pcal6524 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       reg_slot_pwr: regulator-slot-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "PCIe slot-power";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&i2c7_pcal6524 14 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       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>;
+       };
+};
+
+&lpi2c7 {
+       clock-frequency = <1000000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c7>;
+       status = "okay";
+
+       i2c7_pcal6524: i2c7-gpio@22 {
+               compatible = "nxp,pcal6524";
+               reg = <0x22>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2c7_pcal6524>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&lpuart1 {
+       /* console */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&mu7 {
+       status = "okay";
+};
+
+&pcie0 {
+       pinctrl-0 = <&pinctrl_pcie0>;
+       pinctrl-names = "default";
+       reset-gpio = <&i2c7_pcal6524 5 GPIO_ACTIVE_LOW>;
+       vpcie-supply = <&reg_pcie0>;
+       status = "okay";
+};
+
+&pcie1 {
+       pinctrl-0 = <&pinctrl_pcie1>;
+       pinctrl-names = "default";
+       reset-gpio = <&i2c7_pcal6524 16 GPIO_ACTIVE_LOW>;
+       vpcie-supply = <&reg_slot_pwr>;
+       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_i2c7_pcal6524: i2c7pcal6524grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO36__GPIO5_IO_BIT16                     0x31e
+               >;
+       };
+
+       pinctrl_lpi2c7: lpi2c7grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO08__LPI2C7_SDA                 0x40000b9e
+                       IMX95_PAD_GPIO_IO09__LPI2C7_SCL                 0x40000b9e
+               >;
+       };
+
+       pinctrl_pcie0: pcie0grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO32__HSIOMIX_TOP_PCIE1_CLKREQ_B         0x4000031e
+               >;
+       };
+
+       pinctrl_pcie1: pcie1grp {
+               fsl,pins = <
+                       IMX95_PAD_GPIO_IO35__HSIOMIX_TOP_PCIE2_CLKREQ_B         0x4000031e
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       IMX95_PAD_UART1_RXD__AONMIX_TOP_LPUART1_RX      0x31e
+                       IMX95_PAD_UART1_TXD__AONMIX_TOP_LPUART1_TX      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_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+               fsl,pins = <
+                       IMX95_PAD_SD2_RESET_B__GPIO3_IO_BIT7            0x31e
+               >;
+       };
+
+       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                   0x15fe
+                       IMX95_PAD_SD2_CMD__USDHC2_CMD                   0x13fe
+                       IMX95_PAD_SD2_DATA0__USDHC2_DATA0               0x13fe
+                       IMX95_PAD_SD2_DATA1__USDHC2_DATA1               0x13fe
+                       IMX95_PAD_SD2_DATA2__USDHC2_DATA2               0x13fe
+                       IMX95_PAD_SD2_DATA3__USDHC2_DATA3               0x13fe
+                       IMX95_PAD_SD2_VSELECT__USDHC2_VSELECT           0x51e
+               >;
+       };
+};
diff --git a/src/arm64/freescale/imx95-clock.h b/src/arm64/freescale/imx95-clock.h
new file mode 100644 (file)
index 0000000..e1f9120
--- /dev/null
@@ -0,0 +1,187 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR MIT */
+/*
+ * Copyright 2024 NXP
+ */
+
+#ifndef __CLOCK_IMX95_H
+#define __CLOCK_IMX95_H
+
+/* The index should match i.MX95 SCMI Firmware */
+#define IMX95_CLK_32K                       1
+#define IMX95_CLK_24M                       2
+#define IMX95_CLK_FRO                       3
+#define IMX95_CLK_SYSPLL1_VCO               4
+#define IMX95_CLK_SYSPLL1_PFD0_UNGATED      5
+#define IMX95_CLK_SYSPLL1_PFD0              6
+#define IMX95_CLK_SYSPLL1_PFD0_DIV2         7
+#define IMX95_CLK_SYSPLL1_PFD1_UNGATED      8
+#define IMX95_CLK_SYSPLL1_PFD1              9
+#define IMX95_CLK_SYSPLL1_PFD1_DIV2         10
+#define IMX95_CLK_SYSPLL1_PFD2_UNGATED      11
+#define IMX95_CLK_SYSPLL1_PFD2              12
+#define IMX95_CLK_SYSPLL1_PFD2_DIV2         13
+#define IMX95_CLK_AUDIOPLL1_VCO             14
+#define IMX95_CLK_AUDIOPLL1                 15
+#define IMX95_CLK_AUDIOPLL2_VCO             16
+#define IMX95_CLK_AUDIOPLL2                 17
+#define IMX95_CLK_VIDEOPLL1_VCO             18
+#define IMX95_CLK_VIDEOPLL1                 19
+#define IMX95_CLK_RESERVED20                20
+#define IMX95_CLK_RESERVED21                21
+#define IMX95_CLK_RESERVED22                22
+#define IMX95_CLK_RESERVED23                23
+#define IMX95_CLK_ARMPLL_VCO                24
+#define IMX95_CLK_ARMPLL_PFD0_UNGATED       25
+#define IMX95_CLK_ARMPLL_PFD0               26
+#define IMX95_CLK_ARMPLL_PFD1_UNGATED       27
+#define IMX95_CLK_ARMPLL_PFD1               28
+#define IMX95_CLK_ARMPLL_PFD2_UNGATED       29
+#define IMX95_CLK_ARMPLL_PFD2               30
+#define IMX95_CLK_ARMPLL_PFD3_UNGATED       31
+#define IMX95_CLK_ARMPLL_PFD3               32
+#define IMX95_CLK_DRAMPLL_VCO               33
+#define IMX95_CLK_DRAMPLL                   34
+#define IMX95_CLK_HSIOPLL_VCO               35
+#define IMX95_CLK_HSIOPLL                   36
+#define IMX95_CLK_LDBPLL_VCO                37
+#define IMX95_CLK_LDBPLL                    38
+#define IMX95_CLK_EXT1                      39
+#define IMX95_CLK_EXT2                      40
+
+#define IMX95_CCM_NUM_CLK_SRC               41
+
+#define IMX95_CLK_ADC                      (IMX95_CCM_NUM_CLK_SRC + 0)
+#define IMX95_CLK_TMU                      (IMX95_CCM_NUM_CLK_SRC + 1)
+#define IMX95_CLK_BUSAON                   (IMX95_CCM_NUM_CLK_SRC + 2)
+#define IMX95_CLK_CAN1                     (IMX95_CCM_NUM_CLK_SRC + 3)
+#define IMX95_CLK_I3C1                     (IMX95_CCM_NUM_CLK_SRC + 4)
+#define IMX95_CLK_I3C1SLOW                 (IMX95_CCM_NUM_CLK_SRC + 5)
+#define IMX95_CLK_LPI2C1                   (IMX95_CCM_NUM_CLK_SRC + 6)
+#define IMX95_CLK_LPI2C2                   (IMX95_CCM_NUM_CLK_SRC + 7)
+#define IMX95_CLK_LPSPI1                   (IMX95_CCM_NUM_CLK_SRC + 8)
+#define IMX95_CLK_LPSPI2                   (IMX95_CCM_NUM_CLK_SRC + 9)
+#define IMX95_CLK_LPTMR1                   (IMX95_CCM_NUM_CLK_SRC + 10)
+#define IMX95_CLK_LPUART1                  (IMX95_CCM_NUM_CLK_SRC + 11)
+#define IMX95_CLK_LPUART2                  (IMX95_CCM_NUM_CLK_SRC + 12)
+#define IMX95_CLK_M33                      (IMX95_CCM_NUM_CLK_SRC + 13)
+#define IMX95_CLK_M33SYSTICK               (IMX95_CCM_NUM_CLK_SRC + 14)
+#define IMX95_CLK_MQS1                     (IMX95_CCM_NUM_CLK_SRC + 15)
+#define IMX95_CLK_PDM                      (IMX95_CCM_NUM_CLK_SRC + 16)
+#define IMX95_CLK_SAI1                     (IMX95_CCM_NUM_CLK_SRC + 17)
+#define IMX95_CLK_SENTINEL                 (IMX95_CCM_NUM_CLK_SRC + 18)
+#define IMX95_CLK_TPM2                     (IMX95_CCM_NUM_CLK_SRC + 19)
+#define IMX95_CLK_TSTMR1                   (IMX95_CCM_NUM_CLK_SRC + 20)
+#define IMX95_CLK_CAMAPB                   (IMX95_CCM_NUM_CLK_SRC + 21)
+#define IMX95_CLK_CAMAXI                   (IMX95_CCM_NUM_CLK_SRC + 22)
+#define IMX95_CLK_CAMCM0                   (IMX95_CCM_NUM_CLK_SRC + 23)
+#define IMX95_CLK_CAMISI                   (IMX95_CCM_NUM_CLK_SRC + 24)
+#define IMX95_CLK_MIPIPHYCFG               (IMX95_CCM_NUM_CLK_SRC + 25)
+#define IMX95_CLK_MIPIPHYPLLBYPASS         (IMX95_CCM_NUM_CLK_SRC + 26)
+#define IMX95_CLK_MIPIPHYPLLREF            (IMX95_CCM_NUM_CLK_SRC + 27)
+#define IMX95_CLK_MIPITESTBYTE             (IMX95_CCM_NUM_CLK_SRC + 28)
+#define IMX95_CLK_A55                      (IMX95_CCM_NUM_CLK_SRC + 29)
+#define IMX95_CLK_A55MTRBUS                (IMX95_CCM_NUM_CLK_SRC + 30)
+#define IMX95_CLK_A55PERIPH                (IMX95_CCM_NUM_CLK_SRC + 31)
+#define IMX95_CLK_DRAMALT                  (IMX95_CCM_NUM_CLK_SRC + 32)
+#define IMX95_CLK_DRAMAPB                  (IMX95_CCM_NUM_CLK_SRC + 33)
+#define IMX95_CLK_DISPAPB                  (IMX95_CCM_NUM_CLK_SRC + 34)
+#define IMX95_CLK_DISPAXI                  (IMX95_CCM_NUM_CLK_SRC + 35)
+#define IMX95_CLK_DISPDP                   (IMX95_CCM_NUM_CLK_SRC + 36)
+#define IMX95_CLK_DISPOCRAM                (IMX95_CCM_NUM_CLK_SRC + 37)
+#define IMX95_CLK_DISPUSB31                (IMX95_CCM_NUM_CLK_SRC + 38)
+#define IMX95_CLK_DISP1PIX                 (IMX95_CCM_NUM_CLK_SRC + 39)
+#define IMX95_CLK_DISP2PIX                 (IMX95_CCM_NUM_CLK_SRC + 40)
+#define IMX95_CLK_DISP3PIX                 (IMX95_CCM_NUM_CLK_SRC + 41)
+#define IMX95_CLK_GPUAPB                   (IMX95_CCM_NUM_CLK_SRC + 42)
+#define IMX95_CLK_GPU                      (IMX95_CCM_NUM_CLK_SRC + 43)
+#define IMX95_CLK_HSIOACSCAN480M           (IMX95_CCM_NUM_CLK_SRC + 44)
+#define IMX95_CLK_HSIOACSCAN80M            (IMX95_CCM_NUM_CLK_SRC + 45)
+#define IMX95_CLK_HSIO                     (IMX95_CCM_NUM_CLK_SRC + 46)
+#define IMX95_CLK_HSIOPCIEAUX              (IMX95_CCM_NUM_CLK_SRC + 47)
+#define IMX95_CLK_HSIOPCIETEST160M         (IMX95_CCM_NUM_CLK_SRC + 48)
+#define IMX95_CLK_HSIOPCIETEST400M         (IMX95_CCM_NUM_CLK_SRC + 49)
+#define IMX95_CLK_HSIOPCIETEST500M         (IMX95_CCM_NUM_CLK_SRC + 50)
+#define IMX95_CLK_HSIOUSBTEST50M           (IMX95_CCM_NUM_CLK_SRC + 51)
+#define IMX95_CLK_HSIOUSBTEST60M           (IMX95_CCM_NUM_CLK_SRC + 52)
+#define IMX95_CLK_BUSM7                    (IMX95_CCM_NUM_CLK_SRC + 53)
+#define IMX95_CLK_M7                       (IMX95_CCM_NUM_CLK_SRC + 54)
+#define IMX95_CLK_M7SYSTICK                (IMX95_CCM_NUM_CLK_SRC + 55)
+#define IMX95_CLK_BUSNETCMIX               (IMX95_CCM_NUM_CLK_SRC + 56)
+#define IMX95_CLK_ENET                     (IMX95_CCM_NUM_CLK_SRC + 57)
+#define IMX95_CLK_ENETPHYTEST200M          (IMX95_CCM_NUM_CLK_SRC + 58)
+#define IMX95_CLK_ENETPHYTEST500M          (IMX95_CCM_NUM_CLK_SRC + 59)
+#define IMX95_CLK_ENETPHYTEST667M          (IMX95_CCM_NUM_CLK_SRC + 60)
+#define IMX95_CLK_ENETREF                  (IMX95_CCM_NUM_CLK_SRC + 61)
+#define IMX95_CLK_ENETTIMER1               (IMX95_CCM_NUM_CLK_SRC + 62)
+#define IMX95_CLK_MQS2                     (IMX95_CCM_NUM_CLK_SRC + 63)
+#define IMX95_CLK_SAI2                     (IMX95_CCM_NUM_CLK_SRC + 64)
+#define IMX95_CLK_NOCAPB                   (IMX95_CCM_NUM_CLK_SRC + 65)
+#define IMX95_CLK_NOC                      (IMX95_CCM_NUM_CLK_SRC + 66)
+#define IMX95_CLK_NPUAPB                   (IMX95_CCM_NUM_CLK_SRC + 67)
+#define IMX95_CLK_NPU                      (IMX95_CCM_NUM_CLK_SRC + 68)
+#define IMX95_CLK_CCMCKO1                  (IMX95_CCM_NUM_CLK_SRC + 69)
+#define IMX95_CLK_CCMCKO2                  (IMX95_CCM_NUM_CLK_SRC + 70)
+#define IMX95_CLK_CCMCKO3                  (IMX95_CCM_NUM_CLK_SRC + 71)
+#define IMX95_CLK_CCMCKO4                  (IMX95_CCM_NUM_CLK_SRC + 72)
+#define IMX95_CLK_VPUAPB                   (IMX95_CCM_NUM_CLK_SRC + 73)
+#define IMX95_CLK_VPU                      (IMX95_CCM_NUM_CLK_SRC + 74)
+#define IMX95_CLK_VPUDSP                   (IMX95_CCM_NUM_CLK_SRC + 75)
+#define IMX95_CLK_VPUJPEG                  (IMX95_CCM_NUM_CLK_SRC + 76)
+#define IMX95_CLK_AUDIOXCVR                (IMX95_CCM_NUM_CLK_SRC + 77)
+#define IMX95_CLK_BUSWAKEUP                (IMX95_CCM_NUM_CLK_SRC + 78)
+#define IMX95_CLK_CAN2                     (IMX95_CCM_NUM_CLK_SRC + 79)
+#define IMX95_CLK_CAN3                     (IMX95_CCM_NUM_CLK_SRC + 80)
+#define IMX95_CLK_CAN4                     (IMX95_CCM_NUM_CLK_SRC + 81)
+#define IMX95_CLK_CAN5                     (IMX95_CCM_NUM_CLK_SRC + 82)
+#define IMX95_CLK_FLEXIO1                  (IMX95_CCM_NUM_CLK_SRC + 83)
+#define IMX95_CLK_FLEXIO2                  (IMX95_CCM_NUM_CLK_SRC + 84)
+#define IMX95_CLK_FLEXSPI1                 (IMX95_CCM_NUM_CLK_SRC + 85)
+#define IMX95_CLK_I3C2                     (IMX95_CCM_NUM_CLK_SRC + 86)
+#define IMX95_CLK_I3C2SLOW                 (IMX95_CCM_NUM_CLK_SRC + 87)
+#define IMX95_CLK_LPI2C3                   (IMX95_CCM_NUM_CLK_SRC + 88)
+#define IMX95_CLK_LPI2C4                   (IMX95_CCM_NUM_CLK_SRC + 89)
+#define IMX95_CLK_LPI2C5                   (IMX95_CCM_NUM_CLK_SRC + 90)
+#define IMX95_CLK_LPI2C6                   (IMX95_CCM_NUM_CLK_SRC + 91)
+#define IMX95_CLK_LPI2C7                   (IMX95_CCM_NUM_CLK_SRC + 92)
+#define IMX95_CLK_LPI2C8                   (IMX95_CCM_NUM_CLK_SRC + 93)
+#define IMX95_CLK_LPSPI3                   (IMX95_CCM_NUM_CLK_SRC + 94)
+#define IMX95_CLK_LPSPI4                   (IMX95_CCM_NUM_CLK_SRC + 95)
+#define IMX95_CLK_LPSPI5                   (IMX95_CCM_NUM_CLK_SRC + 96)
+#define IMX95_CLK_LPSPI6                   (IMX95_CCM_NUM_CLK_SRC + 97)
+#define IMX95_CLK_LPSPI7                   (IMX95_CCM_NUM_CLK_SRC + 98)
+#define IMX95_CLK_LPSPI8                   (IMX95_CCM_NUM_CLK_SRC + 99)
+#define IMX95_CLK_LPTMR2                   (IMX95_CCM_NUM_CLK_SRC + 100)
+#define IMX95_CLK_LPUART3                  (IMX95_CCM_NUM_CLK_SRC + 101)
+#define IMX95_CLK_LPUART4                  (IMX95_CCM_NUM_CLK_SRC + 102)
+#define IMX95_CLK_LPUART5                  (IMX95_CCM_NUM_CLK_SRC + 103)
+#define IMX95_CLK_LPUART6                  (IMX95_CCM_NUM_CLK_SRC + 104)
+#define IMX95_CLK_LPUART7                  (IMX95_CCM_NUM_CLK_SRC + 105)
+#define IMX95_CLK_LPUART8                  (IMX95_CCM_NUM_CLK_SRC + 106)
+#define IMX95_CLK_SAI3                     (IMX95_CCM_NUM_CLK_SRC + 107)
+#define IMX95_CLK_SAI4                     (IMX95_CCM_NUM_CLK_SRC + 108)
+#define IMX95_CLK_SAI5                     (IMX95_CCM_NUM_CLK_SRC + 109)
+#define IMX95_CLK_SPDIF                    (IMX95_CCM_NUM_CLK_SRC + 110)
+#define IMX95_CLK_SWOTRACE                 (IMX95_CCM_NUM_CLK_SRC + 111)
+#define IMX95_CLK_TPM4                     (IMX95_CCM_NUM_CLK_SRC + 112)
+#define IMX95_CLK_TPM5                     (IMX95_CCM_NUM_CLK_SRC + 113)
+#define IMX95_CLK_TPM6                     (IMX95_CCM_NUM_CLK_SRC + 114)
+#define IMX95_CLK_TSTMR2                   (IMX95_CCM_NUM_CLK_SRC + 115)
+#define IMX95_CLK_USBPHYBURUNIN            (IMX95_CCM_NUM_CLK_SRC + 116)
+#define IMX95_CLK_USDHC1                   (IMX95_CCM_NUM_CLK_SRC + 117)
+#define IMX95_CLK_USDHC2                   (IMX95_CCM_NUM_CLK_SRC + 118)
+#define IMX95_CLK_USDHC3                   (IMX95_CCM_NUM_CLK_SRC + 119)
+#define IMX95_CLK_V2XPK                    (IMX95_CCM_NUM_CLK_SRC + 120)
+#define IMX95_CLK_WAKEUPAXI                (IMX95_CCM_NUM_CLK_SRC + 121)
+#define IMX95_CLK_XSPISLVROOT              (IMX95_CCM_NUM_CLK_SRC + 122)
+#define IMX95_CLK_SEL_EXT                  (IMX95_CCM_NUM_CLK_SRC + 123 + 0)
+#define IMX95_CLK_SEL_A55C0                (IMX95_CCM_NUM_CLK_SRC + 123 + 1)
+#define IMX95_CLK_SEL_A55C1                (IMX95_CCM_NUM_CLK_SRC + 123 + 2)
+#define IMX95_CLK_SEL_A55C2                (IMX95_CCM_NUM_CLK_SRC + 123 + 3)
+#define IMX95_CLK_SEL_A55C3                (IMX95_CCM_NUM_CLK_SRC + 123 + 4)
+#define IMX95_CLK_SEL_A55C4                (IMX95_CCM_NUM_CLK_SRC + 123 + 5)
+#define IMX95_CLK_SEL_A55C5                (IMX95_CCM_NUM_CLK_SRC + 123 + 6)
+#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)
+
+#endif /* __CLOCK_IMX95_H */
diff --git a/src/arm64/freescale/imx95-pinfunc.h b/src/arm64/freescale/imx95-pinfunc.h
new file mode 100644 (file)
index 0000000..9f614ee
--- /dev/null
@@ -0,0 +1,865 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright 2024 NXP
+ */
+
+#ifndef __DTS_IMX95_PINFUNC_H
+#define __DTS_IMX95_PINFUNC_H
+
+/*
+ * The pin function ID is a tuple of
+ * <mux_reg conf_reg input_reg mux_mode input_val>
+ */
+#define IMX95_PAD_DAP_TDI__JTAG_MUX_TDI                               0x0000 0x0204 0x0610 0x00 0x00
+#define IMX95_PAD_DAP_TDI__NETCMIX_TOP_MQS2_LEFT                      0x0000 0x0204 0x0000 0x01 0x00
+#define IMX95_PAD_DAP_TDI__NETCMIX_TOP_NETC_TMR_1588_ALARM1           0x0000 0x0204 0x0000 0x02 0x00
+#define IMX95_PAD_DAP_TDI__CAN2_TX                                    0x0000 0x0204 0x0000 0x03 0x00
+#define IMX95_PAD_DAP_TDI__FLEXIO2_FLEXIO_BIT30                       0x0000 0x0204 0x0000 0x04 0x00
+#define IMX95_PAD_DAP_TDI__GPIO3_IO_BIT28                             0x0000 0x0204 0x0000 0x05 0x00
+#define IMX95_PAD_DAP_TDI__LPUART5_RX                                 0x0000 0x0204 0x0570 0x06 0x00
+
+#define IMX95_PAD_DAP_TMS_SWDIO__JTAG_MUX_TMS                         0x0004 0x0208 0x0614 0x00 0x00
+#define IMX95_PAD_DAP_TMS_SWDIO__CAN4_TX                              0x0004 0x0208 0x0000 0x02 0x00
+#define IMX95_PAD_DAP_TMS_SWDIO__FLEXIO2_FLEXIO_BIT31                 0x0004 0x0208 0x0000 0x04 0x00
+#define IMX95_PAD_DAP_TMS_SWDIO__GPIO3_IO_BIT29                       0x0004 0x0208 0x0000 0x05 0x00
+#define IMX95_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B                        0x0004 0x0208 0x0000 0x06 0x00
+
+#define IMX95_PAD_DAP_TCLK_SWCLK__JTAG_MUX_TCK                        0x0008 0x020C 0x060C 0x00 0x00
+#define IMX95_PAD_DAP_TCLK_SWCLK__CAN4_RX                             0x0008 0x020C 0x044C 0x02 0x00
+#define IMX95_PAD_DAP_TCLK_SWCLK__FLEXIO1_FLEXIO_BIT30                0x0008 0x020C 0x0460 0x04 0x00
+#define IMX95_PAD_DAP_TCLK_SWCLK__GPIO3_IO_BIT30                      0x0008 0x020C 0x0000 0x05 0x00
+#define IMX95_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B                       0x0008 0x020C 0x056C 0x06 0x00
+
+#define IMX95_PAD_DAP_TDO_TRACESWO__JTAG_MUX_TDO                      0x000C 0x0210 0x0000 0x00 0x00
+#define IMX95_PAD_DAP_TDO_TRACESWO__NETCMIX_TOP_MQS2_RIGHT            0x000C 0x0210 0x0000 0x01 0x00
+#define IMX95_PAD_DAP_TDO_TRACESWO__NETCMIX_TOP_NETC_TMR_1588_ALARM   0x000C 0x0210 0x0000 0x02 0x00
+#define IMX95_PAD_DAP_TDO_TRACESWO__CAN2_RX                           0x000C 0x0210 0x0444 0x03 0x00
+#define IMX95_PAD_DAP_TDO_TRACESWO__FLEXIO1_FLEXIO_BIT31              0x000C 0x0210 0x0464 0x04 0x00
+#define IMX95_PAD_DAP_TDO_TRACESWO__GPIO3_IO_BIT31                    0x000C 0x0210 0x0000 0x05 0x00
+#define IMX95_PAD_DAP_TDO_TRACESWO__LPUART5_TX                        0x000C 0x0210 0x0574 0x06 0x00
+
+#define IMX95_PAD_GPIO_IO00__GPIO2_IO_BIT0                            0x0010 0x0214 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO00__LPI2C3_SDA                               0x0010 0x0214 0x0504 0x11 0x00
+#define IMX95_PAD_GPIO_IO00__LPSPI6_PCS0                              0x0010 0x0214 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO00__LPUART5_TX                               0x0010 0x0214 0x0574 0x05 0x01
+#define IMX95_PAD_GPIO_IO00__LPI2C5_SDA                               0x0010 0x0214 0x0514 0x16 0x00
+#define IMX95_PAD_GPIO_IO00__FLEXIO1_FLEXIO_BIT0                      0x0010 0x0214 0x0468 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO01__GPIO2_IO_BIT1                            0x0014 0x0218 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO01__LPI2C3_SCL                               0x0014 0x0218 0x0500 0x11 0x00
+#define IMX95_PAD_GPIO_IO01__LPSPI6_SIN                               0x0014 0x0218 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO01__LPUART5_RX                               0x0014 0x0218 0x0570 0x05 0x01
+#define IMX95_PAD_GPIO_IO01__LPI2C5_SCL                               0x0014 0x0218 0x0510 0x16 0x00
+#define IMX95_PAD_GPIO_IO01__FLEXIO1_FLEXIO_BIT1                      0x0014 0x0218 0x046C 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO02__GPIO2_IO_BIT2                            0x0018 0x021C 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO02__LPI2C4_SDA                               0x0018 0x021C 0x050C 0x11 0x00
+#define IMX95_PAD_GPIO_IO02__LPSPI6_SOUT                              0x0018 0x021C 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO02__LPUART5_CTS_B                            0x0018 0x021C 0x056C 0x05 0x01
+#define IMX95_PAD_GPIO_IO02__LPI2C6_SDA                               0x0018 0x021C 0x051C 0x16 0x00
+#define IMX95_PAD_GPIO_IO02__FLEXIO1_FLEXIO_BIT2                      0x0018 0x021C 0x0470 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO03__GPIO2_IO_BIT3                            0x001C 0x0220 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO03__LPI2C4_SCL                               0x001C 0x0220 0x0508 0x11 0x00
+#define IMX95_PAD_GPIO_IO03__LPSPI6_SCK                               0x001C 0x0220 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO03__LPUART5_RTS_B                            0x001C 0x0220 0x0000 0x05 0x00
+#define IMX95_PAD_GPIO_IO03__LPI2C6_SCL                               0x001C 0x0220 0x0518 0x16 0x00
+#define IMX95_PAD_GPIO_IO03__FLEXIO1_FLEXIO_BIT3                      0x001C 0x0220 0x0474 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO04__GPIO2_IO_BIT4                            0x0020 0x0224 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO04__TPM3_CH0                                 0x0020 0x0224 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO04__AONMIX_TOP_PDM_CLK                       0x0020 0x0224 0x0000 0x02 0x00
+#define IMX95_PAD_GPIO_IO04__CAN4_TX                                  0x0020 0x0224 0x0000 0x03 0x00
+#define IMX95_PAD_GPIO_IO04__LPSPI7_PCS0                              0x0020 0x0224 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO04__LPUART6_TX                               0x0020 0x0224 0x0580 0x05 0x01
+#define IMX95_PAD_GPIO_IO04__LPI2C6_SDA                               0x0020 0x0224 0x051C 0x16 0x01
+#define IMX95_PAD_GPIO_IO04__FLEXIO1_FLEXIO_BIT4                      0x0020 0x0224 0x0478 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO05__GPIO2_IO_BIT5                            0x0024 0x0228 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO05__TPM4_CH0                                 0x0024 0x0228 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO05__AONMIX_TOP_PDM_BIT_STREAM_BIT0           0x0024 0x0228 0x040C 0x02 0x01
+#define IMX95_PAD_GPIO_IO05__CAN4_RX                                  0x0024 0x0228 0x044C 0x03 0x01
+#define IMX95_PAD_GPIO_IO05__LPSPI7_SIN                               0x0024 0x0228 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO05__LPUART6_RX                               0x0024 0x0228 0x057C 0x05 0x01
+#define IMX95_PAD_GPIO_IO05__LPI2C6_SCL                               0x0024 0x0228 0x0518 0x16 0x01
+#define IMX95_PAD_GPIO_IO05__FLEXIO1_FLEXIO_BIT5                      0x0024 0x0228 0x047C 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO06__GPIO2_IO_BIT6                            0x0028 0x022C 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO06__TPM5_CH0                                 0x0028 0x022C 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO06__AONMIX_TOP_PDM_BIT_STREAM_BIT1           0x0028 0x022C 0x0410 0x02 0x01
+#define IMX95_PAD_GPIO_IO06__LPSPI7_SOUT                              0x0028 0x022C 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO06__LPUART6_CTS_B                            0x0028 0x022C 0x0578 0x05 0x01
+#define IMX95_PAD_GPIO_IO06__LPI2C7_SDA                               0x0028 0x022C 0x0524 0x16 0x00
+#define IMX95_PAD_GPIO_IO06__FLEXIO1_FLEXIO_BIT6                      0x0028 0x022C 0x0480 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO07__GPIO2_IO_BIT7                            0x002C 0x0230 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO07__LPSPI3_PCS1                              0x002C 0x0230 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO07__LPSPI7_SCK                               0x002C 0x0230 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO07__LPUART6_RTS_B                            0x002C 0x0230 0x0000 0x05 0x00
+#define IMX95_PAD_GPIO_IO07__LPI2C7_SCL                               0x002C 0x0230 0x0520 0x16 0x00
+#define IMX95_PAD_GPIO_IO07__FLEXIO1_FLEXIO_BIT7                      0x002C 0x0230 0x0484 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO08__GPIO2_IO_BIT8                            0x0030 0x0234 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO08__LPSPI3_PCS0                              0x0030 0x0234 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO08__TPM6_CH0                                 0x0030 0x0234 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO08__LPUART7_TX                               0x0030 0x0234 0x0588 0x05 0x01
+#define IMX95_PAD_GPIO_IO08__LPI2C7_SDA                               0x0030 0x0234 0x0524 0x16 0x01
+#define IMX95_PAD_GPIO_IO08__FLEXIO1_FLEXIO_BIT8                      0x0030 0x0234 0x0488 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO09__GPIO2_IO_BIT9                            0x0034 0x0238 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO09__LPSPI3_SIN                               0x0034 0x0238 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO09__TPM3_EXTCLK                              0x0034 0x0238 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO09__LPUART7_RX                               0x0034 0x0238 0x0584 0x05 0x01
+#define IMX95_PAD_GPIO_IO09__LPI2C7_SCL                               0x0034 0x0238 0x0520 0x16 0x01
+#define IMX95_PAD_GPIO_IO09__FLEXIO1_FLEXIO_BIT9                      0x0034 0x0238 0x048C 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO10__GPIO2_IO_BIT10                           0x0038 0x023C 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO10__LPSPI3_SOUT                              0x0038 0x023C 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO10__TPM4_EXTCLK                              0x0038 0x023C 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO10__LPUART7_CTS_B                            0x0038 0x023C 0x0000 0x05 0x00
+#define IMX95_PAD_GPIO_IO10__LPI2C8_SDA                               0x0038 0x023C 0x052C 0x16 0x00
+#define IMX95_PAD_GPIO_IO10__FLEXIO1_FLEXIO_BIT10                     0x0038 0x023C 0x0490 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO11__GPIO2_IO_BIT11                           0x003C 0x0240 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO11__LPSPI3_SCK                               0x003C 0x0240 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO11__TPM5_EXTCLK                              0x003C 0x0240 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO11__LPUART7_RTS_B                            0x003C 0x0240 0x0000 0x05 0x00
+#define IMX95_PAD_GPIO_IO11__LPI2C8_SCL                               0x003C 0x0240 0x0528 0x16 0x00
+#define IMX95_PAD_GPIO_IO11__FLEXIO1_FLEXIO_BIT11                     0x003C 0x0240 0x0494 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO12__GPIO2_IO_BIT12                           0x0040 0x0244 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO12__TPM3_CH2                                 0x0040 0x0244 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO12__AONMIX_TOP_PDM_BIT_STREAM_BIT2           0x0040 0x0244 0x0414 0x02 0x00
+#define IMX95_PAD_GPIO_IO12__FLEXIO1_FLEXIO_BIT12                     0x0040 0x0244 0x0498 0x03 0x00
+#define IMX95_PAD_GPIO_IO12__LPSPI8_PCS0                              0x0040 0x0244 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO12__LPUART8_TX                               0x0040 0x0244 0x0000 0x05 0x00
+#define IMX95_PAD_GPIO_IO12__LPI2C8_SDA                               0x0040 0x0244 0x052C 0x16 0x01
+#define IMX95_PAD_GPIO_IO12__SAI3_RX_SYNC                             0x0040 0x0244 0x0590 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO13__GPIO2_IO_BIT13                           0x0044 0x0248 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO13__TPM4_CH2                                 0x0044 0x0248 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO13__AONMIX_TOP_PDM_BIT_STREAM_BIT3           0x0044 0x0248 0x0418 0x02 0x00
+#define IMX95_PAD_GPIO_IO13__LPSPI8_SIN                               0x0044 0x0248 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO13__LPUART8_RX                               0x0044 0x0248 0x0000 0x05 0x00
+#define IMX95_PAD_GPIO_IO13__LPI2C8_SCL                               0x0044 0x0248 0x0528 0x16 0x01
+#define IMX95_PAD_GPIO_IO13__FLEXIO1_FLEXIO_BIT13                     0x0044 0x0248 0x049C 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO14__GPIO2_IO_BIT14                           0x0048 0x024C 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO14__LPUART3_TX                               0x0048 0x024C 0x055C 0x01 0x01
+#define IMX95_PAD_GPIO_IO14__LPSPI8_SOUT                              0x0048 0x024C 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO14__LPUART8_CTS_B                            0x0048 0x024C 0x0000 0x05 0x00
+#define IMX95_PAD_GPIO_IO14__LPUART4_TX                               0x0048 0x024C 0x0568 0x06 0x01
+#define IMX95_PAD_GPIO_IO14__FLEXIO1_FLEXIO_BIT14                     0x0048 0x024C 0x04A0 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO15__GPIO2_IO_BIT15                           0x004C 0x0250 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO15__LPUART3_RX                               0x004C 0x0250 0x0558 0x01 0x01
+#define IMX95_PAD_GPIO_IO15__LPSPI8_SCK                               0x004C 0x0250 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO15__LPUART8_RTS_B                            0x004C 0x0250 0x0000 0x05 0x00
+#define IMX95_PAD_GPIO_IO15__LPUART4_RX                               0x004C 0x0250 0x0564 0x06 0x01
+#define IMX95_PAD_GPIO_IO15__FLEXIO1_FLEXIO_BIT15                     0x004C 0x0250 0x04A4 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO16__GPIO2_IO_BIT16                           0x0050 0x0254 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO16__SAI3_TX_BCLK                             0x0050 0x0254 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO16__AONMIX_TOP_PDM_BIT_STREAM_BIT2           0x0050 0x0254 0x0414 0x02 0x01
+#define IMX95_PAD_GPIO_IO16__LPUART3_CTS_B                            0x0050 0x0254 0x0554 0x04 0x01
+#define IMX95_PAD_GPIO_IO16__LPSPI4_PCS2                              0x0050 0x0254 0x0538 0x05 0x01
+#define IMX95_PAD_GPIO_IO16__LPUART4_CTS_B                            0x0050 0x0254 0x0560 0x06 0x01
+#define IMX95_PAD_GPIO_IO16__FLEXIO1_FLEXIO_BIT16                     0x0050 0x0254 0x04A8 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO17__GPIO2_IO_BIT17                           0x0054 0x0258 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO17__SAI3_MCLK                                0x0054 0x0258 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO17__LPUART3_RTS_B                            0x0054 0x0258 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO17__LPSPI4_PCS1                              0x0054 0x0258 0x0534 0x05 0x01
+#define IMX95_PAD_GPIO_IO17__LPUART4_RTS_B                            0x0054 0x0258 0x0000 0x06 0x00
+#define IMX95_PAD_GPIO_IO17__FLEXIO1_FLEXIO_BIT17                     0x0054 0x0258 0x04AC 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO18__GPIO2_IO_BIT18                           0x0058 0x025C 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO18__SAI3_RX_BCLK                             0x0058 0x025C 0x058C 0x01 0x00
+#define IMX95_PAD_GPIO_IO18__LPSPI5_PCS0                              0x0058 0x025C 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO18__LPSPI4_PCS0                              0x0058 0x025C 0x0530 0x05 0x01
+#define IMX95_PAD_GPIO_IO18__TPM5_CH2                                 0x0058 0x025C 0x0000 0x06 0x00
+#define IMX95_PAD_GPIO_IO18__FLEXIO1_FLEXIO_BIT18                     0x0058 0x025C 0x04B0 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO19__GPIO2_IO_BIT19                           0x005C 0x0260 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO19__SAI3_RX_SYNC                             0x005C 0x0260 0x0590 0x01 0x01
+#define IMX95_PAD_GPIO_IO19__AONMIX_TOP_PDM_BIT_STREAM_BIT3           0x005C 0x0260 0x0418 0x02 0x01
+#define IMX95_PAD_GPIO_IO19__FLEXIO1_FLEXIO_BIT19                     0x005C 0x0260 0x04B4 0x03 0x00
+#define IMX95_PAD_GPIO_IO19__LPSPI5_SIN                               0x005C 0x0260 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO19__LPSPI4_SIN                               0x005C 0x0260 0x0540 0x05 0x01
+#define IMX95_PAD_GPIO_IO19__TPM6_CH2                                 0x005C 0x0260 0x0000 0x06 0x00
+#define IMX95_PAD_GPIO_IO19__SAI3_TX_DATA_BIT0                        0x005C 0x0260 0x0000 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO20__GPIO2_IO_BIT20                           0x0060 0x0264 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO20__SAI3_RX_DATA_BIT0                        0x0060 0x0264 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO20__AONMIX_TOP_PDM_BIT_STREAM_BIT0           0x0060 0x0264 0x040C 0x02 0x02
+#define IMX95_PAD_GPIO_IO20__LPSPI5_SOUT                              0x0060 0x0264 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO20__LPSPI4_SOUT                              0x0060 0x0264 0x0544 0x05 0x01
+#define IMX95_PAD_GPIO_IO20__TPM3_CH1                                 0x0060 0x0264 0x0000 0x06 0x00
+#define IMX95_PAD_GPIO_IO20__FLEXIO1_FLEXIO_BIT20                     0x0060 0x0264 0x04B8 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO21__GPIO2_IO_BIT21                           0x0064 0x0268 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO21__SAI3_TX_DATA_BIT0                        0x0064 0x0268 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO21__AONMIX_TOP_PDM_CLK                       0x0064 0x0268 0x0000 0x02 0x00
+#define IMX95_PAD_GPIO_IO21__FLEXIO1_FLEXIO_BIT21                     0x0064 0x0268 0x04BC 0x03 0x00
+#define IMX95_PAD_GPIO_IO21__LPSPI5_SCK                               0x0064 0x0268 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO21__LPSPI4_SCK                               0x0064 0x0268 0x053C 0x05 0x01
+#define IMX95_PAD_GPIO_IO21__TPM4_CH1                                 0x0064 0x0268 0x0000 0x06 0x00
+#define IMX95_PAD_GPIO_IO21__SAI3_RX_BCLK                             0x0064 0x0268 0x058C 0x07 0x01
+
+#define IMX95_PAD_GPIO_IO22__GPIO2_IO_BIT22                           0x0068 0x026C 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO22__USDHC3_CLK                               0x0068 0x026C 0x05C8 0x01 0x00
+#define IMX95_PAD_GPIO_IO22__SPDIF_IN                                 0x0068 0x026C 0x0454 0x02 0x02
+#define IMX95_PAD_GPIO_IO22__CAN5_TX                                  0x0068 0x026C 0x0000 0x03 0x00
+#define IMX95_PAD_GPIO_IO22__TPM5_CH1                                 0x0068 0x026C 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO22__TPM6_EXTCLK                              0x0068 0x026C 0x0000 0x05 0x00
+#define IMX95_PAD_GPIO_IO22__LPI2C5_SDA                               0x0068 0x026C 0x0514 0x16 0x01
+#define IMX95_PAD_GPIO_IO22__FLEXIO1_FLEXIO_BIT22                     0x0068 0x026C 0x04C0 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO23__GPIO2_IO_BIT23                           0x006C 0x0270 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO23__USDHC3_CMD                               0x006C 0x0270 0x05CC 0x01 0x00
+#define IMX95_PAD_GPIO_IO23__SPDIF_OUT                                0x006C 0x0270 0x0000 0x02 0x00
+#define IMX95_PAD_GPIO_IO23__CAN5_RX                                  0x006C 0x0270 0x0450 0x03 0x00
+#define IMX95_PAD_GPIO_IO23__TPM6_CH1                                 0x006C 0x0270 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO23__LPI2C5_SCL                               0x006C 0x0270 0x0510 0x16 0x01
+#define IMX95_PAD_GPIO_IO23__FLEXIO1_FLEXIO_BIT23                     0x006C 0x0270 0x04C4 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO24__GPIO2_IO_BIT24                           0x0070 0x0274 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO24__USDHC3_DATA0                             0x0070 0x0274 0x05D0 0x01 0x00
+#define IMX95_PAD_GPIO_IO24__TPM3_CH3                                 0x0070 0x0274 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO24__JTAG_MUX_TDO                             0x0070 0x0274 0x0000 0x05 0x00
+#define IMX95_PAD_GPIO_IO24__LPSPI6_PCS1                              0x0070 0x0274 0x0000 0x06 0x00
+#define IMX95_PAD_GPIO_IO24__FLEXIO1_FLEXIO_BIT24                     0x0070 0x0274 0x04C8 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO25__GPIO2_IO_BIT25                           0x0074 0x0278 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO25__USDHC3_DATA1                             0x0074 0x0278 0x05D4 0x01 0x00
+#define IMX95_PAD_GPIO_IO25__CAN2_TX                                  0x0074 0x0278 0x0000 0x02 0x00
+#define IMX95_PAD_GPIO_IO25__TPM4_CH3                                 0x0074 0x0278 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO25__JTAG_MUX_TCK                             0x0074 0x0278 0x060C 0x05 0x01
+#define IMX95_PAD_GPIO_IO25__LPSPI7_PCS1                              0x0074 0x0278 0x0000 0x06 0x00
+#define IMX95_PAD_GPIO_IO25__FLEXIO1_FLEXIO_BIT25                     0x0074 0x0278 0x04CC 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO26__GPIO2_IO_BIT26                           0x0078 0x027C 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO26__USDHC3_DATA2                             0x0078 0x027C 0x05D8 0x01 0x00
+#define IMX95_PAD_GPIO_IO26__AONMIX_TOP_PDM_BIT_STREAM_BIT1           0x0078 0x027C 0x0410 0x02 0x02
+#define IMX95_PAD_GPIO_IO26__FLEXIO1_FLEXIO_BIT26                     0x0078 0x027C 0x0458 0x03 0x01
+#define IMX95_PAD_GPIO_IO26__TPM5_CH3                                 0x0078 0x027C 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO26__JTAG_MUX_TDI                             0x0078 0x027C 0x0610 0x05 0x01
+#define IMX95_PAD_GPIO_IO26__LPSPI8_PCS1                              0x0078 0x027C 0x0000 0x06 0x00
+#define IMX95_PAD_GPIO_IO26__SAI3_TX_SYNC                             0x0078 0x027C 0x0000 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO27__GPIO2_IO_BIT27                           0x007C 0x0280 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO27__USDHC3_DATA3                             0x007C 0x0280 0x05DC 0x01 0x00
+#define IMX95_PAD_GPIO_IO27__CAN2_RX                                  0x007C 0x0280 0x0444 0x02 0x02
+#define IMX95_PAD_GPIO_IO27__TPM6_CH3                                 0x007C 0x0280 0x0000 0x04 0x00
+#define IMX95_PAD_GPIO_IO27__JTAG_MUX_TMS                             0x007C 0x0280 0x0614 0x05 0x01
+#define IMX95_PAD_GPIO_IO27__LPSPI5_PCS1                              0x007C 0x0280 0x0000 0x06 0x00
+#define IMX95_PAD_GPIO_IO27__FLEXIO1_FLEXIO_BIT27                     0x007C 0x0280 0x045C 0x07 0x01
+
+#define IMX95_PAD_GPIO_IO28__GPIO2_IO_BIT28                           0x0080 0x0284 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO28__LPI2C3_SDA                               0x0080 0x0284 0x0504 0x11 0x01
+#define IMX95_PAD_GPIO_IO28__CAN3_TX                                  0x0080 0x0284 0x0000 0x02 0x00
+#define IMX95_PAD_GPIO_IO28__FLEXIO1_FLEXIO_BIT28                     0x0080 0x0284 0x0000 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO29__GPIO2_IO_BIT29                           0x0084 0x0288 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO29__LPI2C3_SCL                               0x0084 0x0288 0x0500 0x11 0x01
+#define IMX95_PAD_GPIO_IO29__CAN3_RX                                  0x0084 0x0288 0x0448 0x02 0x01
+#define IMX95_PAD_GPIO_IO29__FLEXIO1_FLEXIO_BIT29                     0x0084 0x0288 0x0000 0x07 0x00
+
+#define IMX95_PAD_GPIO_IO30__GPIO2_IO_BIT30                           0x0088 0x028C 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO30__LPI2C4_SDA                               0x0088 0x028C 0x050C 0x11 0x01
+#define IMX95_PAD_GPIO_IO30__CAN5_TX                                  0x0088 0x028C 0x0000 0x02 0x00
+#define IMX95_PAD_GPIO_IO30__FLEXIO1_FLEXIO_BIT30                     0x0088 0x028C 0x0460 0x07 0x01
+
+#define IMX95_PAD_GPIO_IO31__GPIO2_IO_BIT31                           0x008C 0x0290 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO31__LPI2C4_SCL                               0x008C 0x0290 0x0508 0x11 0x01
+#define IMX95_PAD_GPIO_IO31__CAN5_RX                                  0x008C 0x0290 0x0450 0x02 0x01
+#define IMX95_PAD_GPIO_IO31__FLEXIO1_FLEXIO_BIT31                     0x008C 0x0290 0x0464 0x07 0x01
+
+#define IMX95_PAD_GPIO_IO32__GPIO5_IO_BIT12                           0x0090 0x0294 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO32__HSIOMIX_TOP_PCIE1_CLKREQ_B               0x0090 0x0294 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO32__LPUART6_TX                               0x0090 0x0294 0x0580 0x02 0x00
+#define IMX95_PAD_GPIO_IO32__LPSPI4_PCS2                              0x0090 0x0294 0x0538 0x04 0x00
+
+#define IMX95_PAD_GPIO_IO33__GPIO5_IO_BIT13                           0x0094 0x0298 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO33__LPUART6_RX                               0x0094 0x0298 0x057C 0x02 0x00
+#define IMX95_PAD_GPIO_IO33__LPSPI4_PCS1                              0x0094 0x0298 0x0534 0x04 0x00
+
+#define IMX95_PAD_GPIO_IO34__GPIO5_IO_BIT14                           0x0098 0x029C 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO34__LPUART6_CTS_B                            0x0098 0x029C 0x0578 0x02 0x00
+#define IMX95_PAD_GPIO_IO34__LPSPI4_PCS0                              0x0098 0x029C 0x0530 0x04 0x00
+
+#define IMX95_PAD_GPIO_IO35__GPIO5_IO_BIT15                           0x009C 0x02A0 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO35__HSIOMIX_TOP_PCIE2_CLKREQ_B               0x009C 0x02A0 0x0000 0x01 0x00
+#define IMX95_PAD_GPIO_IO35__LPUART6_RTS_B                            0x009C 0x02A0 0x0000 0x02 0x00
+#define IMX95_PAD_GPIO_IO35__LPSPI4_SIN                               0x009C 0x02A0 0x0540 0x04 0x00
+
+#define IMX95_PAD_GPIO_IO36__LPSPI4_SOUT                              0x00A0 0x02A4 0x0544 0x04 0x00
+#define IMX95_PAD_GPIO_IO36__GPIO5_IO_BIT16                           0x00A0 0x02A4 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO36__LPUART7_TX                               0x00A0 0x02A4 0x0588 0x02 0x00
+
+#define IMX95_PAD_GPIO_IO37__GPIO5_IO_BIT17                           0x00A4 0x02A8 0x0000 0x00 0x00
+#define IMX95_PAD_GPIO_IO37__LPUART7_RX                               0x00A4 0x02A8 0x0584 0x02 0x00
+#define IMX95_PAD_GPIO_IO37__LPSPI4_SCK                               0x00A4 0x02A8 0x053C 0x04 0x00
+
+#define IMX95_PAD_CCM_CLKO1__CCMSRCGPCMIX_TOP_CLKO_1                  0x00A8 0x02AC 0x0000 0x00 0x00
+#define IMX95_PAD_CCM_CLKO1__NETCMIX_TOP_NETC_TMR_1588_TRIG1          0x00A8 0x02AC 0x0434 0x01 0x00
+#define IMX95_PAD_CCM_CLKO1__FLEXIO1_FLEXIO_BIT26                     0x00A8 0x02AC 0x0458 0x04 0x00
+#define IMX95_PAD_CCM_CLKO1__GPIO3_IO_BIT26                           0x00A8 0x02AC 0x0000 0x05 0x00
+
+#define IMX95_PAD_CCM_CLKO2__GPIO3_IO_BIT27                           0x00AC 0x02B0 0x0000 0x05 0x00
+#define IMX95_PAD_CCM_CLKO2__CCMSRCGPCMIX_TOP_CLKO_2                  0x00AC 0x02B0 0x0000 0x00 0x00
+#define IMX95_PAD_CCM_CLKO2__NETCMIX_TOP_NETC_TMR_1588_PP1            0x00AC 0x02B0 0x0000 0x01 0x00
+#define IMX95_PAD_CCM_CLKO2__FLEXIO1_FLEXIO_BIT27                     0x00AC 0x02B0 0x045C 0x04 0x00
+
+#define IMX95_PAD_CCM_CLKO3__CCMSRCGPCMIX_TOP_CLKO_3                  0x00B0 0x02B4 0x0000 0x00 0x00
+#define IMX95_PAD_CCM_CLKO3__NETCMIX_TOP_NETC_TMR_1588_TRIG2          0x00B0 0x02B4 0x0438 0x01 0x00
+#define IMX95_PAD_CCM_CLKO3__CAN3_TX                                  0x00B0 0x02B4 0x0000 0x02 0x00
+#define IMX95_PAD_CCM_CLKO3__FLEXIO2_FLEXIO_BIT28                     0x00B0 0x02B4 0x0000 0x04 0x00
+#define IMX95_PAD_CCM_CLKO3__GPIO4_IO_BIT28                           0x00B0 0x02B4 0x0000 0x05 0x00
+
+#define IMX95_PAD_CCM_CLKO4__CCMSRCGPCMIX_TOP_CLKO_4                  0x00B4 0x02B8 0x0000 0x00 0x00
+#define IMX95_PAD_CCM_CLKO4__NETCMIX_TOP_NETC_TMR_1588_PP2            0x00B4 0x02B8 0x0000 0x01 0x00
+#define IMX95_PAD_CCM_CLKO4__CAN3_RX                                  0x00B4 0x02B8 0x0448 0x02 0x00
+#define IMX95_PAD_CCM_CLKO4__FLEXIO2_FLEXIO_BIT29                     0x00B4 0x02B8 0x0000 0x04 0x00
+#define IMX95_PAD_CCM_CLKO4__GPIO4_IO_BIT29                           0x00B4 0x02B8 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET1_MDC__NETCMIX_TOP_NETC_MDC                     0x00B8 0x02BC 0x0424 0x00 0x00
+#define IMX95_PAD_ENET1_MDC__LPUART3_DCD_B                            0x00B8 0x02BC 0x0000 0x01 0x00
+#define IMX95_PAD_ENET1_MDC__I3C2_SCL                                 0x00B8 0x02BC 0x04F8 0x02 0x00
+#define IMX95_PAD_ENET1_MDC__HSIOMIX_TOP_USB1_OTG_ID                  0x00B8 0x02BC 0x0000 0x03 0x00
+#define IMX95_PAD_ENET1_MDC__FLEXIO2_FLEXIO_BIT0                      0x00B8 0x02BC 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_MDC__GPIO4_IO_BIT0                            0x00B8 0x02BC 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET1_MDIO__NETCMIX_TOP_NETC_MDIO                   0x00BC 0x02C0 0x0428 0x00 0x00
+#define IMX95_PAD_ENET1_MDIO__LPUART3_RIN_B                           0x00BC 0x02C0 0x0000 0x01 0x00
+#define IMX95_PAD_ENET1_MDIO__I3C2_SDA                                0x00BC 0x02C0 0x04FC 0x02 0x00
+#define IMX95_PAD_ENET1_MDIO__HSIOMIX_TOP_USB1_OTG_PWR                0x00BC 0x02C0 0x0000 0x03 0x00
+#define IMX95_PAD_ENET1_MDIO__FLEXIO2_FLEXIO_BIT1                     0x00BC 0x02C0 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_MDIO__GPIO4_IO_BIT1                           0x00BC 0x02C0 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET1_TD3__NETCMIX_TOP_ETH0_RGMII_TD3               0x00C0 0x02C4 0x0000 0x00 0x00
+#define IMX95_PAD_ENET1_TD3__CAN2_TX                                  0x00C0 0x02C4 0x0000 0x02 0x00
+#define IMX95_PAD_ENET1_TD3__HSIOMIX_TOP_USB2_OTG_ID                  0x00C0 0x02C4 0x0000 0x03 0x00
+#define IMX95_PAD_ENET1_TD3__FLEXIO2_FLEXIO_BIT2                      0x00C0 0x02C4 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_TD3__GPIO4_IO_BIT2                            0x00C0 0x02C4 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET1_TD2__NETCMIX_TOP_ETH0_RGMII_TD2               0x00C4 0x02C8 0x0000 0x00 0x00
+#define IMX95_PAD_ENET1_TD2__NETCMIX_TOP_ETH0_RMII_REF50_CLK          0x00C4 0x02C8 0x0000 0x01 0x00
+#define IMX95_PAD_ENET1_TD2__CAN2_RX                                  0x00C4 0x02C8 0x0444 0x02 0x01
+#define IMX95_PAD_ENET1_TD2__HSIOMIX_TOP_USB2_OTG_OC                  0x00C4 0x02C8 0x0000 0x03 0x00
+#define IMX95_PAD_ENET1_TD2__FLEXIO2_FLEXIO_BIT3                      0x00C4 0x02C8 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_TD2__GPIO4_IO_BIT3                            0x00C4 0x02C8 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET1_TD1__NETCMIX_TOP_ETH0_RGMII_TD1               0x00C8 0x02CC 0x0000 0x00 0x00
+#define IMX95_PAD_ENET1_TD1__LPUART3_RTS_B                            0x00C8 0x02CC 0x0000 0x01 0x00
+#define IMX95_PAD_ENET1_TD1__I3C2_PUR                                 0x00C8 0x02CC 0x0000 0x02 0x00
+#define IMX95_PAD_ENET1_TD1__HSIOMIX_TOP_USB1_OTG_OC                  0x00C8 0x02CC 0x0000 0x03 0x00
+#define IMX95_PAD_ENET1_TD1__FLEXIO2_FLEXIO_BIT4                      0x00C8 0x02CC 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_TD1__GPIO4_IO_BIT4                            0x00C8 0x02CC 0x0000 0x05 0x00
+#define IMX95_PAD_ENET1_TD1__I3C2_PUR_B                               0x00C8 0x02CC 0x0000 0x06 0x00
+#define IMX95_PAD_ENET1_TD1__NETCMIX_TOP_ETH0_RMII_TXD1               0x00C8 0x02CC 0x0000 0x07 0x00
+
+#define IMX95_PAD_ENET1_TD0__NETCMIX_TOP_ETH0_RGMII_TD0               0x00CC 0x02D0 0x0000 0x00 0x00
+#define IMX95_PAD_ENET1_TD0__LPUART3_TX                               0x00CC 0x02D0 0x055C 0x01 0x00
+#define IMX95_PAD_ENET1_TD0__NETCMIX_TOP_ETH0_RMII_TXD0               0x00CC 0x02D0 0x0000 0x02 0x00
+#define IMX95_PAD_ENET1_TD0__FLEXIO2_FLEXIO_BIT5                      0x00CC 0x02D0 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_TD0__GPIO4_IO_BIT5                            0x00CC 0x02D0 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET1_TX_CTL__NETCMIX_TOP_ETH0_RGMII_TX_CTL         0x00D0 0x02D4 0x0000 0x00 0x00
+#define IMX95_PAD_ENET1_TX_CTL__LPUART3_DTR_B                         0x00D0 0x02D4 0x0000 0x01 0x00
+#define IMX95_PAD_ENET1_TX_CTL__NETCMIX_TOP_ETH0_RMII_TX_EN           0x00D0 0x02D4 0x0000 0x02 0x00
+#define IMX95_PAD_ENET1_TX_CTL__FLEXIO2_FLEXIO_BIT6                   0x00D0 0x02D4 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_TX_CTL__GPIO4_IO_BIT6                         0x00D0 0x02D4 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET1_TXC__NETCMIX_TOP_ETH0_RGMII_TX_CLK            0x00D4 0x02D8 0x0000 0x00 0x00
+#define IMX95_PAD_ENET1_TXC__CCMSRCGPCMIX_TOP_ENET_CLK_ROOT           0x00D4 0x02D8 0x0000 0x01 0x00
+#define IMX95_PAD_ENET1_TXC__FLEXIO2_FLEXIO_BIT7                      0x00D4 0x02D8 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_TXC__GPIO4_IO_BIT7                            0x00D4 0x02D8 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET1_RX_CTL__NETCMIX_TOP_ETH0_RGMII_RX_CTL         0x00D8 0x02DC 0x0000 0x00 0x00
+#define IMX95_PAD_ENET1_RX_CTL__LPUART3_DSR_B                         0x00D8 0x02DC 0x0000 0x01 0x00
+#define IMX95_PAD_ENET1_RX_CTL__NETCMIX_TOP_ETH0_RMII_CRS_DV          0x00D8 0x02DC 0x0000 0x02 0x00
+#define IMX95_PAD_ENET1_RX_CTL__HSIOMIX_TOP_USB2_OTG_PWR              0x00D8 0x02DC 0x0000 0x03 0x00
+#define IMX95_PAD_ENET1_RX_CTL__FLEXIO2_FLEXIO_BIT8                   0x00D8 0x02DC 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_RX_CTL__GPIO4_IO_BIT8                         0x00D8 0x02DC 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET1_RXC__NETCMIX_TOP_ETH0_RGMII_RX_CLK            0x00DC 0x02E0 0x0000 0x00 0x00
+#define IMX95_PAD_ENET1_RXC__NETCMIX_TOP_ETH0_RMII_RX_ER              0x00DC 0x02E0 0x042C 0x01 0x00
+#define IMX95_PAD_ENET1_RXC__FLEXIO2_FLEXIO_BIT9                      0x00DC 0x02E0 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_RXC__GPIO4_IO_BIT9                            0x00DC 0x02E0 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET1_RD0__NETCMIX_TOP_ETH0_RGMII_RD0               0x00E0 0x02E4 0x0000 0x00 0x00
+#define IMX95_PAD_ENET1_RD0__LPUART3_RX                               0x00E0 0x02E4 0x0558 0x01 0x00
+#define IMX95_PAD_ENET1_RD0__NETCMIX_TOP_ETH0_RMII_RXD0               0x00E0 0x02E4 0x0000 0x02 0x00
+#define IMX95_PAD_ENET1_RD0__FLEXIO2_FLEXIO_BIT10                     0x00E0 0x02E4 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_RD0__GPIO4_IO_BIT10                           0x00E0 0x02E4 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET1_RD1__NETCMIX_TOP_ETH0_RGMII_RD1               0x00E4 0x02E8 0x0000 0x00 0x00
+#define IMX95_PAD_ENET1_RD1__LPUART3_CTS_B                            0x00E4 0x02E8 0x0554 0x01 0x00
+#define IMX95_PAD_ENET1_RD1__NETCMIX_TOP_ETH0_RMII_RXD1               0x00E4 0x02E8 0x0000 0x02 0x00
+#define IMX95_PAD_ENET1_RD1__LPTMR2_ALT1                              0x00E4 0x02E8 0x0548 0x03 0x00
+#define IMX95_PAD_ENET1_RD1__FLEXIO2_FLEXIO_BIT11                     0x00E4 0x02E8 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_RD1__GPIO4_IO_BIT11                           0x00E4 0x02E8 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET1_RD2__NETCMIX_TOP_ETH0_RGMII_RD2               0x00E8 0x02EC 0x0000 0x00 0x00
+#define IMX95_PAD_ENET1_RD2__NETCMIX_TOP_ETH0_RMII_RX_ER              0x00E8 0x02EC 0x042C 0x02 0x01
+#define IMX95_PAD_ENET1_RD2__LPTMR2_ALT2                              0x00E8 0x02EC 0x054C 0x03 0x00
+#define IMX95_PAD_ENET1_RD2__FLEXIO2_FLEXIO_BIT12                     0x00E8 0x02EC 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_RD2__GPIO4_IO_BIT12                           0x00E8 0x02EC 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET1_RD3__NETCMIX_TOP_ETH0_RGMII_RD3               0x00EC 0x02F0 0x0000 0x00 0x00
+#define IMX95_PAD_ENET1_RD3__LPTMR2_ALT3                              0x00EC 0x02F0 0x0550 0x03 0x00
+#define IMX95_PAD_ENET1_RD3__FLEXIO2_FLEXIO_BIT13                     0x00EC 0x02F0 0x0000 0x04 0x00
+#define IMX95_PAD_ENET1_RD3__GPIO4_IO_BIT13                           0x00EC 0x02F0 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET2_MDC__NETCMIX_TOP_NETC_MDC                     0x00F0 0x02F4 0x0424 0x00 0x01
+#define IMX95_PAD_ENET2_MDC__LPUART4_DCD_B                            0x00F0 0x02F4 0x0000 0x01 0x00
+#define IMX95_PAD_ENET2_MDC__NETCMIX_TOP_SAI2_RX_SYNC                 0x00F0 0x02F4 0x0000 0x02 0x00
+#define IMX95_PAD_ENET2_MDC__FLEXIO2_FLEXIO_BIT14                     0x00F0 0x02F4 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_MDC__GPIO4_IO_BIT14                           0x00F0 0x02F4 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET2_MDIO__NETCMIX_TOP_NETC_MDIO                   0x00F4 0x02F8 0x0428 0x00 0x01
+#define IMX95_PAD_ENET2_MDIO__LPUART4_RIN_B                           0x00F4 0x02F8 0x0000 0x01 0x00
+#define IMX95_PAD_ENET2_MDIO__NETCMIX_TOP_SAI2_RX_BCLK                0x00F4 0x02F8 0x0000 0x02 0x00
+#define IMX95_PAD_ENET2_MDIO__FLEXIO2_FLEXIO_BIT15                    0x00F4 0x02F8 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_MDIO__GPIO4_IO_BIT15                          0x00F4 0x02F8 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET2_TD3__NETCMIX_TOP_SAI2_RX_DATA_BIT0            0x00F8 0x02FC 0x0000 0x02 0x00
+#define IMX95_PAD_ENET2_TD3__FLEXIO2_FLEXIO_BIT16                     0x00F8 0x02FC 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_TD3__GPIO4_IO_BIT16                           0x00F8 0x02FC 0x0000 0x05 0x00
+#define IMX95_PAD_ENET2_TD3__NETCMIX_TOP_ETH1_RGMII_TD3               0x00F8 0x02FC 0x0000 0x00 0x00
+
+#define IMX95_PAD_ENET2_TD2__NETCMIX_TOP_ETH1_RGMII_TD2               0x00FC 0x0300 0x0000 0x00 0x00
+#define IMX95_PAD_ENET2_TD2__NETCMIX_TOP_ETH1_RMII_REF50_CLK          0x00FC 0x0300 0x0000 0x01 0x00
+#define IMX95_PAD_ENET2_TD2__NETCMIX_TOP_SAI2_RX_DATA_BIT1            0x00FC 0x0300 0x0000 0x02 0x00
+#define IMX95_PAD_ENET2_TD2__SAI4_TX_SYNC                             0x00FC 0x0300 0x05A4 0x03 0x00
+#define IMX95_PAD_ENET2_TD2__FLEXIO2_FLEXIO_BIT17                     0x00FC 0x0300 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_TD2__GPIO4_IO_BIT17                           0x00FC 0x0300 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET2_TD1__NETCMIX_TOP_ETH1_RGMII_TD1               0x0100 0x0304 0x0000 0x00 0x00
+#define IMX95_PAD_ENET2_TD1__LPUART4_RTS_B                            0x0100 0x0304 0x0000 0x01 0x00
+#define IMX95_PAD_ENET2_TD1__NETCMIX_TOP_SAI2_RX_DATA_BIT2            0x0100 0x0304 0x0000 0x02 0x00
+#define IMX95_PAD_ENET2_TD1__SAI4_TX_BCLK                             0x0100 0x0304 0x05A0 0x03 0x00
+#define IMX95_PAD_ENET2_TD1__FLEXIO2_FLEXIO_BIT18                     0x0100 0x0304 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_TD1__GPIO4_IO_BIT18                           0x0100 0x0304 0x0000 0x05 0x00
+#define IMX95_PAD_ENET2_TD1__NETCMIX_TOP_ETH1_RMII_TXD1               0x0100 0x0304 0x0000 0x06 0x00
+
+#define IMX95_PAD_ENET2_TD0__NETCMIX_TOP_ETH1_RGMII_TD0               0x0104 0x0308 0x0000 0x00 0x00
+#define IMX95_PAD_ENET2_TD0__LPUART4_TX                               0x0104 0x0308 0x0568 0x01 0x00
+#define IMX95_PAD_ENET2_TD0__NETCMIX_TOP_SAI2_RX_DATA_BIT3            0x0104 0x0308 0x0000 0x02 0x00
+#define IMX95_PAD_ENET2_TD0__SAI4_TX_DATA_BIT0                        0x0104 0x0308 0x0000 0x03 0x00
+#define IMX95_PAD_ENET2_TD0__FLEXIO2_FLEXIO_BIT19                     0x0104 0x0308 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_TD0__GPIO4_IO_BIT19                           0x0104 0x0308 0x0000 0x05 0x00
+#define IMX95_PAD_ENET2_TD0__NETCMIX_TOP_ETH1_RMII_TXD0               0x0104 0x0308 0x0000 0x06 0x00
+
+#define IMX95_PAD_ENET2_TX_CTL__NETCMIX_TOP_ETH1_RGMII_TX_CTL         0x0108 0x030C 0x0000 0x00 0x00
+#define IMX95_PAD_ENET2_TX_CTL__LPUART4_DTR_B                         0x0108 0x030C 0x0000 0x01 0x00
+#define IMX95_PAD_ENET2_TX_CTL__NETCMIX_TOP_SAI2_TX_SYNC              0x0108 0x030C 0x0000 0x02 0x00
+#define IMX95_PAD_ENET2_TX_CTL__NETCMIX_TOP_ETH1_RMII_TX_EN           0x0108 0x030C 0x0000 0x03 0x00
+#define IMX95_PAD_ENET2_TX_CTL__FLEXIO2_FLEXIO_BIT20                  0x0108 0x030C 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_TX_CTL__GPIO4_IO_BIT20                        0x0108 0x030C 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET2_TXC__NETCMIX_TOP_ETH1_RGMII_TX_CLK            0x010C 0x0310 0x0000 0x00 0x00
+#define IMX95_PAD_ENET2_TXC__CCMSRCGPCMIX_TOP_ENET_CLK_ROOT           0x010C 0x0310 0x0000 0x01 0x00
+#define IMX95_PAD_ENET2_TXC__NETCMIX_TOP_SAI2_TX_BCLK                 0x010C 0x0310 0x0000 0x02 0x00
+#define IMX95_PAD_ENET2_TXC__FLEXIO2_FLEXIO_BIT21                     0x010C 0x0310 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_TXC__GPIO4_IO_BIT21                           0x010C 0x0310 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET2_RX_CTL__NETCMIX_TOP_ETH1_RGMII_RX_CTL         0x0110 0x0314 0x0000 0x00 0x00
+#define IMX95_PAD_ENET2_RX_CTL__LPUART4_DSR_B                         0x0110 0x0314 0x0000 0x01 0x00
+#define IMX95_PAD_ENET2_RX_CTL__NETCMIX_TOP_SAI2_TX_DATA_BIT0         0x0110 0x0314 0x0000 0x02 0x00
+#define IMX95_PAD_ENET2_RX_CTL__FLEXIO2_FLEXIO_BIT22                  0x0110 0x0314 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_RX_CTL__GPIO4_IO_BIT22                        0x0110 0x0314 0x0000 0x05 0x00
+#define IMX95_PAD_ENET2_RX_CTL__NETCMIX_TOP_ETH1_RMII_CRS_DV          0x0110 0x0314 0x0000 0x06 0x00
+
+#define IMX95_PAD_ENET2_RXC__NETCMIX_TOP_ETH1_RGMII_RX_CLK            0x0114 0x0318 0x0000 0x00 0x00
+#define IMX95_PAD_ENET2_RXC__NETCMIX_TOP_ETH1_RMII_RX_ER              0x0114 0x0318 0x0430 0x01 0x00
+#define IMX95_PAD_ENET2_RXC__NETCMIX_TOP_SAI2_TX_DATA_BIT1            0x0114 0x0318 0x0000 0x02 0x00
+#define IMX95_PAD_ENET2_RXC__SAI4_RX_SYNC                             0x0114 0x0318 0x059C 0x03 0x00
+#define IMX95_PAD_ENET2_RXC__FLEXIO2_FLEXIO_BIT23                     0x0114 0x0318 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_RXC__GPIO4_IO_BIT23                           0x0114 0x0318 0x0000 0x05 0x00
+
+#define IMX95_PAD_ENET2_RD0__NETCMIX_TOP_ETH1_RGMII_RD0               0x0118 0x031C 0x0000 0x00 0x00
+#define IMX95_PAD_ENET2_RD0__LPUART4_RX                               0x0118 0x031C 0x0564 0x01 0x00
+#define IMX95_PAD_ENET2_RD0__NETCMIX_TOP_SAI2_TX_DATA_BIT2            0x0118 0x031C 0x0000 0x02 0x00
+#define IMX95_PAD_ENET2_RD0__SAI4_RX_BCLK                             0x0118 0x031C 0x0594 0x03 0x00
+#define IMX95_PAD_ENET2_RD0__FLEXIO2_FLEXIO_BIT24                     0x0118 0x031C 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_RD0__GPIO4_IO_BIT24                           0x0118 0x031C 0x0000 0x05 0x00
+#define IMX95_PAD_ENET2_RD0__NETCMIX_TOP_ETH1_RMII_RXD0               0x0118 0x031C 0x0000 0x06 0x00
+
+#define IMX95_PAD_ENET2_RD1__NETCMIX_TOP_ETH1_RGMII_RD1               0x011C 0x0320 0x0000 0x00 0x00
+#define IMX95_PAD_ENET2_RD1__SPDIF_IN                                 0x011C 0x0320 0x0454 0x01 0x00
+#define IMX95_PAD_ENET2_RD1__NETCMIX_TOP_SAI2_TX_DATA_BIT3            0x011C 0x0320 0x0000 0x02 0x00
+#define IMX95_PAD_ENET2_RD1__SAI4_RX_DATA_BIT0                        0x011C 0x0320 0x0598 0x03 0x00
+#define IMX95_PAD_ENET2_RD1__FLEXIO2_FLEXIO_BIT25                     0x011C 0x0320 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_RD1__GPIO4_IO_BIT25                           0x011C 0x0320 0x0000 0x05 0x00
+#define IMX95_PAD_ENET2_RD1__NETCMIX_TOP_ETH1_RMII_RXD1               0x011C 0x0320 0x0000 0x06 0x00
+
+#define IMX95_PAD_ENET2_RD2__NETCMIX_TOP_ETH1_RGMII_RD2               0x0120 0x0324 0x0000 0x00 0x00
+#define IMX95_PAD_ENET2_RD2__LPUART4_CTS_B                            0x0120 0x0324 0x0560 0x01 0x00
+#define IMX95_PAD_ENET2_RD2__NETCMIX_TOP_SAI2_MCLK                    0x0120 0x0324 0x0000 0x02 0x00
+#define IMX95_PAD_ENET2_RD2__NETCMIX_TOP_MQS2_RIGHT                   0x0120 0x0324 0x0000 0x03 0x00
+#define IMX95_PAD_ENET2_RD2__FLEXIO2_FLEXIO_BIT26                     0x0120 0x0324 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_RD2__GPIO4_IO_BIT26                           0x0120 0x0324 0x0000 0x05 0x00
+#define IMX95_PAD_ENET2_RD2__NETCMIX_TOP_ETH1_RMII_RX_ER              0x0120 0x0324 0x0430 0x06 0x01
+
+#define IMX95_PAD_ENET2_RD3__NETCMIX_TOP_ETH1_RGMII_RD3               0x0124 0x0328 0x0000 0x00 0x00
+#define IMX95_PAD_ENET2_RD3__SPDIF_OUT                                0x0124 0x0328 0x0000 0x01 0x00
+#define IMX95_PAD_ENET2_RD3__SPDIF_IN                                 0x0124 0x0328 0x0454 0x02 0x01
+#define IMX95_PAD_ENET2_RD3__NETCMIX_TOP_MQS2_LEFT                    0x0124 0x0328 0x0000 0x03 0x00
+#define IMX95_PAD_ENET2_RD3__FLEXIO2_FLEXIO_BIT27                     0x0124 0x0328 0x0000 0x04 0x00
+#define IMX95_PAD_ENET2_RD3__GPIO4_IO_BIT27                           0x0124 0x0328 0x0000 0x05 0x00
+
+#define IMX95_PAD_SD1_CLK__FLEXIO1_FLEXIO_BIT8                        0x0128 0x032C 0x0488 0x04 0x01
+#define IMX95_PAD_SD1_CLK__GPIO3_IO_BIT8                              0x0128 0x032C 0x0000 0x05 0x00
+#define IMX95_PAD_SD1_CLK__USDHC1_CLK                                 0x0128 0x032C 0x0000 0x00 0x00
+
+#define IMX95_PAD_SD1_CMD__USDHC1_CMD                                 0x012C 0x0330 0x0000 0x00 0x00
+#define IMX95_PAD_SD1_CMD__FLEXIO1_FLEXIO_BIT9                        0x012C 0x0330 0x048C 0x04 0x01
+#define IMX95_PAD_SD1_CMD__GPIO3_IO_BIT9                              0x012C 0x0330 0x0000 0x05 0x00
+
+#define IMX95_PAD_SD1_DATA0__USDHC1_DATA0                             0x0130 0x0334 0x0000 0x00 0x00
+#define IMX95_PAD_SD1_DATA0__FLEXIO1_FLEXIO_BIT10                     0x0130 0x0334 0x0490 0x04 0x01
+#define IMX95_PAD_SD1_DATA0__GPIO3_IO_BIT10                           0x0130 0x0334 0x0000 0x05 0x00
+
+#define IMX95_PAD_SD1_DATA1__USDHC1_DATA1                             0x0134 0x0338 0x0000 0x00 0x00
+#define IMX95_PAD_SD1_DATA1__FLEXIO1_FLEXIO_BIT11                     0x0134 0x0338 0x0494 0x04 0x01
+#define IMX95_PAD_SD1_DATA1__GPIO3_IO_BIT11                           0x0134 0x0338 0x0000 0x05 0x00
+
+#define IMX95_PAD_SD1_DATA2__USDHC1_DATA2                             0x0138 0x033C 0x0000 0x00 0x00
+#define IMX95_PAD_SD1_DATA2__FLEXIO1_FLEXIO_BIT12                     0x0138 0x033C 0x0498 0x04 0x01
+#define IMX95_PAD_SD1_DATA2__GPIO3_IO_BIT12                           0x0138 0x033C 0x0000 0x05 0x00
+#define IMX95_PAD_SD1_DATA2__CCMSRCGPCMIX_TOP_PMIC_READY              0x0138 0x033C 0x0000 0x06 0x00
+
+#define IMX95_PAD_SD1_DATA3__USDHC1_DATA3                             0x013C 0x0340 0x0000 0x00 0x00
+#define IMX95_PAD_SD1_DATA3__FLEXSPI1_A_SS1_B                         0x013C 0x0340 0x0000 0x01 0x00
+#define IMX95_PAD_SD1_DATA3__FLEXIO1_FLEXIO_BIT13                     0x013C 0x0340 0x049C 0x04 0x01
+#define IMX95_PAD_SD1_DATA3__GPIO3_IO_BIT13                           0x013C 0x0340 0x0000 0x05 0x00
+
+#define IMX95_PAD_SD1_DATA4__USDHC1_DATA4                             0x0140 0x0344 0x0000 0x00 0x00
+#define IMX95_PAD_SD1_DATA4__FLEXSPI1_A_DATA_BIT4                     0x0140 0x0344 0x04E4 0x01 0x00
+#define IMX95_PAD_SD1_DATA4__FLEXIO1_FLEXIO_BIT14                     0x0140 0x0344 0x04A0 0x04 0x01
+#define IMX95_PAD_SD1_DATA4__GPIO3_IO_BIT14                           0x0140 0x0344 0x0000 0x05 0x00
+#define IMX95_PAD_SD1_DATA4__XSPI_DATA_BIT4                           0x0140 0x0344 0x05FC 0x06 0x00
+
+#define IMX95_PAD_SD1_DATA5__USDHC1_DATA5                             0x0144 0x0348 0x0000 0x00 0x00
+#define IMX95_PAD_SD1_DATA5__FLEXSPI1_A_DATA_BIT5                     0x0144 0x0348 0x04E8 0x01 0x00
+#define IMX95_PAD_SD1_DATA5__USDHC1_RESET_B                           0x0144 0x0348 0x0000 0x02 0x00
+#define IMX95_PAD_SD1_DATA5__FLEXIO1_FLEXIO_BIT15                     0x0144 0x0348 0x04A4 0x04 0x01
+#define IMX95_PAD_SD1_DATA5__GPIO3_IO_BIT15                           0x0144 0x0348 0x0000 0x05 0x00
+#define IMX95_PAD_SD1_DATA5__XSPI_DATA_BIT5                           0x0144 0x0348 0x0600 0x06 0x00
+
+#define IMX95_PAD_SD1_DATA6__USDHC1_DATA6                             0x0148 0x034C 0x0000 0x00 0x00
+#define IMX95_PAD_SD1_DATA6__FLEXSPI1_A_DATA_BIT6                     0x0148 0x034C 0x04EC 0x01 0x00
+#define IMX95_PAD_SD1_DATA6__USDHC1_CD_B                              0x0148 0x034C 0x0000 0x02 0x00
+#define IMX95_PAD_SD1_DATA6__FLEXIO1_FLEXIO_BIT16                     0x0148 0x034C 0x04A8 0x04 0x01
+#define IMX95_PAD_SD1_DATA6__GPIO3_IO_BIT16                           0x0148 0x034C 0x0000 0x05 0x00
+#define IMX95_PAD_SD1_DATA6__XSPI_DATA_BIT6                           0x0148 0x034C 0x0604 0x06 0x00
+
+#define IMX95_PAD_SD1_DATA7__USDHC1_DATA7                             0x014C 0x0350 0x0000 0x00 0x00
+#define IMX95_PAD_SD1_DATA7__FLEXSPI1_A_DATA_BIT7                     0x014C 0x0350 0x04F0 0x01 0x00
+#define IMX95_PAD_SD1_DATA7__USDHC1_WP                                0x014C 0x0350 0x0000 0x02 0x00
+#define IMX95_PAD_SD1_DATA7__FLEXIO1_FLEXIO_BIT17                     0x014C 0x0350 0x04AC 0x04 0x01
+#define IMX95_PAD_SD1_DATA7__GPIO3_IO_BIT17                           0x014C 0x0350 0x0000 0x05 0x00
+#define IMX95_PAD_SD1_DATA7__XSPI_DATA_BIT7                           0x014C 0x0350 0x0608 0x06 0x00
+
+#define IMX95_PAD_SD1_STROBE__USDHC1_STROBE                           0x0150 0x0354 0x0000 0x00 0x00
+#define IMX95_PAD_SD1_STROBE__FLEXSPI1_A_DQS                          0x0150 0x0354 0x04D0 0x01 0x00
+#define IMX95_PAD_SD1_STROBE__FLEXIO1_FLEXIO_BIT18                    0x0150 0x0354 0x04B0 0x04 0x01
+#define IMX95_PAD_SD1_STROBE__GPIO3_IO_BIT18                          0x0150 0x0354 0x0000 0x05 0x00
+#define IMX95_PAD_SD1_STROBE__XSPI_DQS                                0x0150 0x0354 0x05E4 0x06 0x00
+
+#define IMX95_PAD_SD2_VSELECT__USDHC2_VSELECT                         0x0154 0x0358 0x0000 0x00 0x00
+#define IMX95_PAD_SD2_VSELECT__USDHC2_WP                              0x0154 0x0358 0x0000 0x01 0x00
+#define IMX95_PAD_SD2_VSELECT__LPTMR2_ALT3                            0x0154 0x0358 0x0550 0x02 0x01
+#define IMX95_PAD_SD2_VSELECT__FLEXIO1_FLEXIO_BIT19                   0x0154 0x0358 0x04B4 0x04 0x01
+#define IMX95_PAD_SD2_VSELECT__GPIO3_IO_BIT19                         0x0154 0x0358 0x0000 0x05 0x00
+#define IMX95_PAD_SD2_VSELECT__CCMSRCGPCMIX_TOP_EXT_CLK1              0x0154 0x0358 0x0420 0x06 0x01
+
+#define IMX95_PAD_SD3_CLK__USDHC3_CLK                                 0x0158 0x035C 0x05C8 0x00 0x01
+#define IMX95_PAD_SD3_CLK__FLEXSPI1_A_SCLK                            0x0158 0x035C 0x04F4 0x01 0x00
+#define IMX95_PAD_SD3_CLK__SAI5_TX_DATA_BIT1                          0x0158 0x035C 0x0000 0x02 0x00
+#define IMX95_PAD_SD3_CLK__SAI5_RX_DATA_BIT0                          0x0158 0x035C 0x05AC 0x03 0x00
+#define IMX95_PAD_SD3_CLK__FLEXIO1_FLEXIO_BIT20                       0x0158 0x035C 0x04B8 0x04 0x01
+#define IMX95_PAD_SD3_CLK__GPIO3_IO_BIT20                             0x0158 0x035C 0x0000 0x05 0x00
+#define IMX95_PAD_SD3_CLK__XSPI_CLK                                   0x0158 0x035C 0x05E8 0x06 0x00
+
+#define IMX95_PAD_SD3_CMD__USDHC3_CMD                                 0x015C 0x0360 0x05CC 0x00 0x01
+#define IMX95_PAD_SD3_CMD__FLEXSPI1_A_SS0_B                           0x015C 0x0360 0x0000 0x01 0x00
+#define IMX95_PAD_SD3_CMD__SAI5_TX_DATA_BIT2                          0x015C 0x0360 0x0000 0x02 0x00
+#define IMX95_PAD_SD3_CMD__SAI5_RX_SYNC                               0x015C 0x0360 0x05BC 0x03 0x00
+#define IMX95_PAD_SD3_CMD__FLEXIO1_FLEXIO_BIT21                       0x015C 0x0360 0x04BC 0x04 0x01
+#define IMX95_PAD_SD3_CMD__GPIO3_IO_BIT21                             0x015C 0x0360 0x0000 0x05 0x00
+#define IMX95_PAD_SD3_CMD__XSPI_CS                                    0x015C 0x0360 0x05E0 0x06 0x00
+
+#define IMX95_PAD_SD3_DATA0__USDHC3_DATA0                             0x0160 0x0364 0x05D0 0x00 0x01
+#define IMX95_PAD_SD3_DATA0__FLEXSPI1_A_DATA_BIT0                     0x0160 0x0364 0x04D4 0x01 0x00
+#define IMX95_PAD_SD3_DATA0__SAI5_TX_DATA_BIT3                        0x0160 0x0364 0x0000 0x02 0x00
+#define IMX95_PAD_SD3_DATA0__SAI5_RX_BCLK                             0x0160 0x0364 0x05A8 0x03 0x00
+#define IMX95_PAD_SD3_DATA0__FLEXIO1_FLEXIO_BIT22                     0x0160 0x0364 0x04C0 0x04 0x01
+#define IMX95_PAD_SD3_DATA0__GPIO3_IO_BIT22                           0x0160 0x0364 0x0000 0x05 0x00
+#define IMX95_PAD_SD3_DATA0__XSPI_DATA_BIT0                           0x0160 0x0364 0x05EC 0x06 0x00
+
+#define IMX95_PAD_SD3_DATA1__USDHC3_DATA1                             0x0164 0x0368 0x05D4 0x00 0x01
+#define IMX95_PAD_SD3_DATA1__FLEXSPI1_A_DATA_BIT1                     0x0164 0x0368 0x04D8 0x01 0x00
+#define IMX95_PAD_SD3_DATA1__SAI5_RX_DATA_BIT1                        0x0164 0x0368 0x05B0 0x02 0x00
+#define IMX95_PAD_SD3_DATA1__SAI5_TX_DATA_BIT0                        0x0164 0x0368 0x0000 0x03 0x00
+#define IMX95_PAD_SD3_DATA1__FLEXIO1_FLEXIO_BIT23                     0x0164 0x0368 0x04C4 0x04 0x01
+#define IMX95_PAD_SD3_DATA1__GPIO3_IO_BIT23                           0x0164 0x0368 0x0000 0x05 0x00
+#define IMX95_PAD_SD3_DATA1__XSPI_DATA_BIT1                           0x0164 0x0368 0x05F0 0x06 0x00
+
+#define IMX95_PAD_SD3_DATA2__USDHC3_DATA2                             0x0168 0x036C 0x05D8 0x00 0x01
+#define IMX95_PAD_SD3_DATA2__FLEXSPI1_A_DATA_BIT2                     0x0168 0x036C 0x04DC 0x01 0x00
+#define IMX95_PAD_SD3_DATA2__SAI5_RX_DATA_BIT2                        0x0168 0x036C 0x05B4 0x02 0x00
+#define IMX95_PAD_SD3_DATA2__SAI5_TX_SYNC                             0x0168 0x036C 0x05C4 0x03 0x00
+#define IMX95_PAD_SD3_DATA2__FLEXIO1_FLEXIO_BIT24                     0x0168 0x036C 0x04C8 0x04 0x01
+#define IMX95_PAD_SD3_DATA2__GPIO3_IO_BIT24                           0x0168 0x036C 0x0000 0x05 0x00
+#define IMX95_PAD_SD3_DATA2__XSPI_DATA_BIT2                           0x0168 0x036C 0x05F4 0x06 0x00
+
+#define IMX95_PAD_SD3_DATA3__USDHC3_DATA3                             0x016C 0x0370 0x05DC 0x00 0x01
+#define IMX95_PAD_SD3_DATA3__FLEXSPI1_A_DATA_BIT3                     0x016C 0x0370 0x04E0 0x01 0x00
+#define IMX95_PAD_SD3_DATA3__SAI5_RX_DATA_BIT3                        0x016C 0x0370 0x05B8 0x02 0x00
+#define IMX95_PAD_SD3_DATA3__SAI5_TX_BCLK                             0x016C 0x0370 0x05C0 0x03 0x00
+#define IMX95_PAD_SD3_DATA3__FLEXIO1_FLEXIO_BIT25                     0x016C 0x0370 0x04CC 0x04 0x01
+#define IMX95_PAD_SD3_DATA3__GPIO3_IO_BIT25                           0x016C 0x0370 0x0000 0x05 0x00
+#define IMX95_PAD_SD3_DATA3__XSPI_DATA_BIT3                           0x016C 0x0370 0x05F8 0x06 0x00
+
+#define IMX95_PAD_XSPI1_DATA0__FLEXSPI1_A_DATA_BIT0                   0x0170 0x0374 0x04D4 0x00 0x01
+#define IMX95_PAD_XSPI1_DATA0__NETCMIX_TOP_SAI2_TX_DATA_BIT4          0x0170 0x0374 0x0000 0x01 0x00
+#define IMX95_PAD_XSPI1_DATA0__SAI4_TX_BCLK                           0x0170 0x0374 0x05A0 0x02 0x01
+#define IMX95_PAD_XSPI1_DATA0__SAI4_RX_DATA_BIT1                      0x0170 0x0374 0x0000 0x03 0x00
+#define IMX95_PAD_XSPI1_DATA0__XSPI_DATA_BIT0                         0x0170 0x0374 0x05EC 0x04 0x01
+#define IMX95_PAD_XSPI1_DATA0__GPIO5_IO_BIT0                          0x0170 0x0374 0x0000 0x05 0x00
+
+#define IMX95_PAD_XSPI1_DATA1__FLEXSPI1_A_DATA_BIT1                   0x0174 0x0378 0x04D8 0x00 0x01
+#define IMX95_PAD_XSPI1_DATA1__NETCMIX_TOP_SAI2_TX_DATA_BIT5          0x0174 0x0378 0x0000 0x01 0x00
+#define IMX95_PAD_XSPI1_DATA1__SAI4_TX_SYNC                           0x0174 0x0378 0x05A4 0x02 0x01
+#define IMX95_PAD_XSPI1_DATA1__SAI4_TX_DATA_BIT1                      0x0174 0x0378 0x0000 0x03 0x00
+#define IMX95_PAD_XSPI1_DATA1__XSPI_DATA_BIT1                         0x0174 0x0378 0x05F0 0x04 0x01
+#define IMX95_PAD_XSPI1_DATA1__GPIO5_IO_BIT1                          0x0174 0x0378 0x0000 0x05 0x00
+
+#define IMX95_PAD_XSPI1_DATA2__FLEXSPI1_A_DATA_BIT2                   0x0178 0x037C 0x04DC 0x00 0x01
+#define IMX95_PAD_XSPI1_DATA2__NETCMIX_TOP_SAI2_TX_DATA_BIT6          0x0178 0x037C 0x0000 0x01 0x00
+#define IMX95_PAD_XSPI1_DATA2__SAI4_TX_DATA_BIT0                      0x0178 0x037C 0x0000 0x02 0x00
+#define IMX95_PAD_XSPI1_DATA2__XSPI_DATA_BIT2                         0x0178 0x037C 0x05F4 0x04 0x01
+#define IMX95_PAD_XSPI1_DATA2__GPIO5_IO_BIT2                          0x0178 0x037C 0x0000 0x05 0x00
+
+#define IMX95_PAD_XSPI1_DATA3__FLEXSPI1_A_DATA_BIT3                   0x017C 0x0380 0x04E0 0x00 0x01
+#define IMX95_PAD_XSPI1_DATA3__NETCMIX_TOP_SAI2_TX_DATA_BIT7          0x017C 0x0380 0x0000 0x01 0x00
+#define IMX95_PAD_XSPI1_DATA3__SAI4_RX_DATA_BIT0                      0x017C 0x0380 0x0598 0x02 0x01
+#define IMX95_PAD_XSPI1_DATA3__XSPI_DATA_BIT3                         0x017C 0x0380 0x05F8 0x04 0x01
+#define IMX95_PAD_XSPI1_DATA3__GPIO5_IO_BIT3                          0x017C 0x0380 0x0000 0x05 0x00
+
+#define IMX95_PAD_XSPI1_DATA4__FLEXSPI1_A_DATA_BIT4                   0x0180 0x0384 0x04E4 0x00 0x01
+#define IMX95_PAD_XSPI1_DATA4__SAI5_TX_DATA_BIT0                      0x0180 0x0384 0x0000 0x01 0x00
+#define IMX95_PAD_XSPI1_DATA4__SAI5_RX_DATA_BIT1                      0x0180 0x0384 0x05B0 0x02 0x01
+#define IMX95_PAD_XSPI1_DATA4__XSPI_DATA_BIT4                         0x0180 0x0384 0x05FC 0x04 0x01
+#define IMX95_PAD_XSPI1_DATA4__GPIO5_IO_BIT4                          0x0180 0x0384 0x0000 0x05 0x00
+
+#define IMX95_PAD_XSPI1_DATA5__FLEXSPI1_A_DATA_BIT5                   0x0184 0x0388 0x04E8 0x00 0x01
+#define IMX95_PAD_XSPI1_DATA5__SAI5_TX_SYNC                           0x0184 0x0388 0x05C4 0x01 0x01
+#define IMX95_PAD_XSPI1_DATA5__SAI5_RX_DATA_BIT2                      0x0184 0x0388 0x05B4 0x02 0x01
+#define IMX95_PAD_XSPI1_DATA5__NETCMIX_TOP_SAI2_RX_DATA_BIT6          0x0184 0x0388 0x043C 0x03 0x00
+#define IMX95_PAD_XSPI1_DATA5__XSPI_DATA_BIT5                         0x0184 0x0388 0x0600 0x04 0x01
+#define IMX95_PAD_XSPI1_DATA5__GPIO5_IO_BIT5                          0x0184 0x0388 0x0000 0x05 0x00
+
+#define IMX95_PAD_XSPI1_DATA6__FLEXSPI1_A_DATA_BIT6                   0x0188 0x038C 0x04EC 0x00 0x01
+#define IMX95_PAD_XSPI1_DATA6__SAI5_TX_BCLK                           0x0188 0x038C 0x05C0 0x01 0x01
+#define IMX95_PAD_XSPI1_DATA6__SAI5_RX_DATA_BIT3                      0x0188 0x038C 0x05B8 0x02 0x01
+#define IMX95_PAD_XSPI1_DATA6__NETCMIX_TOP_SAI2_RX_DATA_BIT7          0x0188 0x038C 0x0440 0x03 0x00
+#define IMX95_PAD_XSPI1_DATA6__XSPI_DATA_BIT6                         0x0188 0x038C 0x0604 0x04 0x01
+#define IMX95_PAD_XSPI1_DATA6__GPIO5_IO_BIT6                          0x0188 0x038C 0x0000 0x05 0x00
+
+#define IMX95_PAD_XSPI1_DATA7__FLEXSPI1_A_DATA_BIT7                   0x018C 0x0390 0x04F0 0x00 0x01
+#define IMX95_PAD_XSPI1_DATA7__SAI5_RX_DATA_BIT0                      0x018C 0x0390 0x05AC 0x01 0x01
+#define IMX95_PAD_XSPI1_DATA7__SAI5_TX_DATA_BIT1                      0x018C 0x0390 0x0000 0x02 0x00
+#define IMX95_PAD_XSPI1_DATA7__XSPI_DATA_BIT7                         0x018C 0x0390 0x0608 0x04 0x01
+#define IMX95_PAD_XSPI1_DATA7__GPIO5_IO_BIT7                          0x018C 0x0390 0x0000 0x05 0x00
+
+#define IMX95_PAD_XSPI1_DQS__FLEXSPI1_A_DQS                           0x0190 0x0394 0x04D0 0x00 0x01
+#define IMX95_PAD_XSPI1_DQS__SAI5_RX_SYNC                             0x0190 0x0394 0x05BC 0x01 0x01
+#define IMX95_PAD_XSPI1_DQS__SAI5_TX_DATA_BIT2                        0x0190 0x0394 0x0000 0x02 0x00
+#define IMX95_PAD_XSPI1_DQS__NETCMIX_TOP_SAI2_RX_DATA_BIT6            0x0190 0x0394 0x043C 0x03 0x01
+#define IMX95_PAD_XSPI1_DQS__XSPI_DQS                                 0x0190 0x0394 0x05E4 0x04 0x01
+#define IMX95_PAD_XSPI1_DQS__GPIO5_IO_BIT8                            0x0190 0x0394 0x0000 0x05 0x00
+
+#define IMX95_PAD_XSPI1_SCLK__FLEXSPI1_A_SCLK                         0x0194 0x0398 0x04F4 0x00 0x01
+#define IMX95_PAD_XSPI1_SCLK__NETCMIX_TOP_SAI2_RX_DATA_BIT4           0x0194 0x0398 0x0000 0x01 0x00
+#define IMX95_PAD_XSPI1_SCLK__SAI4_RX_SYNC                            0x0194 0x0398 0x059C 0x02 0x01
+#define IMX95_PAD_XSPI1_SCLK__EARC_DC_HPD_IN                          0x0194 0x0398 0x0000 0x03 0x00
+#define IMX95_PAD_XSPI1_SCLK__XSPI_CLK                                0x0194 0x0398 0x05E8 0x04 0x01
+#define IMX95_PAD_XSPI1_SCLK__GPIO5_IO_BIT9                           0x0194 0x0398 0x0000 0x05 0x00
+
+#define IMX95_PAD_XSPI1_SS0_B__FLEXSPI1_A_SS0_B                       0x0198 0x039C 0x0000 0x00 0x00
+#define IMX95_PAD_XSPI1_SS0_B__NETCMIX_TOP_SAI2_RX_DATA_BIT5          0x0198 0x039C 0x0000 0x01 0x00
+#define IMX95_PAD_XSPI1_SS0_B__SAI4_RX_BCLK                           0x0198 0x039C 0x0594 0x02 0x01
+#define IMX95_PAD_XSPI1_SS0_B__EARC_CEC_OUT                           0x0198 0x039C 0x0000 0x03 0x00
+#define IMX95_PAD_XSPI1_SS0_B__XSPI_CS                                0x0198 0x039C 0x05E0 0x04 0x01
+#define IMX95_PAD_XSPI1_SS0_B__GPIO5_IO_BIT10                         0x0198 0x039C 0x0000 0x05 0x00
+
+#define IMX95_PAD_XSPI1_SS1_B__FLEXSPI1_A_SS1_B                       0x019C 0x03A0 0x0000 0x00 0x00
+#define IMX95_PAD_XSPI1_SS1_B__SAI5_RX_BCLK                           0x019C 0x03A0 0x05A8 0x01 0x01
+#define IMX95_PAD_XSPI1_SS1_B__SAI5_TX_DATA_BIT3                      0x019C 0x03A0 0x0000 0x02 0x00
+#define IMX95_PAD_XSPI1_SS1_B__NETCMIX_TOP_SAI2_RX_DATA_BIT7          0x019C 0x03A0 0x0440 0x03 0x01
+#define IMX95_PAD_XSPI1_SS1_B__GPIO5_IO_BIT11                         0x019C 0x03A0 0x0000 0x05 0x00
+
+#define IMX95_PAD_SD2_CD_B__USDHC2_CD_B                               0x01A0 0x03A4 0x0000 0x00 0x00
+#define IMX95_PAD_SD2_CD_B__NETCMIX_TOP_NETC_TMR_1588_TRIG1           0x01A0 0x03A4 0x0434 0x01 0x01
+#define IMX95_PAD_SD2_CD_B__I3C2_SCL                                  0x01A0 0x03A4 0x04F8 0x02 0x01
+#define IMX95_PAD_SD2_CD_B__FLEXIO1_FLEXIO_BIT0                       0x01A0 0x03A4 0x0468 0x04 0x01
+#define IMX95_PAD_SD2_CD_B__GPIO3_IO_BIT0                             0x01A0 0x03A4 0x0000 0x05 0x00
+
+#define IMX95_PAD_SD2_CLK__USDHC2_CLK                                 0x01A4 0x03A8 0x0000 0x00 0x00
+#define IMX95_PAD_SD2_CLK__NETCMIX_TOP_NETC_TMR_1588_PP1              0x01A4 0x03A8 0x0000 0x01 0x00
+#define IMX95_PAD_SD2_CLK__I3C2_SDA                                   0x01A4 0x03A8 0x04FC 0x02 0x01
+#define IMX95_PAD_SD2_CLK__FLEXIO1_FLEXIO_BIT1                        0x01A4 0x03A8 0x046C 0x04 0x01
+#define IMX95_PAD_SD2_CLK__GPIO3_IO_BIT1                              0x01A4 0x03A8 0x0000 0x05 0x00
+#define IMX95_PAD_SD2_CLK__CCMSRCGPCMIX_TOP_OBSERVE_0                 0x01A4 0x03A8 0x0000 0x06 0x00
+
+#define IMX95_PAD_SD2_CMD__USDHC2_CMD                                 0x01A8 0x03AC 0x0000 0x00 0x00
+#define IMX95_PAD_SD2_CMD__NETCMIX_TOP_NETC_TMR_1588_TRIG2            0x01A8 0x03AC 0x0438 0x01 0x01
+#define IMX95_PAD_SD2_CMD__I3C2_PUR                                   0x01A8 0x03AC 0x0000 0x02 0x00
+#define IMX95_PAD_SD2_CMD__I3C2_PUR_B                                 0x01A8 0x03AC 0x0000 0x03 0x00
+#define IMX95_PAD_SD2_CMD__FLEXIO1_FLEXIO_BIT2                        0x01A8 0x03AC 0x0470 0x04 0x01
+#define IMX95_PAD_SD2_CMD__GPIO3_IO_BIT2                              0x01A8 0x03AC 0x0000 0x05 0x00
+#define IMX95_PAD_SD2_CMD__CCMSRCGPCMIX_TOP_OBSERVE_1                 0x01A8 0x03AC 0x0000 0x06 0x00
+
+#define IMX95_PAD_SD2_DATA0__USDHC2_DATA0                             0x01AC 0x03B0 0x0000 0x00 0x00
+#define IMX95_PAD_SD2_DATA0__NETCMIX_TOP_NETC_TMR_1588_PP2            0x01AC 0x03B0 0x0000 0x01 0x00
+#define IMX95_PAD_SD2_DATA0__CAN2_TX                                  0x01AC 0x03B0 0x0000 0x02 0x00
+#define IMX95_PAD_SD2_DATA0__FLEXIO1_FLEXIO_BIT3                      0x01AC 0x03B0 0x0474 0x04 0x01
+#define IMX95_PAD_SD2_DATA0__GPIO3_IO_BIT3                            0x01AC 0x03B0 0x0000 0x05 0x00
+#define IMX95_PAD_SD2_DATA0__CCMSRCGPCMIX_TOP_OBSERVE_2               0x01AC 0x03B0 0x0000 0x06 0x00
+
+#define IMX95_PAD_SD2_DATA1__USDHC2_DATA1                             0x01B0 0x03B4 0x0000 0x00 0x00
+#define IMX95_PAD_SD2_DATA1__NETCMIX_TOP_NETC_TMR_1588_CLK            0x01B0 0x03B4 0x0000 0x01 0x00
+#define IMX95_PAD_SD2_DATA1__CAN2_RX                                  0x01B0 0x03B4 0x0444 0x02 0x03
+#define IMX95_PAD_SD2_DATA1__FLEXIO1_FLEXIO_BIT4                      0x01B0 0x03B4 0x0478 0x04 0x01
+#define IMX95_PAD_SD2_DATA1__GPIO3_IO_BIT4                            0x01B0 0x03B4 0x0000 0x05 0x00
+
+#define IMX95_PAD_SD2_DATA2__USDHC2_DATA2                             0x01B4 0x03B8 0x0000 0x00 0x00
+#define IMX95_PAD_SD2_DATA2__NETCMIX_TOP_NETC_TMR_1588_PP3            0x01B4 0x03B8 0x0000 0x01 0x00
+#define IMX95_PAD_SD2_DATA2__NETCMIX_TOP_MQS2_RIGHT                   0x01B4 0x03B8 0x0000 0x02 0x00
+#define IMX95_PAD_SD2_DATA2__FLEXIO1_FLEXIO_BIT5                      0x01B4 0x03B8 0x047C 0x04 0x01
+#define IMX95_PAD_SD2_DATA2__GPIO3_IO_BIT5                            0x01B4 0x03B8 0x0000 0x05 0x00
+
+#define IMX95_PAD_SD2_DATA3__USDHC2_DATA3                             0x01B8 0x03BC 0x0000 0x00 0x00
+#define IMX95_PAD_SD2_DATA3__LPTMR2_ALT1                              0x01B8 0x03BC 0x0548 0x01 0x01
+#define IMX95_PAD_SD2_DATA3__NETCMIX_TOP_MQS2_LEFT                    0x01B8 0x03BC 0x0000 0x02 0x00
+#define IMX95_PAD_SD2_DATA3__NETCMIX_TOP_NETC_TMR_1588_ALARM1         0x01B8 0x03BC 0x0000 0x03 0x00
+#define IMX95_PAD_SD2_DATA3__FLEXIO1_FLEXIO_BIT6                      0x01B8 0x03BC 0x0480 0x04 0x01
+#define IMX95_PAD_SD2_DATA3__GPIO3_IO_BIT6                            0x01B8 0x03BC 0x0000 0x05 0x00
+
+#define IMX95_PAD_SD2_RESET_B__USDHC2_RESET_B                         0x01BC 0x03C0 0x0000 0x00 0x00
+#define IMX95_PAD_SD2_RESET_B__LPTMR2_ALT2                            0x01BC 0x03C0 0x054C 0x01 0x01
+#define IMX95_PAD_SD2_RESET_B__NETCMIX_TOP_NETC_TMR_1588_GCLK         0x01BC 0x03C0 0x0000 0x03 0x00
+#define IMX95_PAD_SD2_RESET_B__FLEXIO1_FLEXIO_BIT7                    0x01BC 0x03C0 0x0484 0x04 0x01
+#define IMX95_PAD_SD2_RESET_B__GPIO3_IO_BIT7                          0x01BC 0x03C0 0x0000 0x05 0x00
+
+#define IMX95_PAD_I2C1_SCL__AONMIX_TOP_LPI2C1_SCL                     0x01C0 0x03C4 0x0000 0x00 0x00
+#define IMX95_PAD_I2C1_SCL__AONMIX_TOP_I3C1_SCL                       0x01C0 0x03C4 0x0000 0x01 0x00
+#define IMX95_PAD_I2C1_SCL__AONMIX_TOP_LPUART1_DCD_B                  0x01C0 0x03C4 0x0000 0x02 0x00
+#define IMX95_PAD_I2C1_SCL__AONMIX_TOP_TPM2_CH0                       0x01C0 0x03C4 0x0000 0x03 0x00
+#define IMX95_PAD_I2C1_SCL__VPUMIX_TOP_UART_RX                        0x01C0 0x03C4 0x0000 0x04 0x00
+#define IMX95_PAD_I2C1_SCL__AONMIX_TOP_GPIO1_IO_BIT0                  0x01C0 0x03C4 0x0000 0x05 0x00
+
+#define IMX95_PAD_I2C1_SDA__AONMIX_TOP_LPI2C1_SDA                     0x01C4 0x03C8 0x0000 0x00 0x00
+#define IMX95_PAD_I2C1_SDA__AONMIX_TOP_I3C1_SDA                       0x01C4 0x03C8 0x0000 0x01 0x00
+#define IMX95_PAD_I2C1_SDA__AONMIX_TOP_LPUART1_RIN_B                  0x01C4 0x03C8 0x0000 0x02 0x00
+#define IMX95_PAD_I2C1_SDA__AONMIX_TOP_TPM2_CH1                       0x01C4 0x03C8 0x0000 0x03 0x00
+#define IMX95_PAD_I2C1_SDA__VPUMIX_TOP_UART_TX                        0x01C4 0x03C8 0x0000 0x04 0x00
+#define IMX95_PAD_I2C1_SDA__AONMIX_TOP_GPIO1_IO_BIT1                  0x01C4 0x03C8 0x0000 0x05 0x00
+
+#define IMX95_PAD_I2C2_SCL__AONMIX_TOP_LPI2C2_SCL                     0x01C8 0x03CC 0x0000 0x00 0x00
+#define IMX95_PAD_I2C2_SCL__AONMIX_TOP_I3C1_PUR                       0x01C8 0x03CC 0x0000 0x01 0x00
+#define IMX95_PAD_I2C2_SCL__AONMIX_TOP_LPUART2_DCD_B                  0x01C8 0x03CC 0x0000 0x02 0x00
+#define IMX95_PAD_I2C2_SCL__AONMIX_TOP_TPM2_CH2                       0x01C8 0x03CC 0x0000 0x03 0x00
+#define IMX95_PAD_I2C2_SCL__AONMIX_TOP_SAI1_RX_SYNC                   0x01C8 0x03CC 0x0000 0x04 0x00
+#define IMX95_PAD_I2C2_SCL__AONMIX_TOP_GPIO1_IO_BIT2                  0x01C8 0x03CC 0x0000 0x05 0x00
+#define IMX95_PAD_I2C2_SCL__AONMIX_TOP_I3C1_PUR_B                     0x01C8 0x03CC 0x0000 0x06 0x00
+
+#define IMX95_PAD_I2C2_SDA__AONMIX_TOP_LPI2C2_SDA                     0x01CC 0x03D0 0x0000 0x00 0x00
+#define IMX95_PAD_I2C2_SDA__AONMIX_TOP_LPUART2_RIN_B                  0x01CC 0x03D0 0x0000 0x02 0x00
+#define IMX95_PAD_I2C2_SDA__AONMIX_TOP_TPM2_CH3                       0x01CC 0x03D0 0x0000 0x03 0x00
+#define IMX95_PAD_I2C2_SDA__AONMIX_TOP_SAI1_RX_BCLK                   0x01CC 0x03D0 0x0000 0x04 0x00
+#define IMX95_PAD_I2C2_SDA__AONMIX_TOP_GPIO1_IO_BIT3                  0x01CC 0x03D0 0x0000 0x05 0x00
+
+#define IMX95_PAD_UART1_RXD__AONMIX_TOP_LPUART1_RX                    0x01D0 0x03D4 0x0000 0x00 0x00
+#define IMX95_PAD_UART1_RXD__S400_UART_RX                             0x01D0 0x03D4 0x0000 0x01 0x00
+#define IMX95_PAD_UART1_RXD__AONMIX_TOP_LPSPI2_SIN                    0x01D0 0x03D4 0x0000 0x02 0x00
+#define IMX95_PAD_UART1_RXD__AONMIX_TOP_TPM1_CH0                      0x01D0 0x03D4 0x0000 0x03 0x00
+#define IMX95_PAD_UART1_RXD__AONMIX_TOP_GPIO1_IO_BIT4                 0x01D0 0x03D4 0x0000 0x05 0x00
+
+#define IMX95_PAD_UART1_TXD__AONMIX_TOP_LPUART1_TX                    0x01D4 0x03D8 0x0000 0x00 0x00
+#define IMX95_PAD_UART1_TXD__S400_UART_TX                             0x01D4 0x03D8 0x0000 0x01 0x00
+#define IMX95_PAD_UART1_TXD__AONMIX_TOP_LPSPI2_PCS0                   0x01D4 0x03D8 0x0000 0x02 0x00
+#define IMX95_PAD_UART1_TXD__AONMIX_TOP_TPM1_CH1                      0x01D4 0x03D8 0x0000 0x03 0x00
+#define IMX95_PAD_UART1_TXD__AONMIX_TOP_GPIO1_IO_BIT5                 0x01D4 0x03D8 0x0000 0x05 0x00
+
+#define IMX95_PAD_UART2_RXD__AONMIX_TOP_LPUART2_RX                    0x01D8 0x03DC 0x0000 0x00 0x00
+#define IMX95_PAD_UART2_RXD__AONMIX_TOP_LPUART1_CTS_B                 0x01D8 0x03DC 0x0000 0x01 0x00
+#define IMX95_PAD_UART2_RXD__AONMIX_TOP_LPSPI2_SOUT                   0x01D8 0x03DC 0x0000 0x02 0x00
+#define IMX95_PAD_UART2_RXD__AONMIX_TOP_TPM1_CH2                      0x01D8 0x03DC 0x0000 0x03 0x00
+#define IMX95_PAD_UART2_RXD__AONMIX_TOP_SAI1_MCLK                     0x01D8 0x03DC 0x041C 0x04 0x00
+#define IMX95_PAD_UART2_RXD__AONMIX_TOP_GPIO1_IO_BIT6                 0x01D8 0x03DC 0x0000 0x05 0x00
+
+#define IMX95_PAD_UART2_TXD__AONMIX_TOP_LPUART2_TX                    0x01DC 0x03E0 0x0000 0x00 0x00
+#define IMX95_PAD_UART2_TXD__AONMIX_TOP_LPUART1_RTS_B                 0x01DC 0x03E0 0x0000 0x01 0x00
+#define IMX95_PAD_UART2_TXD__AONMIX_TOP_LPSPI2_SCK                    0x01DC 0x03E0 0x0000 0x02 0x00
+#define IMX95_PAD_UART2_TXD__AONMIX_TOP_TPM1_CH3                      0x01DC 0x03E0 0x0000 0x03 0x00
+#define IMX95_PAD_UART2_TXD__AONMIX_TOP_GPIO1_IO_BIT7                 0x01DC 0x03E0 0x0000 0x05 0x00
+
+#define IMX95_PAD_PDM_CLK__AONMIX_TOP_PDM_CLK                         0x01E0 0x03E4 0x0000 0x00 0x00
+#define IMX95_PAD_PDM_CLK__AONMIX_TOP_MQS1_LEFT                       0x01E0 0x03E4 0x0000 0x01 0x00
+#define IMX95_PAD_PDM_CLK__AONMIX_TOP_LPTMR1_ALT1                     0x01E0 0x03E4 0x0000 0x04 0x00
+#define IMX95_PAD_PDM_CLK__AONMIX_TOP_GPIO1_IO_BIT8                   0x01E0 0x03E4 0x0000 0x05 0x00
+#define IMX95_PAD_PDM_CLK__AONMIX_TOP_CAN1_TX                         0x01E0 0x03E4 0x0000 0x06 0x00
+
+#define IMX95_PAD_PDM_BIT_STREAM0__AONMIX_TOP_PDM_BIT_STREAM_BIT0     0x01E4 0x03E8 0x040C 0x00 0x00
+#define IMX95_PAD_PDM_BIT_STREAM0__AONMIX_TOP_MQS1_RIGHT              0x01E4 0x03E8 0x0000 0x01 0x00
+#define IMX95_PAD_PDM_BIT_STREAM0__AONMIX_TOP_LPSPI1_PCS1             0x01E4 0x03E8 0x0000 0x02 0x00
+#define IMX95_PAD_PDM_BIT_STREAM0__AONMIX_TOP_TPM1_EXTCLK             0x01E4 0x03E8 0x0000 0x03 0x00
+#define IMX95_PAD_PDM_BIT_STREAM0__AONMIX_TOP_LPTMR1_ALT2             0x01E4 0x03E8 0x0000 0x04 0x00
+#define IMX95_PAD_PDM_BIT_STREAM0__AONMIX_TOP_GPIO1_IO_BIT9           0x01E4 0x03E8 0x0000 0x05 0x00
+#define IMX95_PAD_PDM_BIT_STREAM0__AONMIX_TOP_CAN1_RX                 0x01E4 0x03E8 0x0408 0x06 0x00
+
+#define IMX95_PAD_PDM_BIT_STREAM1__AONMIX_TOP_PDM_BIT_STREAM_BIT1     0x01E8 0x03EC 0x0410 0x00 0x00
+#define IMX95_PAD_PDM_BIT_STREAM1__NMI_GLUE_NMI                       0x01E8 0x03EC 0x0000 0x01 0x00
+#define IMX95_PAD_PDM_BIT_STREAM1__AONMIX_TOP_LPSPI2_PCS1             0x01E8 0x03EC 0x0000 0x02 0x00
+#define IMX95_PAD_PDM_BIT_STREAM1__AONMIX_TOP_TPM2_EXTCLK             0x01E8 0x03EC 0x0000 0x03 0x00
+#define IMX95_PAD_PDM_BIT_STREAM1__AONMIX_TOP_LPTMR1_ALT3             0x01E8 0x03EC 0x0000 0x04 0x00
+#define IMX95_PAD_PDM_BIT_STREAM1__AONMIX_TOP_GPIO1_IO_BIT10          0x01E8 0x03EC 0x0000 0x05 0x00
+#define IMX95_PAD_PDM_BIT_STREAM1__CCMSRCGPCMIX_TOP_EXT_CLK1          0x01E8 0x03EC 0x0420 0x06 0x00
+
+#define IMX95_PAD_SAI1_TXFS__AONMIX_TOP_SAI1_TX_SYNC                  0x01EC 0x03F0 0x0000 0x00 0x00
+#define IMX95_PAD_SAI1_TXFS__AONMIX_TOP_SAI1_TX_DATA_BIT1             0x01EC 0x03F0 0x0000 0x01 0x00
+#define IMX95_PAD_SAI1_TXFS__AONMIX_TOP_LPSPI1_PCS0                   0x01EC 0x03F0 0x0000 0x02 0x00
+#define IMX95_PAD_SAI1_TXFS__AONMIX_TOP_LPUART2_DTR_B                 0x01EC 0x03F0 0x0000 0x03 0x00
+#define IMX95_PAD_SAI1_TXFS__AONMIX_TOP_MQS1_LEFT                     0x01EC 0x03F0 0x0000 0x04 0x00
+#define IMX95_PAD_SAI1_TXFS__AONMIX_TOP_GPIO1_IO_BIT11                0x01EC 0x03F0 0x0000 0x05 0x00
+
+#define IMX95_PAD_SAI1_TXC__AONMIX_TOP_SAI1_TX_BCLK                   0x01F0 0x03F4 0x0000 0x00 0x00
+#define IMX95_PAD_SAI1_TXC__AONMIX_TOP_LPUART2_CTS_B                  0x01F0 0x03F4 0x0000 0x01 0x00
+#define IMX95_PAD_SAI1_TXC__AONMIX_TOP_LPSPI1_SIN                     0x01F0 0x03F4 0x0000 0x02 0x00
+#define IMX95_PAD_SAI1_TXC__AONMIX_TOP_LPUART1_DSR_B                  0x01F0 0x03F4 0x0000 0x03 0x00
+#define IMX95_PAD_SAI1_TXC__AONMIX_TOP_CAN1_RX                        0x01F0 0x03F4 0x0408 0x04 0x01
+#define IMX95_PAD_SAI1_TXC__AONMIX_TOP_GPIO1_IO_BIT12                 0x01F0 0x03F4 0x0000 0x05 0x00
+
+#define IMX95_PAD_SAI1_TXD0__AONMIX_TOP_SAI1_TX_DATA_BIT0             0x01F4 0x03F8 0x0000 0x00 0x00
+#define IMX95_PAD_SAI1_TXD0__AONMIX_TOP_LPUART2_RTS_B                 0x01F4 0x03F8 0x0000 0x01 0x00
+#define IMX95_PAD_SAI1_TXD0__AONMIX_TOP_LPSPI1_SCK                    0x01F4 0x03F8 0x0000 0x02 0x00
+#define IMX95_PAD_SAI1_TXD0__AONMIX_TOP_LPUART1_DTR_B                 0x01F4 0x03F8 0x0000 0x03 0x00
+#define IMX95_PAD_SAI1_TXD0__AONMIX_TOP_CAN1_TX                       0x01F4 0x03F8 0x0000 0x04 0x00
+#define IMX95_PAD_SAI1_TXD0__AONMIX_TOP_GPIO1_IO_BIT13                0x01F4 0x03F8 0x0000 0x05 0x00
+
+#define IMX95_PAD_SAI1_RXD0__AONMIX_TOP_SAI1_RX_DATA_BIT0             0x01F8 0x03FC 0x0000 0x00 0x00
+#define IMX95_PAD_SAI1_RXD0__AONMIX_TOP_SAI1_MCLK                     0x01F8 0x03FC 0x041C 0x01 0x01
+#define IMX95_PAD_SAI1_RXD0__AONMIX_TOP_LPSPI1_SOUT                   0x01F8 0x03FC 0x0000 0x02 0x00
+#define IMX95_PAD_SAI1_RXD0__AONMIX_TOP_LPUART2_DSR_B                 0x01F8 0x03FC 0x0000 0x03 0x00
+#define IMX95_PAD_SAI1_RXD0__AONMIX_TOP_MQS1_RIGHT                    0x01F8 0x03FC 0x0000 0x04 0x00
+#define IMX95_PAD_SAI1_RXD0__AONMIX_TOP_GPIO1_IO_BIT14                0x01F8 0x03FC 0x0000 0x05 0x00
+
+#define IMX95_PAD_WDOG_ANY__AONMIX_TOP_WDOG_ANY                       0x01FC 0x0400 0x0000 0x00 0x00
+#define IMX95_PAD_WDOG_ANY__AONMIX_TOP_FCCU_EOUT1                     0x01FC 0x0400 0x0000 0x01 0x00
+#define IMX95_PAD_WDOG_ANY__AONMIX_TOP_GPIO1_IO_BIT15                 0x01FC 0x0400 0x0000 0x05 0x00
+#endif /* __DTS_IMX95_PINFUNC_H */
diff --git a/src/arm64/freescale/imx95-power.h b/src/arm64/freescale/imx95-power.h
new file mode 100644 (file)
index 0000000..0b7f0bc
--- /dev/null
@@ -0,0 +1,47 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ *  Copyright 2024 NXP
+ */
+
+#ifndef __IMX95_POWER_H__
+#define __IMX95_POWER_H__
+
+#define IMX95_PD_ANA           0
+#define IMX95_PD_AON           1
+#define IMX95_PD_BBSM          2
+#define IMX95_PD_CAMERA                3
+#define IMX95_PD_CCMSRCGPC     4
+#define IMX95_PD_A55C0         5
+#define IMX95_PD_A55C1         6
+#define IMX95_PD_A55C2         7
+#define IMX95_PD_A55C3         8
+#define IMX95_PD_A55C4         9
+#define IMX95_PD_A55C5         10
+#define IMX95_PD_A55P          11
+#define IMX95_PD_DDR           12
+#define IMX95_PD_DISPLAY       13
+#define IMX95_PD_GPU           14
+#define IMX95_PD_HSIO_TOP      15
+#define IMX95_PD_HSIO_WAON     16
+#define IMX95_PD_M7            17
+#define IMX95_PD_NETC          18
+#define IMX95_PD_NOC           19
+#define IMX95_PD_NPU           20
+#define IMX95_PD_VPU           21
+#define IMX95_PD_WAKEUP                22
+
+#define IMX95_PERF_ELE         0
+#define IMX95_PERF_M33         1
+#define IMX95_PERF_WAKEUP      2
+#define IMX95_PERF_M7          3
+#define IMX95_PERF_DRAM                4
+#define IMX95_PERF_HSIO                5
+#define IMX95_PERF_NPU         6
+#define IMX95_PERF_NOC         7
+#define IMX95_PERF_A55         8
+#define IMX95_PERF_GPU         9
+#define IMX95_PERF_VPU         10
+#define IMX95_PERF_CAM         11
+#define IMX95_PERF_DISP                12
+
+#endif
diff --git a/src/arm64/freescale/imx95.dtsi b/src/arm64/freescale/imx95.dtsi
new file mode 100644 (file)
index 0000000..425272a
--- /dev/null
@@ -0,0 +1,1192 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
+/*
+ * Copyright 2024 NXP
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/thermal/thermal.h>
+
+#include "imx95-clock.h"
+#include "imx95-pinfunc.h"
+#include "imx95-power.h"
+
+/ {
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               A55_0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0>;
+                       enable-method = "psci";
+                       #cooling-cells = <2>;
+                       power-domains = <&scmi_perf IMX95_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>;
+                       power-domains = <&scmi_perf IMX95_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>;
+                       power-domains = <&scmi_perf IMX95_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>;
+                       power-domains = <&scmi_perf IMX95_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>;
+               };
+
+               A55_4: cpu@400 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x400>;
+                       power-domains = <&scmi_perf IMX95_PERF_A55>;
+                       power-domain-names = "perf";
+                       enable-method = "psci";
+                       #cooling-cells = <2>;
+                       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_l4>;
+               };
+
+               A55_5: cpu@500 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x500>;
+                       power-domains = <&scmi_perf IMX95_PERF_A55>;
+                       power-domain-names = "perf";
+                       enable-method = "psci";
+                       #cooling-cells = <2>;
+                       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_l5>;
+               };
+
+               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>;
+               };
+
+               l2_cache_l4: l2-cache-l4 {
+                       compatible = "cache";
+                       cache-size = <65536>;
+                       cache-line-size = <64>;
+                       cache-sets = <256>;
+                       cache-level = <2>;
+                       cache-unified;
+                       next-level-cache = <&l3_cache>;
+               };
+
+               l2_cache_l5: l2-cache-l5 {
+                       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>;
+                               };
+
+                               core4 {
+                                       cpu = <&A55_4>;
+                               };
+
+                               core5 {
+                                       cpu = <&A55_5>;
+                               };
+                       };
+               };
+       };
+
+       clk_ext1: clock-ext1 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <133000000>;
+               clock-output-names = "clk_ext1";
+       };
+
+       sai1_mclk: clock-sai-mclk1 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency= <0>;
+               clock-output-names = "sai1_mclk";
+       };
+
+       sai2_mclk: clock-sai-mclk2 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency= <0>;
+               clock-output-names = "sai2_mclk";
+       };
+
+       sai3_mclk: clock-sai-mclk3 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency= <0>;
+               clock-output-names = "sai3_mclk";
+       };
+
+       sai4_mclk: clock-sai-mclk4 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency= <0>;
+               clock-output-names = "sai4_mclk";
+       };
+
+       sai5_mclk: clock-sai-mclk5 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency= <0>;
+               clock-output-names = "sai5_mclk";
+       };
+
+       osc_24m: clock-24m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <24000000>;
+               clock-output-names = "osc_24m";
+       };
+
+       sram1: sram@204c0000 {
+               compatible = "mmio-sram";
+               reg = <0x0 0x204c0000 0x0 0x18000>;
+               ranges = <0x0 0x0 0x204c0000 0x18000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+
+       firmware {
+               scmi {
+                       compatible = "arm,scmi";
+                       mboxes = <&mu2 5 0>, <&mu2 3 0>, <&mu2 3 1>;
+                       shmem = <&scmi_buf0>, <&scmi_buf1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       scmi_devpd: protocol@11 {
+                               reg = <0x11>;
+                               #power-domain-cells = <1>;
+                       };
+
+                       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>;
+                       };
+
+               };
+       };
+
+       pmu {
+               compatible = "arm,cortex-a55-pmu";
+               interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
+       };
+
+       thermal-zones {
+               a55-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <2000>;
+                       thermal-sensors = <&scmi_sensor 1>;
+
+                       trips {
+                               cpu_alert0: trip0 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu_crit0: trip1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_alert0>;
+                                       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>;
+                               };
+                       };
+               };
+       };
+
+       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>;
+       };
+
+       gic: interrupt-controller@48000000 {
+               compatible = "arm,gic-v3";
+               reg = <0 0x48000000 0 0x10000>,
+                     <0 0x48060000 0 0xc0000>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               #interrupt-cells = <3>;
+               interrupt-controller;
+               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-parent = <&gic>;
+               dma-noncoherent;
+               ranges;
+
+               its: msi-controller@48040000 {
+                       compatible = "arm,gic-v3-its";
+                       reg = <0 0x48040000 0 0x20000>;
+                       msi-controller;
+                       #msi-cells = <1>;
+                       dma-noncoherent;
+               };
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               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@42430000 {
+                               compatible = "fsl,imx95-mu";
+                               reg = <0x42430000 0x10000>;
+                               interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               #mbox-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       wdog3: watchdog@42490000 {
+                               compatible = "fsl,imx93-wdt";
+                               reg = <0x42490000 0x10000>;
+                               interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               timeout-sec = <40>;
+                               status = "disabled";
+                       };
+
+                       tpm3: pwm@424e0000 {
+                               compatible = "fsl,imx7ulp-pwm";
+                               reg = <0x424e0000 0x1000>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       tpm4: pwm@424f0000 {
+                               compatible = "fsl,imx7ulp-pwm";
+                               reg = <0x424f0000 0x1000>;
+                               clocks = <&scmi_clk IMX95_CLK_TPM4>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       tpm5: pwm@42500000 {
+                               compatible = "fsl,imx7ulp-pwm";
+                               reg = <0x42500000 0x1000>;
+                               clocks = <&scmi_clk IMX95_CLK_TPM5>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       tpm6: pwm@42510000 {
+                               compatible = "fsl,imx7ulp-pwm";
+                               reg = <0x42510000 0x1000>;
+                               clocks = <&scmi_clk IMX95_CLK_TPM6>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       lpi2c3: i2c@42530000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x42530000 0x10000>;
+                               interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPI2C3>,
+                                        <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       lpi2c4: i2c@42540000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x42540000 0x10000>;
+                               interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPI2C4>,
+                                        <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       lpspi3: spi@42550000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x42550000 0x10000>;
+                               interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPSPI3>,
+                                        <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               status = "disabled";
+                       };
+
+                       lpspi4: spi@42560000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x42560000 0x10000>;
+                               interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPSPI4>,
+                                        <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               status = "disabled";
+                       };
+
+                       lpuart3: serial@42570000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x42570000 0x1000>;
+                               interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPUART3>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       lpuart4: serial@42580000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x42580000 0x1000>;
+                               interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPUART4>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       lpuart5: serial@42590000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x42590000 0x1000>;
+                               interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPUART5>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       lpuart6: serial@425a0000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x425a0000 0x1000>;
+                               interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPUART6>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       lpuart7: serial@42690000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x42690000 0x1000>;
+                               interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPUART7>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       lpuart8: serial@426a0000 {
+                               compatible = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart",
+                                            "fsl,imx7ulp-lpuart";
+                               reg = <0x426a0000 0x1000>;
+                               interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPUART8>;
+                               clock-names = "ipg";
+                               status = "disabled";
+                       };
+
+                       lpi2c5: i2c@426b0000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x426b0000 0x10000>;
+                               interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPI2C5>,
+                                        <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       lpi2c6: i2c@426c0000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x426c0000 0x10000>;
+                               interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPI2C6>,
+                                        <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       lpi2c7: i2c@426d0000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x426d0000 0x10000>;
+                               interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPI2C7>,
+                                        <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       lpi2c8: i2c@426e0000 {
+                               compatible = "fsl,imx95-lpi2c", "fsl,imx7ulp-lpi2c";
+                               reg = <0x426e0000 0x10000>;
+                               interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPI2C8>,
+                                        <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       lpspi5: spi@426f0000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x426f0000 0x10000>;
+                               interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPSPI5>,
+                                        <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               status = "disabled";
+                       };
+
+                       lpspi6: spi@42700000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x42700000 0x10000>;
+                               interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPSPI6>,
+                                        <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               status = "disabled";
+                       };
+
+                       lpspi7: spi@42710000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x42710000 0x10000>;
+                               interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPSPI7>,
+                                        <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               status = "disabled";
+                       };
+
+                       lpspi8: spi@42720000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x42720000 0x10000>;
+                               interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPSPI8>,
+                                        <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                               clock-names = "per", "ipg";
+                               status = "disabled";
+                       };
+
+                       mu8: mailbox@42730000 {
+                               compatible = "fsl,imx95-mu";
+                               reg = <0x42730000 0x10000>;
+                               interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_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>;
+
+                       usdhc1: mmc@42850000 {
+                               compatible = "fsl,imx95-usdhc", "fsl,imx8mm-usdhc";
+                               reg = <0x42850000 0x10000>;
+                               interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX95_CLK_WAKEUPAXI>,
+                                        <&scmi_clk IMX95_CLK_USDHC1>;
+                               clock-names = "ipg", "ahb", "per";
+                               assigned-clocks = <&scmi_clk IMX95_CLK_USDHC1>;
+                               assigned-clock-parents = <&scmi_clk IMX95_CLK_SYSPLL1_PFD1>;
+                               assigned-clock-rates = <400000000>;
+                               bus-width = <8>;
+                               fsl,tuning-start-tap = <1>;
+                               fsl,tuning-step= <2>;
+                               status = "disabled";
+                       };
+
+                       usdhc2: mmc@42860000 {
+                               compatible = "fsl,imx95-usdhc", "fsl,imx8mm-usdhc";
+                               reg = <0x42860000 0x10000>;
+                               interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX95_CLK_WAKEUPAXI>,
+                                        <&scmi_clk IMX95_CLK_USDHC2>;
+                               clock-names = "ipg", "ahb", "per";
+                               assigned-clocks = <&scmi_clk IMX95_CLK_USDHC2>;
+                               assigned-clock-parents = <&scmi_clk IMX95_CLK_SYSPLL1_PFD1>;
+                               assigned-clock-rates = <400000000>;
+                               bus-width = <4>;
+                               fsl,tuning-start-tap = <1>;
+                               fsl,tuning-step= <2>;
+                               status = "disabled";
+                       };
+
+                       usdhc3: mmc@428b0000 {
+                               compatible = "fsl,imx95-usdhc", "fsl,imx8mm-usdhc";
+                               reg = <0x428b0000 0x10000>;
+                               interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSWAKEUP>,
+                                        <&scmi_clk IMX95_CLK_WAKEUPAXI>,
+                                        <&scmi_clk IMX95_CLK_USDHC3>;
+                               clock-names = "ipg", "ahb", "per";
+                               assigned-clocks = <&scmi_clk IMX95_CLK_USDHC3>;
+                               assigned-clock-parents = <&scmi_clk IMX95_CLK_SYSPLL1_PFD1>;
+                               assigned-clock-rates = <400000000>;
+                               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 IMX95_CLK_BUSWAKEUP>,
+                                <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                       clock-names = "gpio", "port";
+                       gpio-ranges = <&scmi_iomuxc 0 4 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 IMX95_CLK_BUSWAKEUP>,
+                                <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                       clock-names = "gpio", "port";
+                       gpio-ranges = <&scmi_iomuxc 0 104 8>, <&scmi_iomuxc 8 74 18>,
+                                     <&scmi_iomuxc 26 42 2>, <&scmi_iomuxc 28 0 4>;
+               };
+
+               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 IMX95_CLK_BUSWAKEUP>,
+                                <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                       clock-names = "gpio", "port";
+                       gpio-ranges = <&scmi_iomuxc 0 46 28>, <&scmi_iomuxc 28 44 2>;
+               };
+
+               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 IMX95_CLK_BUSWAKEUP>,
+                                <&scmi_clk IMX95_CLK_BUSWAKEUP>;
+                       clock-names = "gpio", "port";
+                       gpio-ranges = <&scmi_iomuxc 0 92 12>, <&scmi_iomuxc 12 36 6>;
+               };
+
+               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>;
+
+                       mu1: mailbox@44220000 {
+                               compatible = "fsl,imx95-mu";
+                               reg = <0x44220000 0x10000>;
+                               interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSAON>;
+                               #mbox-cells = <2>;
+                               status = "disabled";
+                       };
+
+                       tpm1: pwm@44310000 {
+                               compatible = "fsl,imx7ulp-pwm";
+                               reg = <0x44310000 0x1000>;
+                               clocks = <&scmi_clk IMX95_CLK_BUSAON>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       tpm2: pwm@44320000 {
+                               compatible = "fsl,imx7ulp-pwm";
+                               reg = <0x44320000 0x1000>;
+                               clocks = <&scmi_clk IMX95_CLK_TPM2>;
+                               #pwm-cells = <3>;
+                               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 IMX95_CLK_LPI2C1>,
+                                        <&scmi_clk IMX95_CLK_BUSAON>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               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 IMX95_CLK_LPI2C2>,
+                                        <&scmi_clk IMX95_CLK_BUSAON>;
+                               clock-names = "per", "ipg";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       lpspi1: spi@44360000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x44360000 0x10000>;
+                               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPSPI1>,
+                                        <&scmi_clk IMX95_CLK_BUSAON>;
+                               clock-names = "per", "ipg";
+                               status = "disabled";
+                       };
+
+                       lpspi2: spi@44370000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "fsl,imx95-spi", "fsl,imx7ulp-spi";
+                               reg = <0x44370000 0x10000>;
+                               interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&scmi_clk IMX95_CLK_LPSPI2>,
+                                        <&scmi_clk IMX95_CLK_BUSAON>;
+                               clock-names = "per", "ipg";
+                               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 IMX95_CLK_LPUART1>;
+                               clock-names = "ipg";
+                               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 IMX95_CLK_LPUART2>;
+                               clock-names = "ipg";
+                               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 IMX95_CLK_ADC>;
+                               clock-names = "ipg";
+                               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 IMX95_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 IMX95_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 IMX95_CLK_BUSAON>;
+                               #mbox-cells = <2>;
+                               status = "disabled";
+                       };
+               };
+
+               mailbox@47320000 {
+                       compatible = "fsl,imx95-mu-v2x";
+                       reg = <0x0 0x47320000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+               };
+
+               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 IMX95_CLK_M33>,
+                                <&scmi_clk IMX95_CLK_M33>;
+                       clock-names = "gpio", "port";
+                       gpio-ranges = <&scmi_iomuxc 0 112 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";
+               };
+
+               aips4: bus@49000000 {
+                       compatible = "fsl,aips-bus", "simple-bus";
+                       reg = <0x0 0x49000000 0x0 0x800000>;
+                       ranges = <0x49000000 0x0 0x49000000 0x800000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       smmu: iommu@490d0000 {
+                               compatible = "arm,smmu-v3";
+                               reg = <0x490d0000 0x100000>;
+                               interrupts = <GIC_SPI 325 IRQ_TYPE_EDGE_RISING>,
+                                            <GIC_SPI 328 IRQ_TYPE_EDGE_RISING>,
+                                            <GIC_SPI 334 IRQ_TYPE_EDGE_RISING>,
+                                            <GIC_SPI 326 IRQ_TYPE_EDGE_RISING>;
+                               interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
+                               #iommu-cells = <1>;
+                               status = "disabled";
+                       };
+               };
+
+               pcie0: pcie@4c300000 {
+                       compatible = "fsl,imx95-pcie";
+                       reg = <0 0x4c300000 0 0x10000>,
+                             <0 0x60100000 0 0xfe00000>,
+                             <0 0x4c360000 0 0x10000>,
+                             <0 0x4c340000 0 0x2000>;
+                       reg-names = "dbi", "config", "atu", "app";
+                       ranges = <0x81000000 0x0 0x00000000 0x0 0x6ff00000 0 0x00100000>,
+                                <0x82000000 0x0 0x10000000 0x9 0x10000000 0 0x10000000>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       device_type = "pci";
+                       linux,pci-domain = <0>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <1>;
+                       num-viewport = <8>;
+                       interrupts = <GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &gic 0 0 GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 2 &gic 0 0 GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &gic 0 0 GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &gic 0 0 GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&scmi_clk IMX95_CLK_HSIO>,
+                                <&scmi_clk IMX95_CLK_HSIOPLL>,
+                                <&scmi_clk IMX95_CLK_HSIOPLL_VCO>,
+                                <&scmi_clk IMX95_CLK_HSIOPCIEAUX>;
+                       clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux";
+                       assigned-clocks =<&scmi_clk IMX95_CLK_HSIOPLL_VCO>,
+                                        <&scmi_clk IMX95_CLK_HSIOPLL>,
+                                        <&scmi_clk IMX95_CLK_HSIOPCIEAUX>;
+                       assigned-clock-rates = <3600000000>, <100000000>, <10000000>;
+                       assigned-clock-parents = <0>, <0>,
+                                                <&scmi_clk IMX95_CLK_SYSPLL1_PFD1_DIV2>;
+                       power-domains = <&scmi_devpd IMX95_PD_HSIO_TOP>;
+                       fsl,max-link-speed = <3>;
+                       status = "disabled";
+               };
+
+               pcie0_ep: pcie-ep@4c300000 {
+                       compatible = "fsl,imx95-pcie-ep";
+                       reg = <0 0x4c300000 0 0x10000>,
+                             <0 0x4c360000 0 0x1000>,
+                             <0 0x4c320000 0 0x1000>,
+                             <0 0x4c340000 0 0x2000>,
+                             <0 0x4c370000 0 0x10000>,
+                             <0x9 0 1 0>;
+                       reg-names = "dbi","atu", "dbi2", "app", "dma", "addr_space";
+                       num-lanes = <1>;
+                       interrupts = <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "dma";
+                       clocks = <&scmi_clk IMX95_CLK_HSIO>,
+                                <&scmi_clk IMX95_CLK_HSIOPLL>,
+                                <&scmi_clk IMX95_CLK_HSIOPLL_VCO>,
+                                <&scmi_clk IMX95_CLK_HSIOPCIEAUX>;
+                       clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux";
+                       assigned-clocks =<&scmi_clk IMX95_CLK_HSIOPLL_VCO>,
+                                        <&scmi_clk IMX95_CLK_HSIOPLL>,
+                                        <&scmi_clk IMX95_CLK_HSIOPCIEAUX>;
+                       assigned-clock-rates = <3600000000>, <100000000>, <10000000>;
+                       assigned-clock-parents = <0>, <0>,
+                                                <&scmi_clk IMX95_CLK_SYSPLL1_PFD1_DIV2>;
+                       power-domains = <&scmi_devpd IMX95_PD_HSIO_TOP>;
+                       status = "disabled";
+               };
+
+               pcie1: pcie@4c380000 {
+                       compatible = "fsl,imx95-pcie";
+                       reg = <0 0x4c380000 0 0x10000>,
+                             <8 0x80100000 0 0xfe00000>,
+                             <0 0x4c3e0000 0 0x10000>,
+                             <0 0x4c3c0000 0 0x2000>;
+                       reg-names = "dbi", "config", "atu", "app";
+                       ranges = <0x81000000 0 0x00000000 0x8 0x8ff00000 0 0x00100000>,
+                                <0x82000000 0 0x10000000 0xa 0x10000000 0 0x10000000>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       device_type = "pci";
+                       linux,pci-domain = <1>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <1>;
+                       num-viewport = <8>;
+                       interrupts = <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &gic 0 0 GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 2 &gic 0 0 GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 3 &gic 0 0 GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0 0 0 4 &gic 0 0 GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&scmi_clk IMX95_CLK_HSIO>,
+                                <&scmi_clk IMX95_CLK_HSIOPLL>,
+                                <&scmi_clk IMX95_CLK_HSIOPLL_VCO>,
+                                <&scmi_clk IMX95_CLK_HSIOPCIEAUX>;
+                       clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux";
+                       assigned-clocks =<&scmi_clk IMX95_CLK_HSIOPLL_VCO>,
+                                        <&scmi_clk IMX95_CLK_HSIOPLL>,
+                                        <&scmi_clk IMX95_CLK_HSIOPCIEAUX>;
+                       assigned-clock-rates = <3600000000>, <100000000>, <10000000>;
+                       assigned-clock-parents = <0>, <0>,
+                                                <&scmi_clk IMX95_CLK_SYSPLL1_PFD1_DIV2>;
+                       power-domains = <&scmi_devpd IMX95_PD_HSIO_TOP>;
+                       fsl,max-link-speed = <3>;
+                       status = "disabled";
+               };
+
+               pcie1_ep: pcie-ep@4c380000 {
+                       compatible = "fsl,imx95-pcie-ep";
+                       reg = <0 0x4c380000 0 0x10000>,
+                             <0 0x4c3e0000 0 0x1000>,
+                             <0 0x4c3a0000 0 0x1000>,
+                             <0 0x4c3c0000 0 0x2000>,
+                             <0 0x4c3f0000 0 0x10000>,
+                             <0xa 0 1 0>;
+                       reg-names = "dbi", "atu", "dbi2", "app", "dma", "addr_space";
+                       num-lanes = <1>;
+                       interrupts = <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "dma";
+                       clocks = <&scmi_clk IMX95_CLK_HSIO>,
+                                <&scmi_clk IMX95_CLK_HSIOPLL>,
+                                <&scmi_clk IMX95_CLK_HSIOPLL_VCO>,
+                                <&scmi_clk IMX95_CLK_HSIOPCIEAUX>;
+                       clock-names = "pcie", "pcie_bus", "pcie_phy", "pcie_aux";
+                       assigned-clocks =<&scmi_clk IMX95_CLK_HSIOPLL_VCO>,
+                                        <&scmi_clk IMX95_CLK_HSIOPLL>,
+                                        <&scmi_clk IMX95_CLK_HSIOPCIEAUX>;
+                       assigned-clock-rates = <3600000000>, <100000000>, <10000000>;
+                       assigned-clock-parents = <0>, <0>,
+                                                <&scmi_clk IMX95_CLK_SYSPLL1_PFD1_DIV2>;
+                       power-domains = <&scmi_devpd IMX95_PD_HSIO_TOP>;
+                       status = "disabled";
+               };
+       };
+};
index dbd2fc3ba790ee8d82c89a37b80bfef5b3246554..65f7b5a50eb51d678bdf3f27efff2b5d92debd66 100644 (file)
@@ -32,7 +32,7 @@ fman@1a00000 {
        mdio@f1000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
+               compatible = "fsl,fman-memac-mdio";
                reg = <0xf1000 0x1000>;
 
                pcsphy6: ethernet-phy@0 {
index 6fc5d256005715d8394030c06b5fab6950cf1938..3f70482c98c30ec2526a006c26c98e7d856cc91f 100644 (file)
@@ -32,7 +32,7 @@ fman@1a00000 {
        mdio@f3000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
+               compatible = "fsl,fman-memac-mdio";
                reg = <0xf3000 0x1000>;
 
                pcsphy7: ethernet-phy@0 {
index 4e02276fcf993f718b23eef7663395d32e40d4e2..78841c1f32527e562dc32e46d8d2c2898d7e2734 100644 (file)
@@ -31,7 +31,7 @@ fman@1a00000 {
        mdio@e1000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
+               compatible = "fsl,fman-memac-mdio";
                reg = <0xe1000 0x1000>;
 
                pcsphy0: ethernet-phy@0 {
index 0312fa43fa777aae684da3f880d04c60bec2e232..1f43fa66622218fa4a9da77bc48b9501e196f40e 100644 (file)
@@ -31,7 +31,7 @@ fman@1a00000 {
        mdio@e3000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
+               compatible = "fsl,fman-memac-mdio";
                reg = <0xe3000 0x1000>;
 
                pcsphy1: ethernet-phy@0 {
index af2df07971dd9bea91a30e95715dc2b652965877..de0aa017701dd9129a6fd3934f341e8403e72526 100644 (file)
@@ -31,7 +31,7 @@ fman@1a00000 {
        mdio@e5000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
+               compatible = "fsl,fman-memac-mdio";
                reg = <0xe5000 0x1000>;
 
                pcsphy2: ethernet-phy@0 {
index 4ac98dc8b227932ab27f29535c02c90e2ccccd62..6904aa5d8e5479e6761bb936f862838d876fca0c 100644 (file)
@@ -31,7 +31,7 @@ fman@1a00000 {
        mdio@e7000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
+               compatible = "fsl,fman-memac-mdio";
                reg = <0xe7000 0x1000>;
 
                pcsphy3: ethernet-phy@0 {
index bd932d8b0160ba136b398197c2abc41980d6be47..a3d29d470297e649e9d753c57c84d6fb894220c7 100644 (file)
@@ -31,7 +31,7 @@ fman@1a00000 {
        mdio@e9000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
+               compatible = "fsl,fman-memac-mdio";
                reg = <0xe9000 0x1000>;
 
                pcsphy4: ethernet-phy@0 {
index 7de1c5203f3e20019d8028521b917b71d19db163..01b78c0463a74cc3b6ab8d42911d5ec728775046 100644 (file)
@@ -31,7 +31,7 @@ fman@1a00000 {
        mdio@eb000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
+               compatible = "fsl,fman-memac-mdio";
                reg = <0xeb000 0x1000>;
 
                pcsphy5: ethernet-phy@0 {
index ae1c2abaaf36298b20c4003c1342e0e110ddcbc6..b0390b711fef4ec38bc7690f746c67000e568a8f 100644 (file)
@@ -67,14 +67,14 @@ fman0: fman@1a00000 {
        mdio0: mdio@fc000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
+               compatible = "fsl,fman-memac-mdio";
                reg = <0xfc000 0x1000>;
        };
 
        xmdio0: mdio@fd000 {
                #address-cells = <1>;
                #size-cells = <0>;
-               compatible = "fsl,fman-memac-mdio", "fsl,fman-xmdio";
+               compatible = "fsl,fman-memac-mdio";
                reg = <0xfd000 0x1000>;
        };
 };
index d98469a7c47ccb80ebba2378adabf8fb284b9e42..366912bf3d5e557ac8eacff22e7bdc64a61289ac 100644 (file)
 
        flash0: flash@0 {
                reg = <0>;
-               #address-cells = <1>;
-               #size-cells = <1>;
                compatible = "jedec,spi-nor";
                spi-max-frequency = <66000000>;
                spi-tx-bus-width = <1>;
                spi-rx-bus-width = <4>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
        };
 };
 
index 7e137a884ae555457800439498affbebcd855a78..957a1b41f19b4b1575cce42682e48b2e3d61a0c8 100644 (file)
                };
 
                usb3_otg_bc: usb3_otg_bc@ff200000 {
-                       compatible = "syscon", "simple-mfd";
+                       compatible = "hisilicon,hi3660-usb3-otg-bc", "syscon", "simple-mfd";
                        reg = <0x0 0xff200000 0x0 0x1000>;
 
                        usb_phy: usb-phy {
index ad99aefeb185a1b9a37b6186e9e46fe8897c496c..b31cfa6b802d9f5f9fae1866c9cd290b66825678 100644 (file)
 &qspi {
        status = "okay";
        flash@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
                compatible = "micron,mt25qu02g", "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <100000000>;
index 2d70a92c20900ee3edf6d8b94b19376a9edba236..7952c7f47cc2f8177031c272b70d565b1c32b27d 100644 (file)
@@ -83,8 +83,6 @@
 &qspi {
        status = "okay";
        flash@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
                compatible = "micron,mt25qu02g", "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <100000000>;
index 63fbc83521616afc741d4d7e22a6fe00aaae9292..56930f2ce4814ee58ebd06b095db146a5cc55340 100644 (file)
@@ -41,7 +41,7 @@
        keys {
                compatible = "gpio-keys";
 
-               reset {
+               button-reset {
                        label = "reset";
                        linux,code = <KEY_RESTART>;
                        gpios = <&gpionb 14 GPIO_ACTIVE_LOW>;
        leds {
                compatible = "gpio-leds";
 
-               vpn {
+               led-vpn {
                        label = "green:vpn";
                        gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
                };
 
-               wan {
+               led-wan {
                        label = "green:wan";
                        gpios = <&gpionb 12 GPIO_ACTIVE_LOW>;
                };
 
-               led_power: power {
+               led_power: led-power {
                        label = "green:power";
                        gpios = <&gpionb 13 GPIO_ACTIVE_LOW>;
                        default-state = "on";
diff --git a/src/arm64/marvell/cn9130-cf-base.dts b/src/arm64/marvell/cn9130-cf-base.dts
new file mode 100644 (file)
index 0000000..788a5c3
--- /dev/null
@@ -0,0 +1,178 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
+ *
+ * DTS for SolidRun CN9130 Clearfog Base.
+ *
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+#include "cn9130.dtsi"
+#include "cn9130-sr-som.dtsi"
+#include "cn9130-cf.dtsi"
+
+/ {
+       model = "SolidRun CN9130 Clearfog Base";
+       compatible = "solidrun,cn9130-clearfog-base",
+                    "solidrun,cn9130-sr-som", "marvell,cn9130";
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&rear_button_pins>;
+               pinctrl-names = "default";
+
+               button-0 {
+                       /* The rear SW3 button */
+                       label = "Rear Button";
+                       gpios = <&cp0_gpio1 31 GPIO_ACTIVE_LOW>;
+                       linux,can-disable;
+                       linux,code = <BTN_0>;
+               };
+       };
+
+       rfkill-m2-gnss {
+               compatible = "rfkill-gpio";
+               label = "m.2 GNSS";
+               radio-type = "gps";
+               /* rfkill-gpio inverts internally */
+               shutdown-gpios = <&expander0 9 GPIO_ACTIVE_HIGH>;
+       };
+
+       /* M.2 is B-keyed, so w-disable is for WWAN */
+       rfkill-m2-wwan {
+               compatible = "rfkill-gpio";
+               label = "m.2 WWAN";
+               radio-type = "wwan";
+               /* rfkill-gpio inverts internally */
+               shutdown-gpios = <&expander0 8 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+/* SRDS #3 - SGMII 1GE */
+&cp0_eth1 {
+       phy = <&phy1>;
+       phys = <&cp0_comphy3 1>;
+       phy-mode = "sgmii";
+       status = "okay";
+};
+
+&cp0_eth2_phy {
+       /*
+        * Configure LEDs default behaviour:
+        * - LED[0]: link/activity: On/blink (green)
+        * - LED[1]: link is 100/1000Mbps: On (yellow)
+        * - LED[2]: high impedance (floating)
+        */
+       marvell,reg-init = <3 16 0xf000 0x0a61>;
+
+       leds {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@0 {
+                       reg = <0>;
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_WAN;
+                       default-state = "keep";
+               };
+
+               led@1 {
+                       reg = <1>;
+                       color = <LED_COLOR_ID_YELLOW>;
+                       function = LED_FUNCTION_WAN;
+                       default-state = "keep";
+               };
+       };
+};
+
+&cp0_gpio1 {
+       sim-select-hog {
+               gpio-hog;
+               gpios = <27 GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "sim-select";
+       };
+};
+
+&cp0_mdio {
+       phy1: ethernet-phy@1 {
+               reg = <1>;
+               /*
+                * Configure LEDs default behaviour:
+                * - LED[0]: link/activity: On/blink (green)
+                * - LED[1]: link is 100/1000Mbps: On (yellow)
+                * - LED[2]: high impedance (floating)
+                *
+                * Configure LEDs electrical polarity
+                * - on-state: low
+                * - off-state: high (not hi-z, to avoid residual glow)
+                */
+               marvell,reg-init = <3 16 0xf000 0x0a61>,
+                                  <3 17 0x003f 0x000a>;
+
+               leds {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_YELLOW>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+               };
+       };
+};
+
+&cp0_pinctrl {
+       pinctrl-0 = <&sim_select_pins>;
+       pintrl-names = "default";
+
+       rear_button_pins: cp0-rear-button-pins {
+               marvell,pins = "mpp31";
+               marvell,function = "gpio";
+       };
+
+       sim_select_pins: cp0-sim-select-pins {
+               marvell,pins = "mpp27";
+               marvell,function = "gpio";
+       };
+};
+
+/*
+ * SRDS #4 - USB 3.0 host on M.2 connector
+ * USB-2.0 Host on Type-A connector
+ */
+&cp0_usb3_1 {
+       phys = <&cp0_comphy4 1>, <&cp0_utmi1>;
+       phy-names = "comphy", "utmi";
+       dr_mode = "host";
+       status = "okay";
+};
+
+&expander0 {
+       m2-full-card-power-off-hog {
+               gpio-hog;
+               gpios = <2 GPIO_ACTIVE_LOW>;
+               output-low;
+               line-name = "m2-full-card-power-off";
+       };
+
+       m2-reset-hog {
+               gpio-hog;
+               gpios = <10 GPIO_ACTIVE_LOW>;
+               output-low;
+               line-name = "m2-reset";
+       };
+};
diff --git a/src/arm64/marvell/cn9130-cf-pro.dts b/src/arm64/marvell/cn9130-cf-pro.dts
new file mode 100644 (file)
index 0000000..a27fe00
--- /dev/null
@@ -0,0 +1,375 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
+ *
+ * DTS for SolidRun CN9130 Clearfog Pro.
+ *
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+#include "cn9130.dtsi"
+#include "cn9130-sr-som.dtsi"
+#include "cn9130-cf.dtsi"
+
+/ {
+       model = "SolidRun CN9130 Clearfog Pro";
+       compatible = "solidrun,cn9130-clearfog-pro",
+                    "solidrun,cn9130-sr-som", "marvell,cn9130";
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&rear_button_pins>;
+               pinctrl-names = "default";
+
+               button-0 {
+                       /* The rear SW3 button */
+                       label = "Rear Button";
+                       gpios = <&cp0_gpio2 0 GPIO_ACTIVE_LOW>;
+                       linux,can-disable;
+                       linux,code = <BTN_0>;
+               };
+       };
+};
+
+/* SRDS #3 - SGMII 1GE to L2 switch */
+&cp0_eth1 {
+       phys = <&cp0_comphy3 1>;
+       phy-mode = "sgmii";
+       status = "okay";
+
+       fixed-link {
+               speed = <1000>;
+               full-duplex;
+       };
+};
+
+&cp0_eth2_phy {
+       /*
+        * Configure LEDs default behaviour similar to switch ports:
+        * - LED[0]: link/activity: On/blink (green)
+        * - LED[1]: link is 100/1000Mbps: On (red)
+        * - LED[2]: high impedance (floating)
+        *
+        * Switch port defaults:
+        * - LED0: link/activity: On/blink (green)
+        * - LED1: link is 1000Mbps: On (red)
+        *
+        * Identical configuration is impossible with hardware offload.
+        */
+       marvell,reg-init = <3 16 0xf000 0x0a61>;
+
+       leds {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@0 {
+                       reg = <0>;
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_WAN;
+                       label = "LED2";
+                       default-state = "keep";
+               };
+
+               led@1 {
+                       reg = <1>;
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_WAN;
+                       label = "LED1";
+                       default-state = "keep";
+               };
+       };
+};
+
+&cp0_mdio {
+       ethernet-switch@4 {
+               compatible = "marvell,mv88e6085";
+               reg = <4>;
+               pinctrl-0 = <&dsa_clk_pins &dsa_pins>;
+               pinctrl-names = "default";
+               reset-gpios = <&cp0_gpio1 27 GPIO_ACTIVE_LOW>;
+               interrupt-parent = <&cp0_gpio1>;
+               interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
+
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       ethernet-port@0 {
+                               reg = <0>;
+                               label = "lan5";
+                               phy = <&switch0phy0>;
+
+                               leds {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       led@0 {
+                                               reg = <0>;
+                                               color = <LED_COLOR_ID_GREEN>;
+                                               function = LED_FUNCTION_LAN;
+                                               label = "LED12";
+                                               default-state = "keep";
+                                       };
+
+                                       led@1 {
+                                               reg = <1>;
+                                               color = <LED_COLOR_ID_RED>;
+                                               function = LED_FUNCTION_LAN;
+                                               label = "LED11";
+                                               default-state = "keep";
+                                       };
+                               };
+                       };
+
+                       ethernet-port@1 {
+                               reg = <1>;
+                               label = "lan4";
+                               phy = <&switch0phy1>;
+
+                               leds {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       led@0 {
+                                               reg = <0>;
+                                               color = <LED_COLOR_ID_GREEN>;
+                                               function = LED_FUNCTION_LAN;
+                                               label = "LED10";
+                                               default-state = "keep";
+                                       };
+
+                                       led@1 {
+                                               reg = <1>;
+                                               color = <LED_COLOR_ID_RED>;
+                                               function = LED_FUNCTION_LAN;
+                                               label = "LED9";
+                                               default-state = "keep";
+                                       };
+                               };
+                       };
+
+                       ethernet-port@2 {
+                               reg = <2>;
+                               label = "lan3";
+                               phy = <&switch0phy2>;
+
+                               leds {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       led@0 {
+                                               reg = <0>;
+                                               color = <LED_COLOR_ID_GREEN>;
+                                               function = LED_FUNCTION_LAN;
+                                               label = "LED8";
+                                               default-state = "keep";
+                                       };
+
+                                       led@1 {
+                                               reg = <1>;
+                                               color = <LED_COLOR_ID_RED>;
+                                               function = LED_FUNCTION_LAN;
+                                               label = "LED7";
+                                               default-state = "keep";
+                                       };
+                               };
+                       };
+
+                       ethernet-port@3 {
+                               reg = <3>;
+                               label = "lan2";
+                               phy = <&switch0phy3>;
+
+                               leds {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       led@0 {
+                                               reg = <0>;
+                                               color = <LED_COLOR_ID_GREEN>;
+                                               function = LED_FUNCTION_LAN;
+                                               label = "LED6";
+                                               default-state = "keep";
+                                       };
+
+                                       led@1 {
+                                               reg = <1>;
+                                               color = <LED_COLOR_ID_RED>;
+                                               function = LED_FUNCTION_LAN;
+                                               label = "LED5";
+                                               default-state = "keep";
+                                       };
+                               };
+                       };
+
+                       ethernet-port@4 {
+                               reg = <4>;
+                               label = "lan1";
+                               phy = <&switch0phy4>;
+
+                               leds {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       led@0 {
+                                               reg = <0>;
+                                               color = <LED_COLOR_ID_GREEN>;
+                                               function = LED_FUNCTION_LAN;
+                                               label = "LED4";
+                                               default-state = "keep";
+                                       };
+
+                                       led@1 {
+                                               reg = <1>;
+                                               color = <LED_COLOR_ID_RED>;
+                                               function = LED_FUNCTION_LAN;
+                                               label = "LED3";
+                                               default-state = "keep";
+                                       };
+                               };
+                       };
+
+                       ethernet-port@5 {
+                               reg = <5>;
+                               label = "cpu";
+                               ethernet = <&cp0_eth1>;
+                               phy-mode = "sgmii";
+
+                               fixed-link {
+                                       speed = <1000>;
+                                       full-duplex;
+                               };
+                       };
+
+                       ethernet-port@6 {
+                               reg = <6>;
+                               label = "lan6";
+                               phy-mode = "rgmii";
+
+                               /*
+                                * Because of mdio address conflict the
+                                * external phy is not readable.
+                                * Force a fixed link instead.
+                                */
+                               fixed-link {
+                                       speed = <1000>;
+                                       full-duplex;
+                               };
+                       };
+               };
+
+               mdio {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       switch0phy0: ethernet-phy@0 {
+                               reg = <0x0>;
+                       };
+
+                       switch0phy1: ethernet-phy@1 {
+                               reg = <0x1>;
+                               /*
+                                * Indirectly configure default behaviour
+                                * for port lan6 leds behind external phy.
+                                * Internal PHYs are not using page 3,
+                                * therefore writing to it is safe.
+                                */
+                               marvell,reg-init = <3 16 0xf000 0x0a61>;
+                       };
+
+                       switch0phy2: ethernet-phy@2 {
+                               reg = <0x2>;
+                       };
+
+                       switch0phy3: ethernet-phy@3 {
+                               reg = <0x3>;
+                       };
+
+                       switch0phy4: ethernet-phy@4 {
+                               reg = <0x4>;
+                       };
+               };
+
+               /*
+                * There is an external phy on the switch mdio bus.
+                * Because its mdio address collides with internal phys,
+                * it is not readable.
+                *
+                * mdio-external {
+                *      compatible = "marvell,mv88e6xxx-mdio-external";
+                *      #address-cells = <1>;
+                *      #size-cells = <0>;
+                *
+                *      ethernet-phy@1 {
+                *              reg = <0x1>;
+                *      };
+                * };
+                */
+       };
+};
+
+/* SRDS #4 - miniPCIe (CON2) */
+&cp0_pcie1 {
+       num-lanes = <1>;
+       phys = <&cp0_comphy4 1>;
+       /* dw-pcie inverts internally */
+       reset-gpios = <&expander0 2 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&cp0_pinctrl {
+       dsa_clk_pins: cp0-dsa-clk-pins {
+               marvell,pins = "mpp40";
+               marvell,function = "synce1";
+       };
+
+       dsa_pins: cp0-dsa-pins {
+               marvell,pins = "mpp27", "mpp29";
+               marvell,function = "gpio";
+       };
+
+       rear_button_pins: cp0-rear-button-pins {
+               marvell,pins = "mpp32";
+               marvell,function = "gpio";
+       };
+
+       cp0_spi1_cs1_pins: cp0-spi1-cs1-pins {
+               marvell,pins = "mpp12";
+               marvell,function = "spi1";
+       };
+};
+
+&cp0_spi1 {
+       /* add pin for chip-select 1 on mikrobus */
+       pinctrl-0 = <&cp0_spi1_pins &cp0_spi1_cs1_pins>;
+};
+
+/* USB-2.0 Host on Type-A connector */
+&cp0_usb3_1 {
+       phys = <&cp0_utmi1>;
+       phy-names = "utmi";
+       dr_mode = "host";
+       status = "okay";
+};
+
+&expander0 {
+       /* CON2 */
+       pcie1-0-clkreq-hog {
+               gpio-hog;
+               gpios = <4 GPIO_ACTIVE_LOW>;
+               input;
+               line-name = "pcie1.0-clkreq";
+       };
+
+       /* CON2 */
+       pcie1-0-w-disable-hog {
+               gpio-hog;
+               gpios = <7 GPIO_ACTIVE_LOW>;
+               output-low;
+               line-name = "pcie1.0-w-disable";
+       };
+};
diff --git a/src/arm64/marvell/cn9130-cf.dtsi b/src/arm64/marvell/cn9130-cf.dtsi
new file mode 100644 (file)
index 0000000..ad0ab34
--- /dev/null
@@ -0,0 +1,197 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
+ *
+ * DTS for common base of SolidRun CN9130 Clearfog Base and Pro.
+ *
+ */
+
+/ {
+       aliases {
+               /* label nics same order as armada 388 clearfog */
+               ethernet0 = &cp0_eth2;
+               ethernet1 = &cp0_eth1;
+               ethernet2 = &cp0_eth0;
+               i2c1 = &cp0_i2c1;
+               mmc1 = &cp0_sdhci0;
+       };
+
+       reg_usb3_vbus0: regulator-usb3-vbus0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vbus0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpios = <&expander0 6 GPIO_ACTIVE_LOW>;
+       };
+
+       sfp: sfp {
+               compatible = "sff,sfp";
+               i2c-bus = <&cp0_i2c1>;
+               los-gpios = <&expander0 12 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&expander0 15 GPIO_ACTIVE_LOW>;
+               tx-disable-gpios = <&expander0 14 GPIO_ACTIVE_HIGH>;
+               tx-fault-gpios = <&expander0 13 GPIO_ACTIVE_HIGH>;
+               maximum-power-milliwatt = <2000>;
+       };
+};
+
+/* SRDS #2 - SFP+ 10GE */
+&cp0_eth0 {
+       managed = "in-band-status";
+       phys = <&cp0_comphy2 0>;
+       phy-mode = "10gbase-r";
+       sfp = <&sfp>;
+       status = "okay";
+};
+
+&cp0_i2c0 {
+       expander0: gpio-expander@20 {
+               compatible = "nxp,pca9555";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               pinctrl-0 = <&expander0_pins>;
+               pinctrl-names = "default";
+               interrupt-parent = <&cp0_gpio1>;
+               interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
+
+               /* CON3 */
+               pcie2-0-clkreq-hog {
+                       gpio-hog;
+                       gpios = <0 GPIO_ACTIVE_LOW>;
+                       input;
+                       line-name = "pcie2.0-clkreq";
+               };
+
+               /* CON3 */
+               pcie2-0-w-disable-hog {
+                       gpio-hog;
+                       gpios = <3 GPIO_ACTIVE_LOW>;
+                       output-low;
+                       line-name = "pcie2.0-w-disable";
+               };
+
+               usb3-ilimit-hog {
+                       gpio-hog;
+                       gpios = <5 GPIO_ACTIVE_LOW>;
+                       input;
+                       line-name = "usb3-current-limit";
+               };
+
+               m2-devslp-hog {
+                       gpio-hog;
+                       gpios = <11 GPIO_ACTIVE_HIGH>;
+                       output-low;
+                       line-name = "m.2 devslp";
+               };
+       };
+
+       /* The MCP3021 supports standard and fast modes */
+       adc@4c {
+               compatible = "microchip,mcp3021";
+               reg = <0x4c>;
+       };
+
+       carrier_eeprom: eeprom@52 {
+               compatible = "atmel,24c02";
+               reg = <0x52>;
+               pagesize = <8>;
+       };
+};
+
+&cp0_i2c1 {
+       /*
+        * Routed to SFP, M.2, mikrobus, and miniPCIe
+        * SFP limits this to 100kHz, and requires an AT24C01A/02/04 with
+        *  address pins tied low, which takes addresses 0x50 and 0x51.
+        * Mikrobus doesn't specify beyond an I2C bus being present.
+        * PCIe uses ARP to assign addresses, or 0x63-0x64.
+        */
+       clock-frequency = <100000>;
+       pinctrl-0 = <&cp0_i2c1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+/* SRDS #5 - miniPCIe (CON3) */
+&cp0_pcie2 {
+       num-lanes = <1>;
+       phys = <&cp0_comphy5 2>;
+       /* dw-pcie inverts internally */
+       reset-gpios = <&expander0 1 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&cp0_pinctrl {
+       cp0_i2c1_pins: cp0-i2c1-pins {
+               marvell,pins = "mpp35", "mpp36";
+               marvell,function = "i2c1";
+       };
+
+       cp0_mmc0_pins: cp0-mmc0-pins {
+               marvell,pins = "mpp43", "mpp56", "mpp57", "mpp58",
+                              "mpp59", "mpp60", "mpp61";
+               marvell,function = "sdio";
+       };
+
+       mikro_spi_pins: cp0-spi1-cs1-pins {
+               marvell,pins = "mpp12";
+               marvell,function = "spi1";
+       };
+
+       mikro_uart_pins: cp0-uart-pins {
+               marvell,pins = "mpp2", "mpp3";
+               marvell,function = "uart1";
+       };
+
+       expander0_pins: cp0-expander0-pins {
+               marvell,pins = "mpp4";
+               marvell,function = "gpio";
+       };
+};
+
+/* SRDS #0 - SATA on M.2 connector */
+&cp0_sata0 {
+       phys = <&cp0_comphy0 1>;
+       status = "okay";
+
+       /* only port 1 is available */
+       /delete-node/ sata-port@0;
+};
+
+/* microSD */
+&cp0_sdhci0 {
+       pinctrl-0 = <&cp0_mmc0_pins>;
+       pinctrl-names = "default";
+       bus-width = <4>;
+       no-1-8-v;
+       status = "okay";
+};
+
+&cp0_spi1 {
+       /* CS1 for mikrobus */
+       pinctrl-0 = <&cp0_spi1_pins &mikro_spi_pins>;
+};
+
+/*
+ * SRDS #1 - USB-3.0 Host on Type-A connector
+ * USB-2.0 Host on mPCI-e connector (CON3)
+ */
+&cp0_usb3_0 {
+       phys = <&cp0_comphy1 0>, <&cp0_utmi0>;
+       phy-names = "comphy", "utmi";
+       vbus-supply = <&reg_usb3_vbus0>;
+       dr_mode = "host";
+       status = "okay";
+};
+
+&cp0_utmi {
+       status = "okay";
+};
+
+/* mikrobus uart */
+&cp0_uart0 {
+       pinctrl-0 = <&mikro_uart_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
diff --git a/src/arm64/marvell/cn9130-sr-som.dtsi b/src/arm64/marvell/cn9130-sr-som.dtsi
new file mode 100644 (file)
index 0000000..4676e34
--- /dev/null
@@ -0,0 +1,160 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
+ *
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "SolidRun CN9130 SoM";
+       compatible = "solidrun,cn9130-sr-som", "marvell,cn9130";
+
+       aliases {
+               ethernet0 = &cp0_eth0;
+               ethernet1 = &cp0_eth1;
+               ethernet2 = &cp0_eth2;
+               i2c0 = &cp0_i2c0;
+               mmc0 = &ap_sdhci0;
+               rtc0 = &cp0_rtc;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       v_1_8: regulator-1-8 {
+               compatible = "regulator-fixed";
+               regulator-name = "1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       /* requires assembly of R9307 */
+       vhv: regulator-vhv-1-8 {
+               compatible = "regulator-fixed";
+               regulator-name = "vhv-1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               pinctrl-0 = <&cp0_reg_vhv_pins>;
+               pinctrl-names = "default";
+               gpios = <&cp0_gpio2 9 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+&ap_pinctrl {
+       ap_mmc0_pins: ap-mmc0-pins {
+               marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3", "mpp4", "mpp5",
+                                          "mpp6", "mpp7", "mpp8", "mpp9", "mpp10", "mpp12";
+               marvell,function = "sdio";
+               /*
+                * mpp12 is emmc reset, function should be sdio (hw_rst),
+                * but pinctrl-mvebu does not support this.
+                *
+                * From pinctrl-mvebu.h:
+                * "The name will be used to switch to this setting in DT description, e.g.
+                * marvell,function = "uart2". subname is only for debugging purposes."
+                */
+       };
+};
+
+&ap_sdhci0 {
+       bus-width = <8>;
+       pinctrl-0 = <&ap_mmc0_pins>;
+       pinctrl-names = "default";
+       vqmmc-supply = <&v_1_8>;
+       status = "okay";
+};
+
+&cp0_ethernet {
+       status = "okay";
+};
+
+/* for assembly with phy */
+&cp0_eth2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp0_eth2_pins>;
+       phy-mode = "rgmii-id";
+       phy = <&cp0_eth2_phy>;
+       status = "okay";
+};
+
+&cp0_i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp0_i2c0_pins>;
+       clock-frequency = <100000>;
+       status = "okay";
+
+       som_eeprom: eeprom@53 {
+               compatible = "atmel,24c02";
+               reg = <0x53>;
+               pagesize = <8>;
+       };
+};
+
+&cp0_mdio {
+       pinctrl-0 = <&cp0_mdio_pins>;
+       status = "okay";
+
+       /* assembly option */
+       cp0_eth2_phy: ethernet-phy@0 {
+               reg = <0>;
+       };
+};
+
+&cp0_spi1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp0_spi1_pins>;
+       /* max speed limited by a mux */
+       spi-max-frequency = <1800000000>;
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               /* read command supports max. 50MHz */
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&cp0_syscon0 {
+       cp0_pinctrl: pinctrl {
+               compatible = "marvell,cp115-standalone-pinctrl";
+
+               cp0_eth2_pins: cp0-ge2-rgmii-pins {
+                       marvell,pins = "mpp44", "mpp45", "mpp46", "mpp47",
+                                      "mpp48", "mpp49", "mpp50", "mpp51",
+                                      "mpp52", "mpp53", "mpp54", "mpp55";
+                       /* docs call it "ge2", but cp110-pinctrl "ge1" */
+                       marvell,function = "ge1";
+               };
+
+               cp0_i2c0_pins: cp0-i2c0-pins {
+                       marvell,pins = "mpp37", "mpp38";
+                       marvell,function = "i2c0";
+               };
+
+               cp0_mdio_pins: cp0-mdio-pins {
+                       marvell,pins = "mpp40", "mpp41";
+                       marvell,function = "ge";
+               };
+
+               cp0_spi1_pins: cp0-spi1-pins {
+                       marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16";
+                       marvell,function = "spi1";
+               };
+
+               cp0_reg_vhv_pins: cp0-reg-vhv-pins {
+                       marvell,pins = "mpp41";
+                       marvell,function = "gpio";
+               };
+       };
+};
+
+/* AP default console */
+&uart0 {
+       pinctrl-0 = <&uart0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
diff --git a/src/arm64/marvell/cn9131-cf-solidwan.dts b/src/arm64/marvell/cn9131-cf-solidwan.dts
new file mode 100644 (file)
index 0000000..b1ea7dc
--- /dev/null
@@ -0,0 +1,637 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
+ *
+ * DTS for SolidRun CN9130 Clearfog Base.
+ *
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+#include "cn9130.dtsi"
+#include "cn9130-sr-som.dtsi"
+
+/*
+ * Instantiate the external CP115
+ */
+
+#define CP11X_NAME             cp1
+#define CP11X_BASE             f4000000
+#define CP11X_PCIEx_MEM_BASE(iface) (0xe2000000 + (iface * 0x1000000))
+#define CP11X_PCIEx_MEM_SIZE(iface) 0xf00000
+#define CP11X_PCIE0_BASE       f4600000
+#define CP11X_PCIE1_BASE       f4620000
+#define CP11X_PCIE2_BASE       f4640000
+
+#include "armada-cp115.dtsi"
+
+#undef CP11X_NAME
+#undef CP11X_BASE
+#undef CP11X_PCIEx_MEM_BASE
+#undef CP11X_PCIEx_MEM_SIZE
+#undef CP11X_PCIE0_BASE
+#undef CP11X_PCIE1_BASE
+#undef CP11X_PCIE2_BASE
+
+/ {
+       model = "SolidRun CN9131 SolidWAN";
+       compatible = "solidrun,cn9131-solidwan",
+                    "solidrun,cn9130-sr-som", "marvell,cn9130";
+
+       aliases {
+               ethernet0 = &cp1_eth1;
+               ethernet1 = &cp1_eth2;
+               ethernet2 = &cp0_eth1;
+               ethernet3 = &cp0_eth2;
+               ethernet4 = &cp0_eth0;
+               ethernet5 = &cp1_eth0;
+               gpio0 = &ap_gpio;
+               gpio1 = &cp0_gpio1;
+               gpio2 = &cp0_gpio2;
+               gpio3 = &cp1_gpio1;
+               gpio4 = &cp1_gpio2;
+               gpio5 = &expander0;
+               i2c0 = &cp0_i2c0;
+               i2c1 = &cp0_i2c1;
+               i2c2 = &cp1_i2c1;
+               mmc0 = &ap_sdhci0;
+               mmc1 = &cp0_sdhci0;
+               rtc0 = &cp0_rtc;
+               rtc1 = &carrier_rtc;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&cp0_led_pins &cp1_led_pins>;
+
+               /* for sfp-1 (J42) */
+               led-sfp1-activity {
+                       label = "sfp1:green";
+                       gpios = <&cp0_gpio1 7 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* for sfp-1 (J42) */
+               led-sfp1-link {
+                       label = "sfp1:yellow";
+                       gpios = <&cp0_gpio1 4 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* (J28) */
+               led-sfp0-activity {
+                       label = "sfp0:green";
+                       gpios = <&cp1_gpio2 22 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* (J28) */
+               led-sfp0-link {
+                       label = "sfp0:yellow";
+                       gpios = <&cp1_gpio2 23 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       /* Type-A port on J53 */
+       reg_usb_a_vbus0: regulator-usb-a-vbus0 {
+               compatible = "regulator-fixed";
+               pinctrl-0 = <&cp0_reg_usb_a_vbus0_pins>;
+               pinctrl-names = "default";
+               regulator-name = "vbus0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpios = <&cp0_gpio1 27 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       reg_usb_a_vbus1: regulator-usb-a-vbus1 {
+               compatible = "regulator-fixed";
+               pinctrl-0 = <&cp0_reg_usb_a_vbus1_pins>;
+               pinctrl-names = "default";
+               regulator-name = "vbus1";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpios = <&cp0_gpio1 28 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       sfp0: sfp-0 {
+               compatible = "sff,sfp";
+               pinctrl-0 = <&cp0_sfp0_pins>;
+               pinctrl-names = "default";
+               i2c-bus = <&cp0_i2c1>;
+               los-gpios = <&cp0_gpio2 2 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&cp0_gpio2 0 GPIO_ACTIVE_LOW>;
+               tx-disable-gpios = <&cp0_gpio2 1 GPIO_ACTIVE_HIGH>;
+               tx-fault-gpios = <&cp0_gpio1 31 GPIO_ACTIVE_HIGH>;
+               maximum-power-milliwatt = <2000>;
+       };
+
+       sfp1: sfp-1 {
+               compatible = "sff,sfp";
+               pinctrl-0 = <&cp1_sfp1_pins>;
+               pinctrl-names = "default";
+               i2c-bus = <&cp1_i2c1>;
+               los-gpios = <&cp1_gpio2 2 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&cp1_gpio2 18 GPIO_ACTIVE_LOW>;
+               tx-disable-gpios = <&cp1_gpio2 1 GPIO_ACTIVE_HIGH>;
+               tx-fault-gpios = <&cp1_gpio2 17 GPIO_ACTIVE_HIGH>;
+               maximum-power-milliwatt = <2000>;
+       };
+};
+
+&cp0_ethernet {
+       status = "okay";
+};
+
+/* SRDS #2 - SFP+ 10GE */
+&cp0_eth0 {
+       managed = "in-band-status";
+       phy-mode = "10gbase-r";
+       phys = <&cp0_comphy2 0>;
+       sfp = <&sfp0>;
+       status = "okay";
+};
+
+/* SRDS #3 - SGMII 1GE */
+&cp0_eth1 {
+       managed = "in-band-status";
+       phy-mode = "sgmii";
+       /* Without mdio phy access rely on sgmii auto-negotiation. */
+       phys = <&cp0_comphy3 1>;
+       status = "okay";
+};
+
+/* SRDS #1 - SGMII */
+&cp0_eth2 {
+       /delete-property/ pinctrl-0;
+       /delete-property/ pinctrl-names;
+       managed = "in-band-status";
+       phy-mode = "sgmii";
+       phy = <&cp0_phy1>;
+       phys = <&cp0_comphy1 2>;
+};
+
+&cp0_gpio1 {
+       pcie0-0-w-disable-hog {
+               gpio-hog;
+               gpios = <6 GPIO_ACTIVE_LOW>;
+               output-low;
+               line-name = "pcie0.0-w-disable";
+       };
+
+       /* J34 */
+       m2-full-card-power-off-hog {
+               gpio-hog;
+               gpios = <8 GPIO_ACTIVE_LOW>;
+               output-low;
+               line-name = "m2-full-card-power-off";
+       };
+};
+
+&cp0_i2c0 {
+       /* assembly option */
+       fan-controller@18 {
+               compatible = "ti,amc6821";
+               reg = <0x18>;
+       };
+
+       expander0: gpio@41 {
+               compatible = "nxp,pca9536";
+               reg = <0x41>;
+
+               usb-a-vbus0-ilimit-hog {
+                       gpio-hog;
+                       gpios = <0 GPIO_ACTIVE_LOW>;
+                       input;
+                       line-name = "vbus0-ilimit";
+               };
+
+               /* duplicate connection, controlled by soc gpio */
+               usb-vbus0-enable-hog {
+                       gpio-hog;
+                       gpios = <1 GPIO_ACTIVE_HIGH>;
+                       input;
+                       line-name = "vbus0-enable";
+               };
+
+               usb-a-vbus1-ilimit-hog {
+                       gpio-hog;
+                       gpios = <2 GPIO_ACTIVE_LOW>;
+                       input;
+                       line-name = "vbus1-ilimit";
+               };
+
+               /* duplicate connection, controlled by soc gpio */
+               usb-vbus1-enable-hog {
+                       gpio-hog;
+                       gpios = <3 GPIO_ACTIVE_HIGH>;
+                       input;
+                       line-name = "vbus1-enable";
+               };
+       };
+
+       carrier_eeprom: eeprom@52 {
+               compatible = "atmel,24c02";
+               reg = <0x52>;
+               pagesize = <8>;
+       };
+
+       /* usb-hub@60 */
+
+       /* assembly option */
+       carrier_rtc: rtc@68 {
+               compatible = "st,m41t83";
+               reg = <0x68>;
+               pinctrl-0 = <&cp1_rtc_pins>;
+               pinctrl-names = "default";
+               interrupt-parent = <&cp1_gpio1>;
+               interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&cp1_gpio1 13 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&cp0_i2c1 {
+       /*
+        * Routed to SFP.
+        * Limit to 100kHz for compatibility with SFP modules,
+        * featuring AT24C01A/02/04 at addresses 0x50/0x51.
+        */
+       clock-frequency = <100000>;
+       pinctrl-0 = <&cp0_i2c1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&cp0_mdio {
+       /*
+        * SoM + Carrier each have a PHY at address 0.
+        * Remove the SoM phy node, and skip adding the carrier node.
+        * SGMII Auto-Negotation is enabled by bootloader for
+        * autonomous operation without mdio control.
+        */
+       /delete-node/ ethernet-phy@0;
+
+       /* U17016 */
+       cp0_phy1: ethernet-phy@1 {
+               reg = <1>;
+               /*
+                * Configure LEDs default behaviour:
+                * - LED[0]: link is 1000Mbps: On (yellow)
+                * - LED[1]: link/activity: On/blink (green)
+                * - LED[2]: high impedance (floating)
+                */
+               marvell,reg-init = <3 16 0xf000 0x0a17>;
+
+               leds {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_YELLOW>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+               };
+       };
+};
+
+/* SRDS #0 - miniPCIe */
+&cp0_pcie0 {
+       num-lanes = <1>;
+       phys = <&cp0_comphy0 0>;
+       status = "okay";
+};
+
+/* SRDS #5 - M.2 B-Key (J34) */
+&cp0_pcie2 {
+       num-lanes = <1>;
+       phys = <&cp0_comphy5 2>;
+       status = "okay";
+};
+
+&cp0_pinctrl {
+       pinctrl-0 = <&cp0_m2_0_shutdown_pins &cp0_mpcie_rfkill_pins>;
+       pinctrl-names = "default";
+
+       cp0_i2c1_pins: cp0-i2c1-pins {
+               marvell,pins = "mpp35", "mpp36";
+               marvell,function = "i2c1";
+       };
+
+       cp0_led_pins: cp0-led-pins {
+               marvell,pins = "mpp4", "mpp7";
+               marvell,function = "gpio";
+       };
+
+       cp0_m2_0_shutdown_pins: cp0-m2-0-shutdown-pins {
+               marvell,pins = "mpp8";
+               marvell,function = "gpio";
+       };
+
+       cp0_mmc0_pins: cp0-mmc0-pins {
+               marvell,pins = "mpp43", "mpp56", "mpp57", "mpp58",
+                              "mpp59", "mpp60", "mpp61";
+               marvell,function = "sdio";
+       };
+
+       cp0_mpcie_rfkill_pins: cp0-mpcie-rfkill-pins {
+               marvell,pins = "mpp6";
+               marvell,function = "gpio";
+       };
+
+       cp0_reg_usb_a_vbus0_pins: cp0-reg-usb-a-vbus0-pins {
+               marvell,pins = "mpp27";
+               marvell,function = "gpio";
+       };
+
+       cp0_reg_usb_a_vbus1_pins: cp0-reg-usb-a-vbus1-pins {
+               marvell,pins = "mpp28";
+               marvell,function = "gpio";
+       };
+
+       cp0_sfp0_pins: cp0-sfp0-pins {
+               marvell,pins = "mpp31", "mpp32", "mpp33", "mpp34";
+               marvell,function = "gpio";
+       };
+
+       cp0_spi1_cs1_pins: cp0-spi1-cs1-pins {
+               marvell,pins = "mpp12";
+               marvell,function = "spi1";
+       };
+};
+
+/* microSD */
+&cp0_sdhci0 {
+       pinctrl-0 = <&cp0_mmc0_pins>;
+       pinctrl-names = "default";
+       bus-width = <4>;
+       no-1-8-v;
+       status = "okay";
+};
+
+&cp0_spi1 {
+       /* add pin for chip-select 1 */
+       pinctrl-0 = <&cp0_spi1_pins &cp0_spi1_cs1_pins>;
+
+       flash@1 {
+               compatible = "jedec,spi-nor";
+               reg = <1>;
+               /* read command supports max. 50MHz */
+               spi-max-frequency = <50000000>;
+       };
+};
+
+/* USB-2.0 Host to USB-Hub */
+&cp0_usb3_0 {
+       phys = <&cp0_utmi0>;
+       phy-names = "utmi";
+       dr_mode = "host";
+       status = "okay";
+};
+
+/* SRDS #4 - USB-3.0 Host to USB-Hub */
+&cp0_usb3_1 {
+       phys = <&cp0_comphy4 1>, <&cp0_utmi1>;
+       phy-names = "comphy", "utmi";
+       dr_mode = "host";
+       status = "okay";
+};
+
+&cp0_utmi {
+       status = "okay";
+};
+
+&cp0_utmi1 {
+       status = "disabled";
+};
+
+&cp1_ethernet {
+       status = "okay";
+};
+
+/* SRDS #4 - SFP+ 10GE */
+&cp1_eth0 {
+       managed = "in-band-status";
+       phy-mode = "10gbase-r";
+       phys = <&cp1_comphy4 0>;
+       sfp = <&sfp1>;
+       status = "okay";
+};
+
+/* SRDS #3 - SGMII 1GE */
+&cp1_eth1 {
+       managed = "in-band-status";
+       phy-mode = "sgmii";
+       phy = <&cp1_phy0>;
+       phys = <&cp0_comphy3 1>;
+       status = "okay";
+};
+
+/* SRDS #5 - SGMII 1GE */
+&cp1_eth2 {
+       managed = "in-band-status";
+       phy-mode = "sgmii";
+       phy = <&cp1_phy1>;
+       phys = <&cp0_comphy5 2>;
+       status = "okay";
+};
+
+&cp1_gpio1 {
+       status = "okay";
+
+       /* J30 */
+       m2-full-card-power-off-hog-0 {
+               gpio-hog;
+               gpios = <29 GPIO_ACTIVE_LOW>;
+               output-low;
+               line-name = "m2-full-card-power-off";
+       };
+
+       /* J44 */
+       m2-full-card-power-off-hog-1 {
+               gpio-hog;
+               gpios = <30 GPIO_ACTIVE_LOW>;
+               output-low;
+               line-name = "m2-full-card-power-off";
+       };
+};
+
+&cp1_gpio2 {
+       status = "okay";
+};
+
+&cp1_i2c1 {
+       /*
+        * Routed to SFP.
+        * Limit to 100kHz for compatibility with SFP modules,
+        * featuring AT24C01A/02/04 at addresses 0x50/0x51.
+        */
+       clock-frequency = <100000>;
+       pinctrl-0 = <&cp1_i2c1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&cp1_mdio {
+       pinctrl-0 = <&cp1_mdio_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       cp1_phy0: ethernet-phy@0 {
+               reg = <0>;
+               /*
+                * Configure LEDs default behaviour:
+                * - LED[0]: link is 1000Mbps: On (yellow)
+                * - LED[1]: link/activity: On/blink (green)
+                * - LED[2]: high impedance (floating)
+                */
+               marvell,reg-init = <3 16 0xf000 0x0a17>;
+
+               leds {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_YELLOW>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+               };
+       };
+
+       cp1_phy1: ethernet-phy@1 {
+               reg = <1>;
+               /*
+                * Configure LEDs default behaviour:
+                * - LED[0]: link is 1000Mbps: On (yellow)
+                * - LED[1]: link/activity: On/blink (green)
+                * - LED[2]: high impedance (floating)
+                */
+               marvell,reg-init = <3 16 0xf000 0x0a17>;
+
+               leds {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_YELLOW>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+               };
+       };
+};
+
+/* SRDS #0 - M.2 (J30) */
+&cp1_pcie0 {
+       num-lanes = <1>;
+       phys = <&cp1_comphy0 0>;
+       status = "okay";
+};
+
+&cp1_rtc {
+       status = "disabled";
+};
+
+/* SRDS #1 - SATA on M.2 (J44) */
+&cp1_sata0 {
+       phys = <&cp1_comphy1 0>;
+       status = "okay";
+
+       /* only port 0 is available */
+       /delete-node/ sata-port@1;
+};
+
+&cp1_syscon0 {
+       cp1_pinctrl: pinctrl {
+               compatible = "marvell,cp115-standalone-pinctrl";
+               pinctrl-0 = <&cp1_m2_1_shutdown_pins &cp1_m2_2_shutdown_pins>;
+               pinctrl-names = "default";
+
+               cp1_i2c1_pins: cp0-i2c1-pins {
+                       marvell,pins = "mpp35", "mpp36";
+                       marvell,function = "i2c1";
+               };
+
+               cp1_led_pins: cp1-led-pins {
+                       marvell,pins = "mpp54", "mpp55";
+                       marvell,function = "gpio";
+               };
+
+               cp1_m2_1_shutdown_pins: cp1-m2-1-shutdown-pins {
+                       marvell,pins = "mpp29";
+                       marvell,function = "gpio";
+               };
+
+               cp1_m2_2_shutdown_pins: cp1-m2-2-shutdown-pins {
+                       marvell,pins = "mpp30";
+                       marvell,function = "gpio";
+               };
+
+               cp1_mdio_pins: cp1-mdio-pins {
+                       marvell,pins = "mpp37", "mpp38";
+                       marvell,function = "ge";
+               };
+
+               cp1_rtc_pins: cp1-rtc-pins {
+                       marvell,pins = "mpp12", "mpp13";
+                       marvell,function = "gpio";
+               };
+
+               cp1_sfp1_pins: cp1-sfp1-pins {
+                       marvell,pins = "mpp33", "mpp34", "mpp49", "mpp50";
+                       marvell,function = "gpio";
+               };
+       };
+};
+
+/*
+ * SRDS #2 - USB-3.0 Host to M.2 (J44)
+ * USB-2.0 Host to M.2 (J30)
+ */
+&cp1_usb3_0 {
+       phys = <&cp1_comphy2 0>, <&cp1_utmi0>;
+       phy-names = "comphy", "utmi";
+       dr_mode = "host";
+       status = "okay";
+};
+
+/* USB-2.0 Host to M.2 (J44) */
+&cp1_usb3_1 {
+       phys = <&cp1_utmi1>;
+       phy-names = "utmi";
+       dr_mode = "host";
+       status = "okay";
+};
+
+&cp1_utmi {
+       status = "okay";
+};
diff --git a/src/arm64/marvell/cn9132-clearfog.dts b/src/arm64/marvell/cn9132-clearfog.dts
new file mode 100644 (file)
index 0000000..0f53745
--- /dev/null
@@ -0,0 +1,673 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
+ *
+ * DTS for SolidRun CN9132 Clearfog.
+ *
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+#include "cn9130.dtsi"
+#include "cn9132-sr-cex7.dtsi"
+
+/ {
+       model = "SolidRun CN9132 Clearfog";
+       compatible = "solidrun,cn9132-clearfog",
+                    "solidrun,cn9132-sr-cex7", "marvell,cn9130";
+
+       aliases {
+               ethernet1 = &cp0_eth2;
+               ethernet2 = &cp0_eth0;
+               ethernet3 = &cp2_eth0;
+               ethernet4 = &cp1_eth0;
+               i2c7 = &carrier_mpcie_i2c;
+               i2c8 = &carrier_ptp_i2c;
+               mmc1 = &cp0_sdhci0;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&cp1_wake0_pins>;
+
+               button-0 {
+                       label = "SW2";
+                       gpios = <&cp1_gpio2 8 GPIO_ACTIVE_LOW>;
+                       linux,can-disable;
+                       linux,code = <BTN_2>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&cp1_batlow_pins &cp2_rsvd4_pins>;
+
+               /* LED11 */
+               led-io-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DISK;
+                       function-enumerator = <0>;
+                       default-state = "off";
+                       gpios = <&cp1_gpio1 11 GPIO_ACTIVE_HIGH>;
+               };
+
+               /* LED12 */
+               led-io-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_DISK;
+                       function-enumerator = <1>;
+                       default-state = "off";
+                       gpios = <&cp2_gpio1 4 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       /* CON4 W_DISABLE1/W_DISABLE2 */
+       rfkill-m2-wlan {
+               compatible = "rfkill-gpio";
+               label = "m.2 wlan (CON4)";
+               radio-type = "wlan";
+               pinctrl-names = "default";
+               pinctrl-0 = <&cp1_10g_phy_rst_01_pins>;
+               /* rfkill-gpio inverts internally */
+               shutdown-gpios = <&cp1_gpio2 11 GPIO_ACTIVE_HIGH>;
+       };
+
+       /* CON5 W_DISABLE1/W_DISABLE2 */
+       rfkill-m2-wlan {
+               compatible = "rfkill-gpio";
+               label = "m.2 wlan (CON5)";
+               radio-type = "wlan";
+               pinctrl-names = "default";
+               pinctrl-0 = <&cp1_10g_phy_rst_23_pins>;
+               /* rfkill-gpio inverts internally */
+               shutdown-gpios = <&cp1_gpio2 10 GPIO_ACTIVE_HIGH>;
+       };
+
+       /* J21 W_DISABLE1 */
+       rfkill-m2-wwan {
+               compatible = "rfkill-gpio";
+               label = "m.2 wwan (J21)";
+               radio-type = "wwan";
+               pinctrl-names = "default";
+               pinctrl-0 = <&cp2_rsvd3_pins>;
+               /* rfkill-gpio inverts internally */
+               shutdown-gpios = <&cp2_gpio1 3 GPIO_ACTIVE_HIGH>;
+       };
+
+       /* J21 W_DISABLE1 */
+       rfkill-m2-gnss {
+               compatible = "rfkill-gpio";
+               label = "m.2 gnss (J21)";
+               radio-type = "gps";
+               pinctrl-names = "default";
+               pinctrl-0 = <&cp2_rsvd8_pins>;
+               /* rfkill-gpio inverts internally */
+               shutdown-gpios = <&cp2_gpio1 8 GPIO_ACTIVE_HIGH>;
+       };
+
+       /* J14 W_DISABLE */
+       rfkill-mpcie-wlan {
+               compatible = "rfkill-gpio";
+               label = "mpcie wlan (J14)";
+               radio-type = "wlan";
+               pinctrl-names = "default";
+               pinctrl-0 = <&cp2_rsvd2_pins>;
+               /* rfkill-gpio inverts internally */
+               shutdown-gpios = <&cp2_gpio1 2 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp: sfp {
+               compatible = "sff,sfp";
+               i2c-bus = <&com_10g_sfp_i2c0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&com_10g_int0_pins>;
+               mod-def0-gpios = <&cp0_gpio1 24 GPIO_ACTIVE_LOW>;
+               maximum-power-milliwatt = <2000>;
+       };
+};
+
+&com_smbus {
+       /* This bus is also routed to STM32 BMC Microcontroller (U2) */
+
+       power-sensor@40 {
+               compatible = "ti,ina220";
+               reg = <0x40>;
+               #io-channel-cells = <1>;
+               label = "vdd_12v0";
+               shunt-resistor = <2000>;
+       };
+
+       adc@48 {
+               compatible = "ti,tla2021";
+               reg = <0x48>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* supplied by chaoskey hardware noise generator circuit */
+               channel@0 {
+                       reg = <0>;
+               };
+       };
+};
+
+&cp0_eth_phy0 {
+       /*
+        * Configure LEDs default behaviour:
+        * - LED[0]: link is 1000Mbps: On (yellow): 0111
+        * - LED[1]: link/activity: On/Blink (green): 0001
+        * - LED[2]: Off (green): 1000
+        */
+       marvell,reg-init = <3 16 0xf000 0x0817>;
+
+       leds {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@0 {
+                       /* link */
+                       reg = <0>;
+                       color = <LED_COLOR_ID_YELLOW>;
+                       function = LED_FUNCTION_LAN;
+                       default-state = "keep";
+               };
+
+               led@1 {
+                       /* act */
+                       reg = <1>;
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_LAN;
+                       default-state = "keep";
+               };
+
+               led@2 {
+                       /* 1000 */
+                       reg = <2>;
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_LAN;
+                       default-state = "keep";
+               };
+       };
+};
+
+/* SRDS #4 - 10GE */
+&cp0_eth0 {
+       phys = <&cp0_comphy4 0>;
+       phy-mode = "10gbase-r";
+       managed = "in-band-status";
+       sfp = <&sfp>;
+       status = "okay";
+};
+
+&cp0_eth2 {
+       phy-mode = "2500base-x";
+       phys = <&cp0_comphy5 2>;
+       status = "okay";
+
+       fixed-link {
+               speed = <2500>;
+               full-duplex;
+               pause;
+       };
+};
+
+&cp0_i2c1 {
+       /*
+        * Both COM and Carrier Board have a PCA9547 i2c mux at 0x77.
+        * Describe them as a single device merging each child bus.
+        */
+
+       i2c-mux@77 {
+               i2c@0 {
+                       /* Routed to Full PCIe (J4) */
+               };
+
+               i2c@1 {
+                       /* Routed to USB Hub (U29) */
+               };
+
+               i2c@2 {
+                       /* Routed to M.2 (CON4) */
+               };
+
+               i2c@3 {
+                       /* Routed to M.2 (CON5) */
+               };
+
+               i2c@4 {
+                       /* Routed to M.2 (J21) */
+               };
+
+               carrier_mpcie_i2c: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+
+                       /* Routed to mini-PCIe (J14) */
+               };
+
+               carrier_ptp_i2c: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+
+                       /* Routed to various optional PTP related components */
+               };
+       };
+};
+
+&cp0_mdio {
+       ethernet-switch@4 {
+               compatible = "marvell,mv88e6085";
+               reg = <4>;
+
+               mdio {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       sw_phy1: ethernet-phy@1 {
+                               reg = <0x11>;
+                       };
+
+                       sw_phy2: ethernet-phy@2 {
+                               reg = <0x12>;
+                       };
+
+                       sw_phy3: ethernet-phy@3 {
+                               reg = <0x13>;
+                       };
+
+                       sw_phy4: ethernet-phy@4 {
+                               reg = <0x14>;
+                       };
+               };
+
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       ethernet-port@1 {
+                               reg = <1>;
+                               label = "lan1";
+                               phy-handle = <&sw_phy1>;
+                               phy-mode = "internal";
+
+                               leds {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       led@0 {
+                                               reg = <0>;
+                                               color = <LED_COLOR_ID_GREEN>;
+                                               function = LED_FUNCTION_LAN;
+                                               default-state = "keep";
+                                       };
+
+                                       led@1 {
+                                               reg = <1>;
+                                               color = <LED_COLOR_ID_YELLOW>;
+                                               function = LED_FUNCTION_LAN;
+                                               default-state = "keep";
+                                       };
+                               };
+                       };
+
+                       ethernet-port@2 {
+                               reg = <2>;
+                               label = "lan2";
+                               phy-handle = <&sw_phy2>;
+                               phy-mode = "internal";
+
+                               leds {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       led@0 {
+                                               reg = <0>;
+                                               color = <LED_COLOR_ID_GREEN>;
+                                               function = LED_FUNCTION_LAN;
+                                               default-state = "keep";
+                                       };
+
+                                       led@1 {
+                                               reg = <1>;
+                                               color = <LED_COLOR_ID_YELLOW>;
+                                               function = LED_FUNCTION_LAN;
+                                               default-state = "keep";
+                                       };
+                               };
+                       };
+
+                       ethernet-port@3 {
+                               reg = <3>;
+                               label = "lan3";
+                               phy-handle = <&sw_phy3>;
+                               phy-mode = "internal";
+
+                               leds {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       led@0 {
+                                               reg = <0>;
+                                               color = <LED_COLOR_ID_GREEN>;
+                                               function = LED_FUNCTION_LAN;
+                                               default-state = "keep";
+                                       };
+
+                                       led@1 {
+                                               reg = <1>;
+                                               color = <LED_COLOR_ID_YELLOW>;
+                                               function = LED_FUNCTION_LAN;
+                                               default-state = "keep";
+                                       };
+                               };
+                       };
+
+                       ethernet-port@4 {
+                               reg = <4>;
+                               label = "lan4";
+                               phy-handle = <&sw_phy4>;
+                               phy-mode = "internal";
+
+                               leds {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       led@0 {
+                                               reg = <0>;
+                                               color = <LED_COLOR_ID_GREEN>;
+                                               function = LED_FUNCTION_LAN;
+                                               default-state = "keep";
+                                       };
+
+                                       led@1 {
+                                               reg = <1>;
+                                               color = <LED_COLOR_ID_YELLOW>;
+                                               function = LED_FUNCTION_LAN;
+                                               default-state = "keep";
+                                       };
+                               };
+                       };
+
+                       ethernet-port@5 {
+                               reg = <5>;
+                               label = "cpu";
+                               ethernet = <&cp0_eth2>;
+                               phy-mode = "2500base-x";
+
+                               fixed-link {
+                                       speed = <2500>;
+                                       full-duplex;
+                                       pause;
+                               };
+                       };
+               };
+       };
+};
+
+/* SRDS #0,#1,#2,#3 - PCIe */
+&cp0_pcie0 {
+       num-lanes = <4>;
+       phys = <&cp0_comphy0 0>, <&cp0_comphy1 0>, <&cp0_comphy2 0>, <&cp0_comphy3 0>;
+       status = "okay";
+};
+
+&cp0_pinctrl {
+       /*
+        * configure unused gpios exposed via pin headers:
+        * - J7-10: PWRBTN
+        */
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp0_pwrbtn_pins>;
+};
+
+/* microSD */
+&cp0_sdhci0 {
+       pinctrl-0 = <&cp0_mmc0_pins>, <&cp0_mmc0_cd_pins>;
+       pinctrl-names = "default";
+       bus-width = <4>;
+       no-1-8-v;
+       status = "okay";
+};
+
+&cp0_spi1 {
+       /* add CS1 */
+       pinctrl-0 = <&cp0_spi1_pins>, <&cp0_spi1_cs1_pins>;
+
+       flash@1 {
+               compatible = "jedec,spi-nor";
+               reg = <1>;
+               /* read command supports max. 50MHz */
+               spi-max-frequency = <50000000>;
+       };
+};
+
+/* J38 */
+&cp0_uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp0_uart2_pins>;
+       status = "okay";
+};
+
+&cp0_utmi {
+       /* M.2 "CON5" swaps D+/D- */
+       swap-dx-lanes = <1>;
+};
+
+&cp1_ethernet {
+       status = "okay";
+};
+
+/* SRDS #2 - 5GE */
+&cp1_eth0 {
+       phys = <&cp1_comphy2 0>;
+       phy-mode = "5gbase-r";
+       phy = <&cp1_eth_phy0>;
+       managed = "in-band-status";
+       status = "okay";
+};
+
+/* SRDS #0,#1 - PCIe */
+&cp1_pcie0 {
+       num-lanes = <2>;
+       phys = <&cp1_comphy0 0>, <&cp1_comphy1 0>;
+       status = "okay";
+};
+
+/* SRDS #4 - PCIe */
+&cp1_pcie1 {
+       num-lanes = <1>;
+       phys = <&cp1_comphy4 1>;
+       status = "okay";
+};
+
+/* SRDS #5 - PCIe */
+&cp1_pcie2 {
+       num-lanes = <1>;
+       phys = <&cp1_comphy5 2>;
+       status = "okay";
+};
+
+&cp1_pinctrl {
+       /*
+        * configure unused gpios exposed via pin headers:
+        * - J7-8: RSVD16
+        * - J7-10: THRM
+        * - J10-1: WAKE1
+        * - J10-2: SATA_ACT
+        * - J10-8: THERMTRIP
+        */
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp1_rsvd16_pins &cp1_sata_act_pins &cp1_thrm_irq_pins>,
+                   <&cp1_thrm_trip_pins &cp1_wake1_pins>;
+};
+
+/* SRDS #3 - SATA */
+&cp1_sata0 {
+       status = "okay";
+
+       /* only port 1 is available */
+       /delete-node/ sata-port@0;
+
+       sata-port@1 {
+               phys = <&cp1_comphy3 1>;
+       };
+};
+
+&cp1_utmi {
+       /* M.2 "CON4" swaps D+/D- */
+       swap-dx-lanes = <0>;
+};
+
+&cp1_xmdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp1_xmdio_pins>;
+       status = "okay";
+
+       cp1_eth_phy0: ethernet-phy@8 {
+               compatible = "ethernet-phy-ieee802.3-c45";
+               reg = <8>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&com_10g_int1_pins>;
+               interrupt-parent = <&cp1_gpio2>;
+               interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
+
+               leds {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_YELLOW>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+
+                       led@2 {
+                               reg = <2>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+               };
+       };
+};
+
+&cp2_ethernet {
+       status =  "okay";
+};
+
+/* SRDS #2 - 5GE */
+&cp2_eth0 {
+       phys = <&cp2_comphy2 0>;
+       phy-mode = "5gbase-r";
+       phy = <&cp2_eth_phy0>;
+       managed = "in-band-status";
+       status = "okay";
+};
+
+&cp2_gpio1 {
+       pinctrl-names= "default";
+       pinctrl-0 = <&cp2_rsvd9_pins>;
+
+       /* J21 */
+       m2-wwan-reset-hog {
+               gpio-hog;
+               gpios = <9 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+               output-low;
+               line-name = "m2-wwan-reset";
+       };
+};
+
+/* SRDS #0 - PCIe */
+&cp2_pcie0 {
+       num-lanes = <1>;
+       phys = <&cp2_comphy0 0>;
+       status = "okay";
+};
+
+/* SRDS #4 - PCIe */
+&cp2_pcie1 {
+       num-lanes = <1>;
+       phys = <&cp2_comphy4 1>;
+       status = "okay";
+};
+
+/* SRDS #5 - PCIe */
+&cp2_pcie2 {
+       num-lanes = <1>;
+       phys = <&cp2_comphy5 2>;
+       status = "okay";
+};
+
+&cp2_pinctrl {
+       /*
+        * configure unused gpios exposed via pin headers:
+        * - J7-1: RSVD10
+        * - J7-3: RSVD11
+        * - J7-5: RSVD56
+        * - J7-6: RSVD7
+        * - J7-7: RSVD27
+        * - J10-3: RSVD31
+        * - J10-5: RSVD5
+        * - J10-6: RSVD32
+        * - J10-7: RSVD0
+        * - J10-9: RSVD1
+        */
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp2_rsvd0_pins &cp2_rsvd1_pins &cp2_rsvd5_pins>,
+                   <&cp2_rsvd7_pins &cp2_rsvd10_pins &cp2_rsvd11_pins>,
+                   <&cp2_rsvd27_pins &cp2_rsvd31_pins &cp2_rsvd32_pins>,
+                   <&cp2_rsvd56_pins>;
+};
+
+/* SRDS #3 - SATA */
+&cp2_sata0 {
+       status = "okay";
+
+       /* only port 1 is available */
+       /delete-node/ sata-port@0;
+
+       sata-port@1 {
+               phys = <&cp2_comphy3 1>;
+       };
+};
+
+&cp2_xmdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp2_xmdio_pins>;
+       status = "okay";
+
+       cp2_eth_phy0: ethernet-phy@8 {
+               compatible = "ethernet-phy-ieee802.3-c45";
+               reg = <8>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&com_10g_int2_pins>;
+               interrupt-parent = <&cp2_gpio2>;
+               interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
+
+               leds {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_YELLOW>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+
+                       led@2 {
+                               reg = <2>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+               };
+       };
+};
diff --git a/src/arm64/marvell/cn9132-sr-cex7.dtsi b/src/arm64/marvell/cn9132-sr-cex7.dtsi
new file mode 100644 (file)
index 0000000..afc041c
--- /dev/null
@@ -0,0 +1,712 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
+ *
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+
+/*
+ * Instantiate the first external CP115
+ */
+
+#define CP11X_NAME             cp1
+#define CP11X_BASE             f4000000
+#define CP11X_PCIEx_MEM_BASE(iface) (0xe2000000 + (iface * 0x1000000))
+#define CP11X_PCIEx_MEM_SIZE(iface) 0xf00000
+#define CP11X_PCIE0_BASE       f4600000
+#define CP11X_PCIE1_BASE       f4620000
+#define CP11X_PCIE2_BASE       f4640000
+
+#include "armada-cp115.dtsi"
+
+#undef CP11X_NAME
+#undef CP11X_BASE
+#undef CP11X_PCIEx_MEM_BASE
+#undef CP11X_PCIEx_MEM_SIZE
+#undef CP11X_PCIE0_BASE
+#undef CP11X_PCIE1_BASE
+#undef CP11X_PCIE2_BASE
+
+/*
+ * Instantiate the second external CP115
+ */
+
+#define CP11X_NAME             cp2
+#define CP11X_BASE             f6000000
+#define CP11X_PCIEx_MEM_BASE(iface) (0xe5000000 + (iface * 0x1000000))
+#define CP11X_PCIEx_MEM_SIZE(iface) 0xf00000
+#define CP11X_PCIE0_BASE       f6600000
+#define CP11X_PCIE1_BASE       f6620000
+#define CP11X_PCIE2_BASE       f6640000
+
+#include "armada-cp115.dtsi"
+
+#undef CP11X_NAME
+#undef CP11X_BASE
+#undef CP11X_PCIEx_MEM_BASE
+#undef CP11X_PCIEx_MEM_SIZE
+#undef CP11X_PCIE0_BASE
+#undef CP11X_PCIE1_BASE
+#undef CP11X_PCIE2_BASE
+
+/ {
+       model = "SolidRun CN9132 COM Express Type 7 Module";
+       compatible = "solidrun,cn9132-sr-cex7", "marvell,cn9130";
+
+       aliases {
+               ethernet0 = &cp0_eth1;
+               gpio3 = &cp1_gpio1;
+               gpio4 = &cp1_gpio2;
+               gpio5 = &cp2_gpio1;
+               gpio6 = &cp2_gpio2;
+               i2c0 = &cp0_i2c0;
+               i2c1 = &cp0_i2c1;
+               i2c2 = &com_clkgen_i2c;
+               i2c3 = &com_10g_led_i2c;
+               i2c4 = &com_10g_sfp_i2c0;
+               i2c5 = &com_smbus;
+               i2c6 = &com_fanctrl_i2c;
+               mmc0 = &ap_sdhci0;
+               rtc0 = &cp0_rtc;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       fan: pwm-fan {
+               compatible = "pwm-fan";
+               cooling-levels = <0 51 102 153 204 255>;
+               #cooling-cells = <2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&cp0_fan_pwm_pins &cp0_fan_tacho_pins>;
+               pwms = <&cp0_gpio2 7 40000>;
+               interrupt-parent = <&cp0_gpio1>;
+               interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
+       };
+
+       v_1_8: regulator-1-8 {
+               compatible = "regulator-fixed";
+               regulator-name = "1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       ap_vhv: regulator-ap-vhv-1-8 {
+               compatible = "regulator-fixed";
+               regulator-name = "ap-vhv-1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               pinctrl-0 = <&cp0_reg_ap_vhv_pins>;
+               pinctrl-names = "default";
+               gpios = <&cp0_gpio2 21 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       cp_vhv: regulator-cp-vhv-1-8 {
+               compatible = "regulator-fixed";
+               regulator-name = "cp-vhv-1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               pinctrl-0 = <&cp0_reg_cp_vhv_pins>;
+               pinctrl-names = "default";
+               gpios = <&cp0_gpio2 17 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+&ap_pinctrl {
+       ap_mmc0_pins: ap-mmc0-pins {
+               marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3", "mpp4", "mpp5",
+                                          "mpp6", "mpp7", "mpp8", "mpp9", "mpp10", "mpp12";
+               marvell,function = "sdio";
+               /*
+                * mpp12 is emmc reset, function should be sdio (hw_rst),
+                * but pinctrl-mvebu does not support this.
+                *
+                * From pinctrl-mvebu.h:
+                * "The name will be used to switch to this setting in DT description, e.g.
+                * marvell,function = "uart2". subname is only for debugging purposes."
+                */
+       };
+};
+
+&ap_sdhci0 {
+       bus-width = <8>;
+       pinctrl-0 = <&ap_mmc0_pins>;
+       pinctrl-names = "default";
+       vqmmc-supply = <&v_1_8>;
+       status = "okay";
+};
+
+&ap_thermal_ic {
+       polling-delay = <1000>;
+
+       trips {
+               ap_active: trip-active {
+                       temperature = <40000>;
+                       hysteresis = <4000>;
+                       type = "active";
+               };
+       };
+
+       cooling-maps {
+               map0 {
+                       trip = <&ap_active>;
+                       cooling-device = <&fan THERMAL_NO_LIMIT 4>;
+               };
+
+               map1 {
+                       trip = <&ap_crit>;
+                       cooling-device = <&fan 4 5>;
+               };
+       };
+};
+
+&cp0_ethernet {
+       status = "okay";
+};
+
+&cp0_eth1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp0_eth1_pins>;
+       phy-mode = "rgmii-id";
+       phy = <&cp0_eth_phy0>;
+       status = "okay";
+};
+
+&cp0_gpio1 {
+       status = "okay";
+
+       /*
+        * Tacho signal used as interrupt source by pwm-fan driver.
+        * Hog IO as input to ensure mvebu-gpio irq driver`s
+        * irq_set_type can succeed.
+        */
+       pwm-tacho-irq-hog {
+               gpio-hog;
+               gpios = <26 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
+               input;
+               line-name = "fan-tacho";
+       };
+};
+
+&cp0_gpio2 {
+       status = "okay";
+};
+
+&cp0_i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp0_i2c0_pins>;
+       clock-frequency = <100000>;
+       status = "okay";
+
+       com_eeprom: eeprom@50 {
+               compatible = "atmel,24c02";
+               reg = <0x50>;
+               pagesize = <8>;
+       };
+
+       eeprom@53 {
+               compatible = "atmel,spd";
+               reg = <0x53>;
+       };
+};
+
+&cp0_i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp0_i2c1_pins>;
+       clock-frequency = <100000>;
+       status = "okay";
+
+       i2c-mux@77 {
+               compatible = "nxp,pca9547";
+               reg = <0x77>;
+               i2c-mux-idle-disconnect;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               com_clkgen_i2c: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+
+                       /* clock-controller@6b */
+               };
+
+               com_10g_led_i2c: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       /* Routed to B2B Connector as I2C_10G_LED_SCL/SDA */
+               };
+
+               com_10g_sfp_i2c0: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+
+                       /* Routed to B2B Connector as I2C_SFP0_CP0_SCL/SDA */
+               };
+
+               com_smbus: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+
+                       /* Routed to B2B Connector as SBM_CLK/DAT */
+               };
+
+               com_fanctrl_i2c: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+
+                       /* fan-controller@2f (assembly option) */
+               };
+       };
+};
+
+&cp0_mdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp0_mdio_pins>;
+       status = "okay";
+
+       cp0_eth_phy0: ethernet-phy@0 {
+               reg = <0>;
+       };
+};
+
+&cp0_spi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp0_spi1_pins>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               /* read command supports max. 50MHz */
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&cp0_syscon0 {
+       cp0_pinctrl: pinctrl {
+               compatible = "marvell,cp115-standalone-pinctrl";
+
+               com_10g_int0_pins: cp0-10g-int-pins {
+                       marvell,pins = "mpp24";
+                       marvell,function = "gpio";
+               };
+
+               cp0_eth1_pins: cp0-eth1-pins {
+                       marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3",
+                                      "mpp4", "mpp5", "mpp6", "mpp7",
+                                      "mpp8", "mpp9", "mpp10", "mpp11";
+                       /* docs call it "ge1", but cp110-pinctrl "ge0" */
+                       marvell,function = "ge0";
+               };
+
+               cp0_fan_pwm_pins: cp0-fan-pwm-pins {
+                       marvell,pins = "mpp39";
+                       marvell,function = "gpio";
+               };
+
+               cp0_fan_tacho_pins: cp0-fan-tacho-pins {
+                       marvell,pins = "mpp26";
+                       marvell,function = "gpio";
+               };
+
+               cp0_i2c0_pins: cp0-i2c0-pins {
+                       marvell,pins = "mpp37", "mpp38";
+                       marvell,function = "i2c0";
+               };
+
+               cp0_i2c1_pins: cp0-i2c1-pins {
+                       marvell,pins = "mpp35", "mpp36";
+                       marvell,function = "i2c1";
+               };
+
+               cp0_mdio_pins: cp0-mdio-pins {
+                       marvell,pins = "mpp40", "mpp41";
+                       marvell,function = "ge";
+               };
+
+               cp0_mmc0_pins: cp0-mmc0-pins {
+                       marvell,pins = "mpp56", "mpp57", "mpp58", "mpp59",
+                                      "mpp60", "mpp61";
+                       marvell,function = "sdio";
+               };
+
+               cp0_mmc0_cd_pins: cp0-mmc0-cd-pins {
+                       marvell,pins = "mpp55";
+                       marvell,function = "sdio_cd";
+               };
+
+               cp0_pwrbtn_pins:  cp0-pwrbtn-pins {
+                       marvell,pins = "mpp31";
+                       marvell,function = "gpio";
+               };
+
+               cp0_reg_ap_vhv_pins: cp0-reg-ap-vhv-pins {
+                       marvell,pins = "mpp53";
+                       marvell,function = "gpio";
+               };
+
+               cp0_reg_cp_vhv_pins: cp0-reg-cp-vhv-pins {
+                       marvell,pins = "mpp49";
+                       marvell,function = "gpio";
+               };
+
+               cp0_spi1_pins: cp0-spi1-pins {
+                       marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16";
+                       marvell,function = "spi1";
+               };
+
+               cp0_spi1_cs1_pins: cp0-spi1-cs1-pins {
+                       marvell,pins = "mpp12";
+                       marvell,function = "spi1";
+               };
+
+               cp0_uart2_pins: cp0-uart2-pins  {
+                       marvell,pins = "mpp50", "mpp51";
+                       marvell,function = "uart2";
+               };
+       };
+};
+
+&cp0_thermal_ic {
+       polling-delay = <1000>;
+
+       trips {
+               cp0_active: trip-active {
+                       temperature = <40000>;
+                       hysteresis = <4000>;
+                       type = "active";
+               };
+       };
+
+       cooling-maps {
+               map0 {
+                       trip = <&cp0_active>;
+                       cooling-device = <&fan THERMAL_NO_LIMIT 4>;
+               };
+
+               map1 {
+                       trip = <&cp0_crit>;
+                       cooling-device = <&fan 4 5>;
+               };
+       };
+};
+
+/* USB-2.0 Host */
+&cp0_usb3_0 {
+       phys = <&cp0_utmi0>;
+       phy-names = "utmi";
+       dr_mode = "host";
+       status = "okay";
+};
+
+/* USB-2.0 Host */
+&cp0_usb3_1 {
+       phys = <&cp0_utmi1>;
+       phy-names = "utmi";
+       dr_mode = "host";
+       status = "okay";
+};
+
+&cp0_utmi {
+       status = "okay";
+};
+
+&cp1_gpio1 {
+       status = "okay";
+};
+
+&cp1_gpio2 {
+       status = "okay";
+};
+
+&cp1_rtc {
+       status = "disabled";
+};
+
+&cp1_spi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cp1_spi1_pins>;
+       status = "okay";
+
+       tpm@0 {
+               reg = <0>;
+               compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
+               spi-max-frequency = <10000000>;
+               pinctrl-names  = "default";
+               pinctrl-0 = <&cp1_tpm_irq_pins>;
+               interrupt-parent = <&cp1_gpio1>;
+               interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&cp1_syscon0 {
+       cp1_pinctrl: pinctrl {
+               compatible = "marvell,cp115-standalone-pinctrl";
+
+               com_10g_int1_pins: cp1-10g-int-pins {
+                       marvell,pins = "mpp50";
+                       marvell,function = "gpio";
+               };
+
+               cp1_10g_phy_rst_01_pins: cp1-10g-phy-rst-01-pins {
+                       marvell,pins = "mpp43";
+                       marvell,function = "gpio";
+               };
+
+               cp1_10g_phy_rst_23_pins: cp1-10g-phy-rst-23-pins {
+                       marvell,pins = "mpp42";
+                       marvell,function = "gpio";
+               };
+
+               cp1_batlow_pins: cp1-batlow-pins {
+                       marvell,pins = "mpp11";
+                       marvell,function = "gpio";
+               };
+
+               cp1_rsvd16_pins: cp1-rsvd16-pins {
+                       marvell,pins = "mpp29";
+                       marvell,function = "gpio";
+               };
+
+               cp1_sata_act_pins: cp1-sata-act-pins {
+                       marvell,pins = "mpp39";
+                       marvell,function = "gpio";
+               };
+
+               cp1_spi1_pins: cp1-spi1-pins {
+                       marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16";
+                       marvell,function = "spi1";
+               };
+
+               cp1_thrm_irq_pins: cp1-thrm-irq-pins {
+                       marvell,pins = "mpp34";
+                       marvell,function = "gpio";
+               };
+
+               cp1_thrm_trip_pins: cp1-thrm-trip-pins {
+                       marvell,pins = "mpp33";
+                       marvell,function = "gpio";
+               };
+
+               cp1_tpm_irq_pins: cp1-tpm-irq-pins {
+                       marvell,pins = "mpp17";
+                       marvell,function = "gpio";
+               };
+
+               cp1_wake0_pins: cp1-wake0-pins {
+                       marvell,pins = "mpp40";
+                       marvell,function = "gpio";
+               };
+
+               cp1_wake1_pins: cp1-wake1-pins {
+                       marvell,pins = "mpp51";
+                       marvell,function = "gpio";
+               };
+
+               cp1_xmdio_pins: cp1-xmdio-pins {
+                       marvell,pins = "mpp37", "mpp38";
+                       marvell,function = "xg";
+               };
+       };
+};
+
+&cp1_thermal_ic {
+       polling-delay = <1000>;
+
+       trips {
+               cp1_active: trip-active {
+                       temperature = <40000>;
+                       hysteresis = <4000>;
+                       type = "active";
+               };
+       };
+
+       cooling-maps {
+               map0 {
+                       trip = <&cp1_active>;
+                       cooling-device = <&fan THERMAL_NO_LIMIT 4>;
+               };
+
+               map1 {
+                       trip = <&cp1_crit>;
+                       cooling-device = <&fan 4 5>;
+               };
+       };
+};
+
+/* USB-2.0 Host */
+&cp1_usb3_0 {
+       phys = <&cp1_utmi0>;
+       phy-names = "utmi";
+       dr_mode = "host";
+       status = "okay";
+};
+
+&cp1_utmi {
+       status = "okay";
+};
+
+&cp2_ethernet {
+       status = "okay";
+};
+
+&cp2_gpio1 {
+       status = "okay";
+};
+
+&cp2_gpio2 {
+       status = "okay";
+};
+
+&cp2_rtc {
+       status = "disabled";
+};
+
+&cp2_syscon0 {
+       cp2_pinctrl: pinctrl {
+               compatible = "marvell,cp115-standalone-pinctrl";
+
+               com_10g_int2_pins: cp2-10g-int-pins {
+                       marvell,pins = "mpp50";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd0_pins: cp2-rsvd0-pins {
+                       marvell,pins = "mpp0";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd1_pins: cp2-rsvd1-pins {
+                       marvell,pins = "mpp1";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd2_pins: cp2-rsvd2-pins {
+                       marvell,pins = "mpp2";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd3_pins: cp2-rsvd3-pins {
+                       marvell,pins = "mpp3";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd4_pins: cp2-rsvd4-pins {
+                       marvell,pins = "mpp4";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd5_pins: cp2-rsvd5-pins {
+                       marvell,pins = "mpp54";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd7_pins: cp2-rsvd7-pins {
+                       marvell,pins = "mpp7";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd8_pins: cp2-rsvd8-pins {
+                       marvell,pins = "mpp8";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd9_pins: cp2-rsvd9-pins {
+                       marvell,pins = "mpp9";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd10_pins: cp2-rsvd10-pins {
+                       marvell,pins = "mpp10";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd11_pins: cp2-rsvd11-pins {
+                       marvell,pins = "mpp11";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd27_pins: cp2-rsvd27-pins {
+                       marvell,pins = "mpp11";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd31_pins: cp2-rsvd31-pins {
+                       marvell,pins = "mpp31";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd32_pins: cp2-rsvd32-pins {
+                       marvell,pins = "mpp32";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd55_pins: cp2-rsvd55-pins {
+                       marvell,pins = "mpp55";
+                       marvell,function = "gpio";
+               };
+
+               cp2_rsvd56_pins: cp2-rsvd56-pins {
+                       marvell,pins = "mpp56";
+                       marvell,function = "gpio";
+               };
+
+               cp2_xmdio_pins: cp2-xmdio-pins {
+                       marvell,pins = "mpp37", "mpp38";
+                       marvell,function = "xg";
+               };
+       };
+};
+
+&cp2_thermal_ic {
+       polling-delay = <1000>;
+
+       trips {
+               cp2_active: trip-active {
+                       temperature = <40000>;
+                       hysteresis = <4000>;
+                       type = "active";
+               };
+       };
+
+       cooling-maps {
+               map0 {
+                       trip = <&cp2_active>;
+                       cooling-device = <&fan THERMAL_NO_LIMIT 4>;
+               };
+
+               map1 {
+                       trip = <&cp2_crit>;
+                       cooling-device = <&fan 4 5>;
+               };
+       };
+};
+
+/* USB-2.0/3.0 Host */
+&cp2_usb3_0 {
+       phys = <&cp2_utmi0>, <&cp2_comphy1 0>;
+       phy-names = "utmi", "comphy";
+       dr_mode = "host";
+       status = "okay";
+};
+
+&cp2_utmi {
+       status = "okay";
+};
+
+/* AP default console */
+&uart0 {
+       pinctrl-0 = <&uart0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
index 234e3b23d7a8d3206c1f5e74f875a4501eea3942..c84c47c1352fba49d219fb8ace17a74953927fdc 100644 (file)
                                 <MT2712_PIN_74_GBE_TXD0__FUNC_GBE_TXD0>,
                                 <MT2712_PIN_75_GBE_TXC__FUNC_GBE_TXC>,
                                 <MT2712_PIN_76_GBE_TXEN__FUNC_GBE_TXEN>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                };
                rx_pins {
                        pinmux = <MT2712_PIN_78_GBE_RXD3__FUNC_GBE_RXD3>,
                mdio_pins {
                        pinmux = <MT2712_PIN_85_GBE_MDC__FUNC_GBE_MDC>,
                                 <MT2712_PIN_86_GBE_MDIO__FUNC_GBE_MDIO>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        input-enable;
                };
        };
index 7364c7278276940a2e21cfcb6a26b91f845f6b86..91de920c2245713967fe83f11fa52405a181f5bb 100644 (file)
                                 <PINMUX_GPIO161__FUNC_MSDC0_DAT7>,
                                 <PINMUX_GPIO162__FUNC_MSDC0_CMD>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
 
                pins-clk {
                        pinmux = <PINMUX_GPIO163__FUNC_MSDC0_CLK>;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
 
                pins-rst {
                        pinmux = <PINMUX_GPIO165__FUNC_MSDC0_RSTB>;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
                };
 
                pins-ds {
                        pinmux = <PINMUX_GPIO164__FUNC_MSDC0_DSL>;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
        };
index 224bb289660c0869782d1d57589d817525359452..d12eac9b3eebfa564b07d937ddcac6a2fa112bb5 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
-               switch@0 {
+               switch@1f {
                        compatible = "mediatek,mt7531";
-                       reg = <0>;
+                       reg = <0x1f>;
                        interrupt-controller;
                        #interrupt-cells = <1>;
                        interrupts-extended = <&pio 53 IRQ_TYPE_LEVEL_HIGH>;
        /* eMMC is shared pin with parallel NAND */
        emmc_pins_default: emmc-pins-default {
                mux {
-                       function = "emmc", "emmc_rst";
-                       groups = "emmc";
+                       function = "emmc";
+                       groups = "emmc", "emmc_rst";
                };
 
                /* "NDL0","NDL1","NDL2","NDL3","NDL4","NDL5","NDL6","NDL7",
index 41629769bdc8578cd484f463d94c7cb8b7bb9b5b..8c3e2e2578bce53d8ec3a7c28d4ad12b0ecc1081 100644 (file)
        /* eMMC is shared pin with parallel NAND */
        emmc_pins_default: emmc-pins-default {
                mux {
-                       function = "emmc", "emmc_rst";
-                       groups = "emmc";
+                       function = "emmc";
+                       groups = "emmc", "emmc_rst";
                };
 
                /* "NDL0","NDL1","NDL2","NDL3","NDL4","NDL5","NDL6","NDL7",
diff --git a/src/arm64/mediatek/mt7981b-cudy-wr3000-v1.dts b/src/arm64/mediatek/mt7981b-cudy-wr3000-v1.dts
new file mode 100644 (file)
index 0000000..54101cc
--- /dev/null
@@ -0,0 +1,74 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+
+/dts-v1/;
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+
+#include "mt7981b.dtsi"
+
+/ {
+       compatible = "cudy,wr3000-v1", "mediatek,mt7981b";
+       model = "Cudy WR3000 V1";
+
+       memory@40000000 {
+               reg = <0 0x40000000 0 0x10000000>;
+               device_type = "memory";
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               key-wps {
+                       label = "WPS";
+                       gpios = <&pio 0 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_WPS_BUTTON>;
+               };
+
+               key-reset {
+                       label = "RESET";
+                       gpios = <&pio 1 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_WAN;
+                       gpios = <&pio 5 GPIO_ACTIVE_LOW>;
+               };
+
+               led-1 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_WLAN_2GHZ;
+                       gpios = <&pio 6 GPIO_ACTIVE_LOW>;
+               };
+
+               led-2 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_WLAN_5GHZ;
+                       gpios = <&pio 7 GPIO_ACTIVE_LOW>;
+               };
+
+               led-3 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_LAN;
+                       gpios = <&pio 9 GPIO_ACTIVE_LOW>;
+               };
+
+               led-4 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&pio 10 GPIO_ACTIVE_LOW>;
+               };
+
+               led-5 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       function = LED_FUNCTION_WAN_ONLINE;
+                       gpios = <&pio 11 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
diff --git a/src/arm64/mediatek/mt7981b-openwrt-one.dts b/src/arm64/mediatek/mt7981b-openwrt-one.dts
new file mode 100644 (file)
index 0000000..4f6cbb4
--- /dev/null
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+
+/dts-v1/;
+
+#include "mt7981b.dtsi"
+
+/ {
+       compatible = "openwrt,one", "mediatek,mt7981b";
+       model = "OpenWrt One";
+
+       memory@40000000 {
+               reg = <0 0x40000000 0 0x40000000>;
+               device_type = "memory";
+       };
+};
index 4feff3d1c5f4e59d3e63615c19d6ec24611f4f77..64aeeb24efac872e45e6721ccd0ad9ac1de57cd4 100644 (file)
@@ -2,6 +2,7 @@
 
 #include <dt-bindings/clock/mediatek,mt7981-clk.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/reset/mt7986-resets.h>
 
 / {
        compatible = "mediatek,mt7981b";
                        #clock-cells = <1>;
                };
 
-               clock-controller@1001b000 {
+               topckgen: clock-controller@1001b000 {
                        compatible = "mediatek,mt7981-topckgen", "syscon";
                        reg = <0 0x1001b000 0 0x1000>;
                        #clock-cells = <1>;
                };
 
+               watchdog: watchdog@1001c000 {
+                       compatible = "mediatek,mt7986-wdt";
+                       reg = <0 0x1001c000 0 0x1000>;
+                       interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
+                       #reset-cells = <1>;
+               };
+
                clock-controller@1001e000 {
                        compatible = "mediatek,mt7981-apmixedsys";
                        reg = <0 0x1001e000 0 0x1000>;
                        compatible = "mediatek,mt7981-pwm";
                        reg = <0 0x10048000 0 0x1000>;
                        clocks = <&infracfg CLK_INFRA_PWM_STA>,
-                               <&infracfg CLK_INFRA_PWM_HCK>,
-                               <&infracfg CLK_INFRA_PWM1_CK>,
-                               <&infracfg CLK_INFRA_PWM2_CK>,
-                               <&infracfg CLK_INFRA_PWM3_CK>;
+                                <&infracfg CLK_INFRA_PWM_HCK>,
+                                <&infracfg CLK_INFRA_PWM1_CK>,
+                                <&infracfg CLK_INFRA_PWM2_CK>,
+                                <&infracfg CLK_INFRA_PWM3_CK>;
                        clock-names = "top", "main", "pwm1", "pwm2", "pwm3";
                        #pwm-cells = <2>;
                };
 
+               i2c@11007000 {
+                       compatible = "mediatek,mt7981-i2c";
+                       reg = <0 0x11007000 0 0x1000>,
+                             <0 0x10217080 0 0x80>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&infracfg CLK_INFRA_I2C0_CK>,
+                                <&infracfg CLK_INFRA_AP_DMA_CK>,
+                                <&infracfg CLK_INFRA_I2C_MCK_CK>,
+                                <&infracfg CLK_INFRA_I2C_PCK_CK>;
+                       clock-names = "main", "dma", "arb", "pmic";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               pio: pinctrl@11d00000 {
+                       compatible = "mediatek,mt7981-pinctrl";
+                       reg = <0 0x11d00000 0 0x1000>,
+                             <0 0x11c00000 0 0x1000>,
+                             <0 0x11c10000 0 0x1000>,
+                             <0 0x11d20000 0 0x1000>,
+                             <0 0x11e00000 0 0x1000>,
+                             <0 0x11e20000 0 0x1000>,
+                             <0 0x11f00000 0 0x1000>,
+                             <0 0x11f10000 0 0x1000>,
+                             <0 0x1000b000 0 0x1000>;
+                       reg-names = "gpio", "iocfg_rt", "iocfg_rm", "iocfg_rb", "iocfg_lb",
+                                   "iocfg_bl", "iocfg_tm", "iocfg_tl", "eint";
+                       interrupt-controller;
+                       interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-parent = <&gic>;
+                       gpio-ranges = <&pio 0 0 56>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       #interrupt-cells = <2>;
+               };
+
+               efuse@11f20000 {
+                       compatible = "mediatek,mt7981-efuse", "mediatek,efuse";
+                       reg = <0 0x11f20000 0 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
+
                clock-controller@15000000 {
                        compatible = "mediatek,mt7981-ethsys", "syscon";
                        reg = <0 0x15000000 0 0x1000>;
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                };
+
+               wifi@18000000 {
+                       compatible = "mediatek,mt7981-wmac";
+                       reg = <0 0x18000000 0 0x1000000>,
+                             <0 0x10003000 0 0x1000>,
+                             <0 0x11d10000 0 0x1000>;
+                       interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&topckgen CLK_TOP_NETSYS_MCU_SEL>,
+                                <&topckgen CLK_TOP_AP2CNN_HOST_SEL>;
+                       clock-names = "mcu", "ap2conn";
+                       resets = <&watchdog MT7986_TOPRGU_CONSYS_SW_RST>;
+                       reset-names = "consys";
+               };
        };
 
        timer {
index 779dc6782bb1986f8bb39d341d5d7254ee96cf56..047a8388811eb9c09d7c1ea6dc7a38c79bfb7a20 100644 (file)
@@ -9,21 +9,17 @@
 
 / {
        compatible = "bananapi,bpi-r3", "mediatek,mt7986a";
-
-       fragment@0 {
-               target-path = "/soc/mmc@11230000";
-               __overlay__ {
-                       bus-width = <8>;
-                       max-frequency = <200000000>;
-                       cap-mmc-highspeed;
-                       mmc-hs200-1_8v;
-                       mmc-hs400-1_8v;
-                       hs400-ds-delay = <0x14014>;
-                       non-removable;
-                       no-sd;
-                       no-sdio;
-                       status = "okay";
-               };
-       };
 };
 
+&{/soc/mmc@11230000} {
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       cap-mmc-highspeed;
+       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       hs400-ds-delay = <0x14014>;
+       non-removable;
+       no-sd;
+       no-sdio;
+       status = "okay";
+};
diff --git a/src/arm64/mediatek/mt7986a-bananapi-bpi-r3-mini.dts b/src/arm64/mediatek/mt7986a-bananapi-bpi-r3-mini.dts
new file mode 100644 (file)
index 0000000..e2a2fea
--- /dev/null
@@ -0,0 +1,493 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 MediaTek Inc.
+ * Authors: Frank Wunderlich <frank-w@public-files.de>
+ *          Eric Woudstra <ericwouds@gmail.com>
+ *          Tianling Shen <cnsztl@immortalwrt.org>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/mt65xx.h>
+
+#include "mt7986a.dtsi"
+
+/ {
+       model = "Bananapi BPI-R3 Mini";
+       chassis-type = "embedded";
+       compatible = "bananapi,bpi-r3mini", "mediatek,mt7986a";
+
+       aliases {
+               serial0 = &uart0;
+               ethernet0 = &gmac0;
+               ethernet1 = &gmac1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       dcin: regulator-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "12vd";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       fan: pwm-fan {
+               compatible = "pwm-fan";
+               #cooling-cells = <2>;
+               /*
+                * The signal is inverted on this board and the PWM driver
+                * does not support polarity inversion.
+                */
+               /* cooling level (0, 1, 2) */
+               cooling-levels = <255 96 0>;
+               pwms = <&pwm 0 10000>;
+       };
+
+       reg_1p8v: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "1.8vd";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+               vin-supply = <&dcin>;
+       };
+
+       reg_3p3v: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "3.3vd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+               vin-supply = <&dcin>;
+       };
+
+       usb_vbus: regulator-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpios = <&pio 20 GPIO_ACTIVE_LOW>;
+               regulator-boot-on;
+       };
+
+       en8811_a: regulator-phy1 {
+               compatible = "regulator-fixed";
+               regulator-name = "phy1";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pio 16 GPIO_ACTIVE_LOW>;
+               regulator-always-on;
+       };
+
+       en8811_b: regulator-phy2 {
+               compatible = "regulator-fixed";
+               regulator-name = "phy2";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pio 17 GPIO_ACTIVE_LOW>;
+               regulator-always-on;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               green_led: led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&pio 19 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               reset-key {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&pio 7 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+};
+
+&cpu_thermal {
+       cooling-maps {
+               map0 {
+                       /* active: set fan to cooling level 2 */
+                       cooling-device = <&fan 2 2>;
+                       trip = <&cpu_trip_active_high>;
+               };
+
+               map1 {
+                       /* active: set fan to cooling level 1 */
+                       cooling-device = <&fan 1 1>;
+                       trip = <&cpu_trip_active_med>;
+               };
+
+               map2 {
+                       /* active: set fan to cooling level 0 */
+                       cooling-device = <&fan 0 0>;
+                       trip = <&cpu_trip_active_low>;
+               };
+       };
+};
+
+&crypto {
+       status = "okay";
+};
+
+&eth {
+       status = "okay";
+
+       gmac0: mac@0 {
+               compatible = "mediatek,eth-mac";
+               reg = <0>;
+               phy-mode = "2500base-x";
+               phy-handle = <&phy0>;
+       };
+
+       gmac1: mac@1 {
+               compatible = "mediatek,eth-mac";
+               reg = <1>;
+               phy-mode = "2500base-x";
+               phy-handle = <&phy1>;
+       };
+
+       mdio: mdio-bus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+};
+
+&mmc0 {
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc0_pins_default>;
+       pinctrl-1 = <&mmc0_pins_uhs>;
+       vmmc-supply = <&reg_3p3v>;
+       vqmmc-supply = <&reg_1p8v>;
+};
+
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c_pins>;
+       status = "okay";
+
+       /* MAC Address EEPROM */
+       eeprom@50 {
+               compatible = "atmel,24c02";
+               reg = <0x50>;
+
+               address-width = <8>;
+               pagesize = <8>;
+               size = <256>;
+       };
+};
+
+&mdio {
+       phy0: ethernet-phy@14 {
+               reg = <14>;
+               interrupts-extended = <&pio 48 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&pio 49 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <20000>;
+               phy-mode = "2500base-x";
+               full-duplex;
+               pause;
+               airoha,pnswap-rx;
+
+               leds {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@0 { /* en8811_a_gpio5 */
+                               reg = <0>;
+                               color = <LED_COLOR_ID_YELLOW>;
+                               function = LED_FUNCTION_LAN;
+                               function-enumerator = <1>;
+                               default-state = "keep";
+                       };
+                       led@1 { /* en8811_a_gpio4 */
+                               reg = <1>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_LAN;
+                               function-enumerator = <2>;
+                               default-state = "keep";
+                       };
+               };
+       };
+
+       phy1: ethernet-phy@15 {
+               reg = <15>;
+               interrupts-extended = <&pio 46 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&pio 47 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <20000>;
+               phy-mode = "2500base-x";
+               full-duplex;
+               pause;
+               airoha,pnswap-rx;
+
+               leds {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@0 { /* en8811_b_gpio5 */
+                               reg = <0>;
+                               color = <LED_COLOR_ID_YELLOW>;
+                               function = LED_FUNCTION_WAN;
+                               function-enumerator = <1>;
+                               default-state = "keep";
+                       };
+                       led@1 { /* en8811_b_gpio4 */
+                               reg = <1>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_WAN;
+                               function-enumerator = <2>;
+                               default-state = "keep";
+                       };
+               };
+       };
+};
+
+&pcie {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie_pins>;
+       status = "okay";
+};
+
+&pcie_phy {
+       status = "okay";
+};
+
+&pio {
+       i2c_pins: i2c-pins {
+               mux {
+                       function = "i2c";
+                       groups = "i2c";
+               };
+       };
+
+       mmc0_pins_default: mmc0-pins {
+               mux {
+                       function = "emmc";
+                       groups = "emmc_51";
+               };
+               conf-cmd-dat {
+                       pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
+                              "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
+                              "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
+                       input-enable;
+                       drive-strength = <4>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
+               };
+               conf-clk {
+                       pins = "EMMC_CK";
+                       drive-strength = <6>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
+               };
+               conf-ds {
+                       pins = "EMMC_DSL";
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
+               };
+               conf-rst {
+                       pins = "EMMC_RSTB";
+                       drive-strength = <4>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
+               };
+       };
+
+       mmc0_pins_uhs: mmc0-uhs-pins {
+               mux {
+                       function = "emmc";
+                       groups = "emmc_51";
+               };
+               conf-cmd-dat {
+                       pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
+                              "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
+                              "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
+                       input-enable;
+                       drive-strength = <4>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
+               };
+               conf-clk {
+                       pins = "EMMC_CK";
+                       drive-strength = <6>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
+               };
+               conf-ds {
+                       pins = "EMMC_DSL";
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
+               };
+               conf-rst {
+                       pins = "EMMC_RSTB";
+                       drive-strength = <4>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
+               };
+       };
+
+       pcie_pins: pcie-pins {
+               mux {
+                       function = "pcie";
+                       groups = "pcie_clk", "pcie_wake", "pcie_pereset";
+               };
+       };
+
+       pwm_pins: pwm-pins {
+               mux {
+                       function = "pwm";
+                       groups = "pwm0";
+               };
+       };
+
+       spi_flash_pins: spi-flash-pins {
+               mux {
+                       function = "spi";
+                       groups = "spi0", "spi0_wp_hold";
+               };
+       };
+
+       usb_ngff_pins: usb-ngff-pins {
+               ngff-gnss-off-conf {
+                       pins = "GPIO_6";
+                       drive-strength = <8>;
+                       mediatek,pull-up-adv = <1>;
+               };
+               ngff-pe-rst-conf {
+                       pins = "GPIO_7";
+                       drive-strength = <8>;
+                       mediatek,pull-up-adv = <1>;
+               };
+               ngff-wwan-off-conf {
+                       pins = "GPIO_8";
+                       drive-strength = <8>;
+                       mediatek,pull-up-adv = <1>;
+               };
+               ngff-pwr-off-conf {
+                       pins = "GPIO_9";
+                       drive-strength = <8>;
+                       mediatek,pull-up-adv = <1>;
+               };
+               ngff-rst-conf {
+                       pins = "GPIO_10";
+                       drive-strength = <8>;
+                       mediatek,pull-up-adv = <1>;
+               };
+               ngff-coex-conf {
+                       pins = "SPI1_CS";
+                       drive-strength = <8>;
+                       mediatek,pull-up-adv = <1>;
+               };
+       };
+
+       wf_2g_5g_pins: wf-2g-5g-pins {
+               mux {
+                       function = "wifi";
+                       groups = "wf_2g", "wf_5g";
+               };
+               conf {
+                       pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
+                              "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
+                              "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
+                              "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
+                              "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
+                              "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
+                              "WF1_TOP_CLK", "WF1_TOP_DATA";
+                       drive-strength = <4>;
+               };
+       };
+
+       wf_dbdc_pins: wf-dbdc-pins {
+               mux {
+                       function = "wifi";
+                       groups = "wf_dbdc";
+               };
+               conf {
+                       pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
+                              "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
+                              "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
+                              "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
+                              "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
+                              "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
+                              "WF1_TOP_CLK", "WF1_TOP_DATA";
+                       drive-strength = <4>;
+               };
+       };
+
+       wf_led_pins: wf-led-pins {
+               mux {
+                       function = "led";
+                       groups = "wifi_led";
+               };
+       };
+};
+
+&pwm {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm_pins>;
+       status = "okay";
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi_flash_pins>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "spi-nand";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0>;
+
+               spi-max-frequency = <20000000>;
+               spi-tx-bus-width = <4>;
+               spi-rx-bus-width = <4>;
+       };
+};
+
+&ssusb {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb_ngff_pins>;
+       vusb33-supply = <&reg_3p3v>;
+       vbus-supply = <&usb_vbus>;
+       status = "okay";
+};
+
+&trng {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&usb_phy {
+       status = "okay";
+};
+
+&watchdog {
+       status = "okay";
+};
+
+&wifi {
+       status = "okay";
+       pinctrl-names = "default", "dbdc";
+       pinctrl-0 = <&wf_2g_5g_pins>, <&wf_led_pins>;
+       pinctrl-1 = <&wf_dbdc_pins>, <&wf_led_pins>;
+
+       led {
+               led-active-low;
+       };
+};
+
index 7b97c5c91bd0264df6655b8a3de5ec7aba168896..24398f8a7da4345c5bea4d29eedb86008c7476ca 100644 (file)
@@ -9,46 +9,44 @@
 
 / {
        compatible = "bananapi,bpi-r3", "mediatek,mt7986a";
+};
+
+&{/soc/spi@1100a000} {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       spi_nand: flash@0 {
+               compatible = "spi-nand";
+               reg = <0>;
+               spi-max-frequency = <10000000>;
+               spi-tx-buswidth = <4>;
+               spi-rx-buswidth = <4>;
 
-       fragment@0 {
-               target-path = "/soc/spi@1100a000";
-               __overlay__ {
+               partitions {
+                       compatible = "fixed-partitions";
                        #address-cells = <1>;
-                       #size-cells = <0>;
-                       spi_nand: flash@0 {
-                               compatible = "spi-nand";
-                               reg = <0>;
-                               spi-max-frequency = <10000000>;
-                               spi-tx-buswidth = <4>;
-                               spi-rx-buswidth = <4>;
-
-                               partitions {
-                                       compatible = "fixed-partitions";
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-
-                                       partition@0 {
-                                               label = "bl2";
-                                               reg = <0x0 0x100000>;
-                                               read-only;
-                                       };
-
-                                       partition@100000 {
-                                               label = "reserved";
-                                               reg = <0x100000 0x280000>;
-                                       };
-
-                                       partition@380000 {
-                                               label = "fip";
-                                               reg = <0x380000 0x200000>;
-                                               read-only;
-                                       };
-
-                                       partition@580000 {
-                                               label = "ubi";
-                                               reg = <0x580000 0x7a80000>;
-                                       };
-                               };
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "bl2";
+                               reg = <0x0 0x100000>;
+                               read-only;
+                       };
+
+                       partition@100000 {
+                               label = "reserved";
+                               reg = <0x100000 0x280000>;
+                       };
+
+                       partition@380000 {
+                               label = "fip";
+                               reg = <0x380000 0x200000>;
+                               read-only;
+                       };
+
+                       partition@580000 {
+                               label = "ubi";
+                               reg = <0x580000 0x7a80000>;
                        };
                };
        };
index e48881be4ed60c98bc89214cfe7b1dfdbf1ddf35..6a0d529b54aca5bd27062cebf5ce6658a59a173b 100644 (file)
@@ -9,54 +9,52 @@
 
 / {
        compatible = "bananapi,bpi-r3", "mediatek,mt7986a";
+};
+
+&{/soc/spi@1100a000} {
+       #address-cells = <1>;
+       #size-cells = <0>;
 
-       fragment@0 {
-               target-path = "/soc/spi@1100a000";
-               __overlay__ {
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <10000000>;
+
+               partitions {
+                       compatible = "fixed-partitions";
                        #address-cells = <1>;
-                       #size-cells = <0>;
-                       flash@0 {
-                               compatible = "jedec,spi-nor";
-                               reg = <0>;
-                               spi-max-frequency = <10000000>;
-
-                               partitions {
-                                       compatible = "fixed-partitions";
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-
-                                       partition@0 {
-                                               label = "bl2";
-                                               reg = <0x0 0x40000>;
-                                               read-only;
-                                       };
-
-                                       partition@40000 {
-                                               label = "u-boot-env";
-                                               reg = <0x40000 0x40000>;
-                                       };
-
-                                       partition@80000 {
-                                               label = "reserved2";
-                                               reg = <0x80000 0x80000>;
-                                       };
-
-                                       partition@100000 {
-                                               label = "fip";
-                                               reg = <0x100000 0x80000>;
-                                               read-only;
-                                       };
-
-                                       partition@180000 {
-                                               label = "recovery";
-                                               reg = <0x180000 0xa80000>;
-                                       };
-
-                                       partition@c00000 {
-                                               label = "fit";
-                                               reg = <0xc00000 0x1400000>;
-                                       };
-                               };
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "bl2";
+                               reg = <0x0 0x40000>;
+                               read-only;
+                       };
+
+                       partition@40000 {
+                               label = "u-boot-env";
+                               reg = <0x40000 0x40000>;
+                       };
+
+                       partition@80000 {
+                               label = "reserved2";
+                               reg = <0x80000 0x80000>;
+                       };
+
+                       partition@100000 {
+                               label = "fip";
+                               reg = <0x100000 0x80000>;
+                               read-only;
+                       };
+
+                       partition@180000 {
+                               label = "recovery";
+                               reg = <0x180000 0xa80000>;
+                       };
+
+                       partition@c00000 {
+                               label = "fit";
+                               reg = <0xc00000 0x1400000>;
                        };
                };
        };
index f623bce075ce6ea4ef66928246f60b7e90bc95ed..d9e01967acc471b83b3d793d3cc095c14e43ffa0 100644 (file)
@@ -9,15 +9,11 @@
 
 / {
        compatible = "bananapi,bpi-r3", "mediatek,mt7986a";
-
-       fragment@0 {
-               target-path = "/soc/mmc@11230000";
-               __overlay__ {
-                       bus-width = <4>;
-                       max-frequency = <52000000>;
-                       cap-sd-highspeed;
-                       status = "okay";
-               };
-       };
 };
 
+&{/soc/mmc@11230000} {
+       bus-width = <4>;
+       max-frequency = <52000000>;
+       cap-sd-highspeed;
+       status = "okay";
+};
index bba97de4fb4497c393a9154175a698952895f1ab..aa728331e876b7c94c8d71a94d66d792f2688cd3 100644 (file)
@@ -1,6 +1,8 @@
 // SPDX-License-Identifier: GPL-2.0-only OR MIT
 
+#include <dt-bindings/clock/mediatek,mt7988-clk.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/phy/phy.h>
 
 / {
        compatible = "mediatek,mt7988a";
@@ -78,7 +80,7 @@
                        #interrupt-cells = <3>;
                };
 
-               clock-controller@10001000 {
+               infracfg: clock-controller@10001000 {
                        compatible = "mediatek,mt7988-infracfg", "syscon";
                        reg = <0 0x10001000 0 0x1000>;
                        #clock-cells = <1>;
                        #clock-cells = <1>;
                };
 
+               pwm@10048000 {
+                       compatible = "mediatek,mt7988-pwm";
+                       reg = <0 0x10048000 0 0x1000>;
+                       clocks = <&infracfg CLK_INFRA_66M_PWM_BCK>,
+                                <&infracfg CLK_INFRA_66M_PWM_HCK>,
+                                <&infracfg CLK_INFRA_66M_PWM_CK1>,
+                                <&infracfg CLK_INFRA_66M_PWM_CK2>,
+                                <&infracfg CLK_INFRA_66M_PWM_CK3>,
+                                <&infracfg CLK_INFRA_66M_PWM_CK4>,
+                                <&infracfg CLK_INFRA_66M_PWM_CK5>,
+                                <&infracfg CLK_INFRA_66M_PWM_CK6>,
+                                <&infracfg CLK_INFRA_66M_PWM_CK7>,
+                                <&infracfg CLK_INFRA_66M_PWM_CK8>;
+                       clock-names = "top", "main", "pwm1", "pwm2", "pwm3",
+                                     "pwm4", "pwm5", "pwm6", "pwm7", "pwm8";
+                       #pwm-cells = <2>;
+                       status = "disabled";
+               };
+
+               i2c@11003000 {
+                       compatible = "mediatek,mt7981-i2c";
+                       reg = <0 0x11003000 0 0x1000>,
+                             <0 0x10217080 0 0x80>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&infracfg CLK_INFRA_I2C_BCK>,
+                                <&infracfg CLK_INFRA_66M_AP_DMA_BCK>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c@11004000 {
+                       compatible = "mediatek,mt7981-i2c";
+                       reg = <0 0x11004000 0 0x1000>,
+                             <0 0x10217100 0 0x80>;
+                       interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&infracfg CLK_INFRA_I2C_BCK>,
+                                <&infracfg CLK_INFRA_66M_AP_DMA_BCK>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c@11005000 {
+                       compatible = "mediatek,mt7981-i2c";
+                       reg = <0 0x11005000 0 0x1000>,
+                             <0 0x10217180 0 0x80>;
+                       interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&infracfg CLK_INFRA_I2C_BCK>,
+                                <&infracfg CLK_INFRA_66M_AP_DMA_BCK>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               usb@11190000 {
+                       compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
+                       reg = <0 0x11190000 0 0x2e00>,
+                             <0 0x11193e00 0 0x0100>;
+                       reg-names = "mac", "ippc";
+                       interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&infracfg CLK_INFRA_USB_SYS>,
+                                <&infracfg CLK_INFRA_USB_REF>,
+                                <&infracfg CLK_INFRA_66M_USB_HCK>,
+                                <&infracfg CLK_INFRA_133M_USB_HCK>,
+                                <&infracfg CLK_INFRA_USB_XHCI>;
+                       clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
+               };
+
+               usb@11200000 {
+                       compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
+                       reg = <0 0x11200000 0 0x2e00>,
+                             <0 0x11203e00 0 0x0100>;
+                       reg-names = "mac", "ippc";
+                       interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&infracfg CLK_INFRA_USB_SYS_CK_P1>,
+                                <&infracfg CLK_INFRA_USB_CK_P1>,
+                                <&infracfg CLK_INFRA_66M_USB_HCK_CK_P1>,
+                                <&infracfg CLK_INFRA_133M_USB_HCK_CK_P1>,
+                                <&infracfg CLK_INFRA_USB_XHCI_CK_P1>;
+                       clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
+               };
+
                clock-controller@11f40000 {
                        compatible = "mediatek,mt7988-xfi-pll";
                        reg = <0 0x11f40000 0 0x1000>;
index 90cbbc18a4834e3937b80b892c2396e4c45748b8..8d1cbc92bce320f9b42da6d492fe464dcc99e7e9 100644 (file)
                hid-descr-addr = <0x0020>;
                interrupts-extended = <&pio 88 IRQ_TYPE_LEVEL_LOW>;
        };
+
+       /* Lenovo Ideapad C330 uses G2Touch touchscreen as a 2nd source touchscreen */
+       touchscreen@40 {
+               compatible = "hid-over-i2c";
+               reg = <0x40>;
+               hid-descr-addr = <0x0001>;
+               interrupt-parent = <&pio>;
+               interrupts = <88 IRQ_TYPE_LEVEL_LOW>;
+       };
 };
 
 &i2c4 {
index 6d962d437e0231288290806c1d4060c311d9bf19..b4d85147b77b0b7c72fd49b3f3a94c57b6352d64 100644 (file)
                rtc: mt6397rtc {
                        compatible = "mediatek,mt6397-rtc";
                };
-
-               syscfg_pctl_pmic: syscon@c000 {
-                       compatible = "mediatek,mt6397-pctl-pmic-syscfg",
-                                    "syscon";
-                       reg = <0 0x0000c000 0 0x0108>;
-               };
        };
 };
 
index 3fab21f59d1834e8c02a94436b0a8c24b392d4cf..bb4671c18e3bd4680afdb5fe928a9f6d96eaf1c9 100644 (file)
                                 <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 {
                        pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>;
                        bias-pull-down;
-                       drive-strength = <MTK_DRIVE_4mA>;
+                       drive-strength = <4>;
                };
 
                pins_insert {
                                 <MT8173_PIN_64_MSDC0_DAT7__FUNC_MSDC0_DAT7>,
                                 <MT8173_PIN_66_MSDC0_CMD__FUNC_MSDC0_CMD>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_2mA>;
+                       drive-strength = <2>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
 
                pins_clk {
                        pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>;
-                       drive-strength = <MTK_DRIVE_2mA>;
+                       drive-strength = <2>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
                };
 
                                 <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 {
                        pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>;
-                       drive-strength = <MTK_DRIVE_4mA>;
+                       drive-strength = <4>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
        };
index 681deddffc2ad0b18ec2a3ea6b587a229d6c6208..f04baea5d6cbe2375537462dc32c9ac47acc0c71 100644 (file)
                        pinmux = <PINMUX_GPIO82__FUNC_SDA0>,
                                 <PINMUX_GPIO83__FUNC_SCL0>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO81__FUNC_SDA1>,
                                 <PINMUX_GPIO84__FUNC_SCL1>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO103__FUNC_SCL2>,
                                 <PINMUX_GPIO104__FUNC_SDA2>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO50__FUNC_SCL3>,
                                 <PINMUX_GPIO51__FUNC_SDA3>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO105__FUNC_SCL4>,
                                 <PINMUX_GPIO106__FUNC_SDA4>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO48__FUNC_SCL5>,
                                 <PINMUX_GPIO49__FUNC_SDA5>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
index 8b57706ac8140b91fbeeca6b806ccd1fa2fb0558..586eee79c73cfa71a294dfc6336fc26072e7becd 100644 (file)
@@ -27,7 +27,7 @@
                        dlg,btn-cfg = <50>;
                        dlg,mic-det-thr = <500>;
                        dlg,jack-ins-deb = <20>;
-                       dlg,jack-det-rate = "32ms_64ms";
+                       dlg,jack-det-rate = "32_64";
                        dlg,jack-rem-deb = <1>;
 
                        dlg,a-d-btn-thr = <0xa>;
index 072133fb0f0162417441ae0718c2fb5e04b7b825..f34964afe39b5353de7b17e82d14d1fba88551ab 100644 (file)
@@ -9,6 +9,7 @@
 
 / {
        model = "Google cozmo board";
+       chassis-type = "laptop";
        compatible = "google,cozmo", "mediatek,mt8183";
 };
 
index b595622e7beea31657bffcc32003f574c41cdcf8..72852b7600383972d98d9b0edd40b6e99e34a85b 100644 (file)
@@ -9,6 +9,7 @@
 
 / {
        model = "Google fennel sku1 board";
+       chassis-type = "convertible";
        compatible = "google,fennel-sku1", "google,fennel", "mediatek,mt8183";
 
        pwmleds {
index 5a1c39318a6caaa545be5b5c88cd6b877f346c65..757d0afd14fb064fc1de4608e65eb1a561c4dfa6 100644 (file)
@@ -9,6 +9,7 @@
 
 / {
        model = "Google fennel sku6 board";
+       chassis-type = "convertible";
        compatible = "google,fennel-sku6", "google,fennel", "mediatek,mt8183";
 };
 
index 3ea4fdb401184fb5316bbb94e77ae9fad1bb3f94..6641b087e7c5f3a957e43ac985137dfd84ac7878 100644 (file)
@@ -9,6 +9,7 @@
 
 / {
        model = "Google fennel sku7 board";
+       chassis-type = "convertible";
        compatible = "google,fennel-sku7", "google,fennel", "mediatek,mt8183";
 };
 
index 3fc5a6181d7e66716bfc92bec1aef643efd325cd..877256eab2622833f6e14b93eec629e610eb519c 100644 (file)
@@ -9,6 +9,7 @@
 
 / {
        model = "Google fennel14 sku2 board";
+       chassis-type = "laptop";
        compatible = "google,fennel-sku2", "google,fennel", "mediatek,mt8183";
 };
 
index 23ad0b91e9776fa7d1c2b458b717dfea337a9e13..b981dd31a430c6d1146f36f5dbc101ac5a04e810 100644 (file)
@@ -9,6 +9,7 @@
 
 / {
        model = "Google fennel14 sku0 board";
+       chassis-type = "laptop";
        compatible = "google,fennel-sku0", "google,fennel", "mediatek,mt8183";
 };
 
index e5bd9191e42619460a40b6a1edbd24be37b6abde..f3ac9c074226932ff0c810531d676d880594e42a 100644 (file)
@@ -9,6 +9,7 @@
 
 / {
        model = "Google kappa board";
+       chassis-type = "laptop";
        compatible = "google,kappa", "mediatek,mt8183";
 };
 
index 8fa89db03e639990bdcb3a6e8575e7822fa1a849..e8241587949b2bc238ffa85f8fa6b6ca78b1d6f5 100644 (file)
@@ -9,5 +9,6 @@
 
 / {
        model = "Google kenzo sku17 board";
+       chassis-type = "laptop";
        compatible = "google,juniper-sku17", "google,juniper", "mediatek,mt8183";
 };
index 4eb2a0d571af455af374cf98b05ec6ced5f4bf3d..ddb993521bbfee1b94f9451d329aab0784837825 100644 (file)
@@ -19,6 +19,6 @@
 
 &mmc1_pins_uhs {
        pins-clk {
-               drive-strength = <MTK_DRIVE_6mA>;
+               drive-strength = <6>;
        };
 };
index 6a733361e8ae2667f3ae14f78f6c070d23b76a38..10c4f920a7d82ea6efc01b2ab10959e90fad7239 100644 (file)
@@ -19,6 +19,6 @@
 
 &mmc1_pins_uhs {
        pins-clk {
-               drive-strength = <MTK_DRIVE_6mA>;
+               drive-strength = <6>;
        };
 };
index 6a7ae616512d620637a084698669fa64b486debe..cce326aec1aa594deb6f5b14340d3552d110b160 100644 (file)
@@ -17,7 +17,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&bt_pins_wakeup>;
 
-               wobt {
+               event-wobt {
                        label = "Wake on BT";
                        gpios = <&pio 42 GPIO_ACTIVE_HIGH>;
                        linux,code = <KEY_WAKEUP>;
        };
 };
 
-&wifi_wakeup {
-       wowlan {
-               gpios = <&pio 113 GPIO_ACTIVE_LOW>;
-       };
+&wifi_wakeup_event {
+       gpios = <&pio 113 GPIO_ACTIVE_LOW>;
 };
 
 &wifi_pwrseq {
 
 &mmc1_pins_default {
        pins-cmd-dat {
-               drive-strength = <MTK_DRIVE_6mA>;
+               drive-strength = <6>;
        };
        pins-clk {
-               drive-strength = <MTK_DRIVE_6mA>;
+               drive-strength = <6>;
        };
 };
 
 &mmc1_pins_uhs {
        pins-clk {
-               drive-strength = <MTK_DRIVE_6mA>;
+               drive-strength = <6>;
        };
 };
 
index 89208b843b276508f0218e7bdafdda3ed9d4ed85..928b205a616a0e4b52abf33f7609e4c388b1c57b 100644 (file)
@@ -9,6 +9,7 @@
 
 / {
        model = "Google willow board sku0";
+       chassis-type = "laptop";
        compatible = "google,willow-sku0", "google,willow", "mediatek,mt8183";
 };
 
index c7b20441d053da2bf5a014059d0df309ccd2fbf8..71307a8052d614e7ef6a4cb93586f6f8b35b4c0d 100644 (file)
@@ -9,5 +9,6 @@
 
 / {
        model = "Google willow board sku1";
+       chassis-type = "laptop";
        compatible = "google,willow-sku1", "google,willow", "mediatek,mt8183";
 };
index 7592e3b860377e5239ece9ba038ea49ae8ee0b90..fa4ab4d2899f9b7f866414335b703e6843aa25e7 100644 (file)
                vdd18-supply = <&pp1800_mipibrdg>;
                vdd33-supply = <&vddio_mipibrdg>;
 
-               #address-cells = <1>;
-               #size-cells = <0>;
-               port@0 {
-                       reg = <0>;
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
 
-                       anx7625_in: endpoint {
-                               remote-endpoint = <&dsi_out>;
+                       port@0 {
+                               reg = <0>;
+
+                               anx7625_in: endpoint {
+                                       remote-endpoint = <&dsi_out>;
+                               };
                        };
-               };
 
-               port@1 {
-                       reg = <1>;
+                       port@1 {
+                               reg = <1>;
 
-                       anx7625_out: endpoint {
-                               remote-endpoint = <&panel_in>;
+                               anx7625_out: endpoint {
+                                       remote-endpoint = <&panel_in>;
+                               };
                        };
                };
 
index 7739358008ee61443c301c19334b4b4fef1725da..5a416143b4a09bd51dcfc9b7ca87d4f77a9557ae 100644 (file)
@@ -12,6 +12,7 @@
 
 / {
        model = "MediaTek kodama sku32 board";
+       chassis-type = "tablet";
        compatible = "google,kodama-sku32", "google,kodama", "mediatek,mt8183";
 };
 
index 100191c6453ba3b6f69762654e7ef421bf87cd30..6345e969efae5fe8e574b840cc781717a6d375a3 100644 (file)
                pinctrl-names = "default";
                pinctrl-0 = <&wifi_pins_wakeup>;
 
-               button-wowlan {
+               wifi_wakeup_event: event-wowlan {
                        label = "Wake on WiFi";
                        gpios = <&pio 113 GPIO_ACTIVE_HIGH>;
                        linux,code = <KEY_WAKEUP>;
                                <PINMUX_GPIO172__FUNC_TDM_DATA1_2ND>,
                                <PINMUX_GPIO173__FUNC_TDM_DATA2_2ND>,
                                <PINMUX_GPIO10__FUNC_TDM_DATA3>; /*8ch-i2s to it6505*/
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                };
        };
 
                                <PINMUX_GPIO10__FUNC_GPIO10>;
                        input-enable;
                        bias-pull-down;
-                       drive-strength = <MTK_DRIVE_2mA>;
+                       drive-strength = <2>;
                };
        };
 
                        pinmux = <PINMUX_GPIO82__FUNC_SDA0>,
                                 <PINMUX_GPIO83__FUNC_SCL0>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO81__FUNC_SDA1>,
                                 <PINMUX_GPIO84__FUNC_SCL1>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO103__FUNC_SCL2>,
                                 <PINMUX_GPIO104__FUNC_SDA2>;
                        bias-disable;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO50__FUNC_SCL3>,
                                 <PINMUX_GPIO51__FUNC_SDA3>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO105__FUNC_SCL4>,
                                 <PINMUX_GPIO106__FUNC_SDA4>;
                        bias-disable;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO48__FUNC_SCL5>,
                                 <PINMUX_GPIO49__FUNC_SDA5>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                                 <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
                                 <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
                                 <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        input-enable;
                        mediatek,pull-up-adv = <10>;
                };
 
                pins-clk {
                        pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        mediatek,pull-down-adv = <10>;
                        input-enable;
                };
                };
                pins-rts {
                        pinmux = <PINMUX_GPIO47__FUNC_URTS1>;
-                       output-enable;
                };
                pins-cts {
                        pinmux = <PINMUX_GPIO46__FUNC_UCTS1>;
                };
                pins-rts {
                        pinmux = <PINMUX_GPIO47__FUNC_URTS1>;
-                       output-enable;
                };
                pins-cts {
                        pinmux = <PINMUX_GPIO46__FUNC_UCTS1>;
index 333c516af4908d58439fa4b70342b4d61d84a723..1aa668c3ccf9285ccc33aacb16d1c68c491475e2 100644 (file)
                        pinmux = <PINMUX_GPIO82__FUNC_SDA0>,
                                 <PINMUX_GPIO83__FUNC_SCL0>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO81__FUNC_SDA1>,
                                 <PINMUX_GPIO84__FUNC_SCL1>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO103__FUNC_SCL2>,
                                 <PINMUX_GPIO104__FUNC_SDA2>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO50__FUNC_SCL3>,
                                 <PINMUX_GPIO51__FUNC_SDA3>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO105__FUNC_SCL4>,
                                 <PINMUX_GPIO106__FUNC_SDA4>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                        pinmux = <PINMUX_GPIO48__FUNC_SCL5>,
                                 <PINMUX_GPIO49__FUNC_SDA5>;
                        mediatek,pull-up-adv = <3>;
-                       mediatek,drive-strength-adv = <00>;
                };
        };
 
                                 <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
                                 <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
                                 <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        input-enable;
                        mediatek,pull-up-adv = <10>;
                };
 
                pins_clk {
                        pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        mediatek,pull-down-adv = <10>;
                        input-enable;
                };
index 774ae5d9143f1ea95cc15a7148b5ec54c7d8552a..fbf145639b8c90b2c69da1cb4bac4f61ca7a1c9e 100644 (file)
                        status = "disabled";
                };
 
-               thermal: thermal@1100b000 {
+               thermal: thermal-sensor@1100b000 {
                        #thermal-sensor-cells = <1>;
                        compatible = "mediatek,mt8183-thermal";
                        reg = <0 0x1100b000 0 0xc00>;
                        };
                };
 
-               /* The tzts1 ~ tzts6 don't need to polling */
-               /* The tzts1 ~ tzts6 don't need to thermal throttle */
-
-               tzts1: tzts1 {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
+               tzts1: soc-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&thermal 1>;
                        sustainable-power = <5000>;
-                       trips {};
-                       cooling-maps {};
+                       trips {
+                               soc_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               soc_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
                };
 
-               tzts2: tzts2 {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
+               tzts2: gpu-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&thermal 2>;
                        sustainable-power = <5000>;
-                       trips {};
-                       cooling-maps {};
+
+                       trips {
+                               gpu_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               gpu_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
                };
 
-               tzts3: tzts3 {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
+               tzts3: md1-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&thermal 3>;
                        sustainable-power = <5000>;
-                       trips {};
-                       cooling-maps {};
+
+                       trips {
+                               md1_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               md1_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
                };
 
-               tzts4: tzts4 {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
+               tzts4: cpu-little-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&thermal 4>;
                        sustainable-power = <5000>;
-                       trips {};
-                       cooling-maps {};
+
+                       trips {
+                               cpul_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpul_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
                };
 
-               tzts5: tzts5 {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
+               tzts5: cpu-big-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&thermal 5>;
                        sustainable-power = <5000>;
-                       trips {};
-                       cooling-maps {};
+
+                       trips {
+                               cpub_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpub_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
                };
 
-               tztsABB: tztsABB {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
+               tztsABB: tsabb-thermal {
+                       polling-delay = <1000>;
+                       polling-delay-passive = <250>;
                        thermal-sensors = <&thermal 6>;
                        sustainable-power = <5000>;
-                       trips {};
-                       cooling-maps {};
+
+                       trips {
+                               tsabb_alert: trip-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               tsabb_crit: trip-crit {
+                                       temperature = <100000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
                };
        };
 };
diff --git a/src/arm64/mediatek/mt8186-corsola-voltorb-sku589824.dts b/src/arm64/mediatek/mt8186-corsola-voltorb-sku589824.dts
new file mode 100644 (file)
index 0000000..d16834e
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2022 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8186-corsola-voltorb.dtsi"
+
+/ {
+       model = "Google Voltorb sku589824 board";
+       compatible = "google,voltorb-sku589824", "google,voltorb",
+                    "mediatek,mt8186";
+};
diff --git a/src/arm64/mediatek/mt8186-corsola-voltorb-sku589825.dts b/src/arm64/mediatek/mt8186-corsola-voltorb-sku589825.dts
new file mode 100644 (file)
index 0000000..45e57f7
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2022 Google LLC
+ */
+
+/dts-v1/;
+#include "mt8186-corsola-voltorb.dtsi"
+
+/ {
+       model = "Google Voltorb sku589825 board";
+       compatible = "google,voltorb-sku589825", "google,voltorb",
+                    "mediatek,mt8186";
+};
+
+&i2c1 {
+       touchscreen@10 {
+               compatible = "elan,ekth6915";
+               reg = <0x10>;
+               interrupts-extended = <&pio 12 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&touchscreen_pins>;
+               reset-gpios = <&pio 60 GPIO_ACTIVE_LOW>;
+               vcc33-supply = <&pp3300_s3>;
+       };
+};
diff --git a/src/arm64/mediatek/mt8186-corsola-voltorb.dtsi b/src/arm64/mediatek/mt8186-corsola-voltorb.dtsi
new file mode 100644 (file)
index 0000000..52ec581
--- /dev/null
@@ -0,0 +1,103 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2022 Google LLC
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/spmi/spmi.h>
+
+#include "mt8186-corsola-steelix.dtsi"
+
+/ {
+       chassis-type = "laptop";
+
+       max98360a: max98360a {
+               compatible = "maxim,max98360a";
+               sdmode-gpios = <&pio 150 GPIO_ACTIVE_HIGH>;
+               #sound-dai-cells = <0>;
+       };
+};
+
+&cpu6 {
+       proc-supply = <&mt6319_buck1>;
+};
+
+&cpu7 {
+       proc-supply = <&mt6319_buck1>;
+};
+
+&gpio_keys {
+       status = "disabled";
+};
+
+&keyboard_controller {
+       linux,keymap = <
+               MATRIX_KEY(0x00, 0x02, KEY_BACK)
+               MATRIX_KEY(0x03, 0x02, KEY_REFRESH)
+               MATRIX_KEY(0x02, 0x02, KEY_ZOOM)
+               MATRIX_KEY(0x01, 0x02, KEY_SCALE)
+               MATRIX_KEY(0x03, 0x04, KEY_SYSRQ)
+               MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN)
+               MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP)
+               MATRIX_KEY(0x02, 0x09, KEY_MUTE)
+               MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN)
+               MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP)
+               CROS_STD_MAIN_KEYMAP
+       >;
+};
+
+&mt6366_vproc11_reg {
+       status = "disabled";
+};
+
+&cluster1_opp_14 {
+       opp-hz = /bits/ 64 <2050000000>;
+       opp-microvolt = <1118750>;
+};
+
+&cluster1_opp_15 {
+       opp-hz = /bits/ 64 <2200000000>;
+};
+
+&rt1019p{
+       status = "disabled";
+};
+
+&sound {
+       compatible = "mediatek,mt8186-mt6366-rt5682s-max98360-sound";
+       status = "okay";
+
+       spk-hdmi-playback-dai-link {
+               codec {
+                       sound-dai = <&it6505dptx>, <&max98360a>;
+               };
+       };
+};
+
+&spmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spmi_pins>;
+       #address-cells = <2>;
+       #size-cells = <0>;
+       status = "okay";
+
+       pmic@6 {
+               compatible = "mediatek,mt6319-regulator", "mediatek,mt6315-regulator";
+               reg = <0x6 SPMI_USID>;
+
+               regulators {
+                       mt6319_buck1: vbuck1 {
+                                       regulator-name = "ppvar_dvdd_proc_bc_mt6319";
+                                       regulator-min-microvolt = <600000>;
+                                       regulator-max-microvolt = <1193750>;
+                                       regulator-enable-ramp-delay = <256>;
+                                       regulator-allowed-modes = <0 1 2>;
+                                       regulator-always-on;
+                       };
+               };
+       };
+};
+
+&touchscreen {
+       status = "disabled";
+};
index 1807e9d6cb0e4123329c5b369fc83a61f7677721..afdab5724eaaac2da889ba93d018f349b78d5d5f 100644 (file)
@@ -42,7 +42,7 @@
                default-brightness-level = <576>;
        };
 
-       bt-sco-codec {
+       bt-sco {
                compatible = "linux,bt-sco";
                #sound-dai-cells = <0>;
        };
                mediatek,adsp = <&adsp>;
                mediatek,platform = <&afe>;
 
-               playback-codecs {
-                       sound-dai = <&it6505dptx>, <&rt1019p>;
+               audio-routing =
+                       "Headphone", "HPOL",
+                       "Headphone", "HPOR",
+                       "IN1P", "Headset Mic",
+                       "Speakers", "Speaker",
+                       "HDMI1", "TX";
+
+               hs-playback-dai-link {
+                       link-name = "I2S0";
+                       dai-format = "i2s";
+                       mediatek,clk-provider = "cpu";
+                       codec {
+                               sound-dai = <&rt5682s 0>;
+                       };
+               };
+
+               hs-capture-dai-link {
+                       link-name = "I2S1";
+                       dai-format = "i2s";
+                       mediatek,clk-provider = "cpu";
+                       codec {
+                               sound-dai = <&rt5682s 0>;
+                       };
                };
 
-               headset-codec {
-                       sound-dai = <&rt5682s 0>;
+               spk-share-dai-link {
+                       link-name = "I2S2";
+                       mediatek,clk-provider = "cpu";
+               };
+
+               spk-hdmi-playback-dai-link {
+                       link-name = "I2S3";
+                       dai-format = "i2s";
+                       mediatek,clk-provider = "cpu";
+                       /* RT1019P and IT6505 connected to the same I2S line */
+                       codec {
+                               sound-dai = <&it6505dptx>, <&rt1019p>;
+                       };
                };
        };
 
index b4315c9214dc511216665e1c4f3a00f33200dcb2..29d012d28edb1b81f1e5cbc0d3228d24818dcd7a 100644 (file)
@@ -8,6 +8,7 @@
 #include <dt-bindings/clock/mediatek,mt8188-clk.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/mailbox/mediatek,mt8188-gce.h>
 #include <dt-bindings/phy/phy.h>
 #include <dt-bindings/pinctrl/mediatek,mt8188-pinfunc.h>
 #include <dt-bindings/power/mediatek,mt8188-power.h>
                clock-output-names = "clk32k";
        };
 
+       gpu_opp_table: opp-table-gpu {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-390000000 {
+                       opp-hz = /bits/ 64 <390000000>;
+                       opp-microvolt = <575000>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-431000000 {
+                       opp-hz = /bits/ 64 <431000000>;
+                       opp-microvolt = <587500>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-473000000 {
+                       opp-hz = /bits/ 64 <473000000>;
+                       opp-microvolt = <600000>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-515000000 {
+                       opp-hz = /bits/ 64 <515000000>;
+                       opp-microvolt = <612500>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-556000000 {
+                       opp-hz = /bits/ 64 <556000000>;
+                       opp-microvolt = <625000>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-598000000 {
+                       opp-hz = /bits/ 64 <598000000>;
+                       opp-microvolt = <637500>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-640000000 {
+                       opp-hz = /bits/ 64 <640000000>;
+                       opp-microvolt = <650000>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-670000000 {
+                       opp-hz = /bits/ 64 <670000000>;
+                       opp-microvolt = <662500>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-700000000 {
+                       opp-hz = /bits/ 64 <700000000>;
+                       opp-microvolt = <675000>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-730000000 {
+                       opp-hz = /bits/ 64 <730000000>;
+                       opp-microvolt = <687500>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-760000000 {
+                       opp-hz = /bits/ 64 <760000000>;
+                       opp-microvolt = <700000>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-790000000 {
+                       opp-hz = /bits/ 64 <790000000>;
+                       opp-microvolt = <712500>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-835000000 {
+                       opp-hz = /bits/ 64 <835000000>;
+                       opp-microvolt = <731250>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-880000000 {
+                       opp-hz = /bits/ 64 <880000000>;
+                       opp-microvolt = <750000>;
+                       opp-supported-hw = <0xff>;
+               };
+               opp-915000000 {
+                       opp-hz = /bits/ 64 <915000000>;
+                       opp-microvolt = <775000>;
+                       opp-supported-hw = <0x8f>;
+               };
+               opp-915000000-5 {
+                       opp-hz = /bits/ 64 <915000000>;
+                       opp-microvolt = <762500>;
+                       opp-supported-hw = <0x30>;
+               };
+               opp-915000000-6 {
+                       opp-hz = /bits/ 64 <915000000>;
+                       opp-microvolt = <750000>;
+                       opp-supported-hw = <0x70>;
+               };
+               opp-950000000 {
+                       opp-hz = /bits/ 64 <950000000>;
+                       opp-microvolt = <800000>;
+                       opp-supported-hw = <0x8f>;
+               };
+               opp-950000000-5 {
+                       opp-hz = /bits/ 64 <950000000>;
+                       opp-microvolt = <775000>;
+                       opp-supported-hw = <0x30>;
+               };
+               opp-950000000-6 {
+                       opp-hz = /bits/ 64 <950000000>;
+                       opp-microvolt = <750000>;
+                       opp-supported-hw = <0x70>;
+               };
+       };
+
        pmu-a55 {
                compatible = "arm,cortex-a55-pmu";
                interrupt-parent = <&gic>;
                        #interrupt-cells = <2>;
                };
 
+               scpsys: syscon@10006000 {
+                       compatible = "mediatek,mt8188-scpsys", "syscon", "simple-mfd";
+                       reg = <0 0x10006000 0 0x1000>;
+
+                       /* System Power Manager */
+                       spm: power-controller {
+                               compatible = "mediatek,mt8188-power-controller";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               #power-domain-cells = <1>;
+
+                               /* power domain of the SoC */
+                               mfg0: power-domain@MT8188_POWER_DOMAIN_MFG0 {
+                                       reg = <MT8188_POWER_DOMAIN_MFG0>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       #power-domain-cells = <1>;
+
+                                       power-domain@MT8188_POWER_DOMAIN_MFG1 {
+                                               reg = <MT8188_POWER_DOMAIN_MFG1>;
+                                               clocks = <&topckgen CLK_APMIXED_MFGPLL>,
+                                                        <&topckgen CLK_TOP_MFG_CORE_TMP>;
+                                               clock-names = "mfg", "alt";
+                                               mediatek,infracfg = <&infracfg_ao>;
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+                                               #power-domain-cells = <1>;
+
+                                               power-domain@MT8188_POWER_DOMAIN_MFG2 {
+                                                       reg = <MT8188_POWER_DOMAIN_MFG2>;
+                                                       #power-domain-cells = <0>;
+                                               };
+
+                                               power-domain@MT8188_POWER_DOMAIN_MFG3 {
+                                                       reg = <MT8188_POWER_DOMAIN_MFG3>;
+                                                       #power-domain-cells = <0>;
+                                               };
+
+                                               power-domain@MT8188_POWER_DOMAIN_MFG4 {
+                                                       reg = <MT8188_POWER_DOMAIN_MFG4>;
+                                                       #power-domain-cells = <0>;
+                                               };
+                                       };
+                               };
+
+                               power-domain@MT8188_POWER_DOMAIN_VPPSYS0 {
+                                       reg = <MT8188_POWER_DOMAIN_VPPSYS0>;
+                                       clocks = <&topckgen CLK_TOP_VPP>,
+                                                <&topckgen CLK_TOP_CAM>,
+                                                <&topckgen CLK_TOP_CCU>,
+                                                <&topckgen CLK_TOP_IMG>,
+                                                <&topckgen CLK_TOP_VENC>,
+                                                <&topckgen CLK_TOP_VDEC>,
+                                                <&topckgen CLK_TOP_WPE_VPP>,
+                                                <&topckgen CLK_TOP_CFGREG_CLOCK_EN_VPP0>,
+                                                <&topckgen CLK_TOP_CFGREG_F26M_VPP0>,
+                                                <&vppsys0 CLK_VPP0_SMI_COMMON_MMSRAM>,
+                                                <&vppsys0 CLK_VPP0_GALS_VDO0_LARB0_MMSRAM>,
+                                                <&vppsys0 CLK_VPP0_GALS_VDO0_LARB1_MMSRAM>,
+                                                <&vppsys0 CLK_VPP0_GALS_VENCSYS_MMSRAM>,
+                                                <&vppsys0 CLK_VPP0_GALS_VENCSYS_CORE1_MMSRAM>,
+                                                <&vppsys0 CLK_VPP0_GALS_INFRA_MMSRAM>,
+                                                <&vppsys0 CLK_VPP0_GALS_CAMSYS_MMSRAM>,
+                                                <&vppsys0 CLK_VPP0_GALS_VPP1_LARB5_MMSRAM>,
+                                                <&vppsys0 CLK_VPP0_GALS_VPP1_LARB6_MMSRAM>,
+                                                <&vppsys0 CLK_VPP0_SMI_REORDER_MMSRAM>,
+                                                <&vppsys0 CLK_VPP0_SMI_IOMMU>,
+                                                <&vppsys0 CLK_VPP0_GALS_IMGSYS_CAMSYS>,
+                                                <&vppsys0 CLK_VPP0_GALS_EMI0_EMI1>,
+                                                <&vppsys0 CLK_VPP0_SMI_SUB_COMMON_REORDER>,
+                                                <&vppsys0 CLK_VPP0_SMI_RSI>,
+                                                <&vppsys0 CLK_VPP0_SMI_COMMON_LARB4>,
+                                                <&vppsys0 CLK_VPP0_GALS_VDEC_VDEC_CORE1>,
+                                                <&vppsys0 CLK_VPP0_GALS_VPP1_WPESYS>,
+                                                <&vppsys0 CLK_VPP0_GALS_VDO0_VDO1_VENCSYS_CORE1>;
+                                       clock-names = "top", "cam", "ccu", "img", "venc",
+                                                     "vdec", "wpe", "cfgck", "cfgxo",
+                                                     "ss-sram-cmn", "ss-sram-v0l0", "ss-sram-v0l1",
+                                                     "ss-sram-ve0", "ss-sram-ve1", "ss-sram-ifa",
+                                                     "ss-sram-cam", "ss-sram-v1l5", "ss-sram-v1l6",
+                                                     "ss-sram-rdr", "ss-iommu", "ss-imgcam",
+                                                     "ss-emi", "ss-subcmn-rdr", "ss-rsi",
+                                                     "ss-cmn-l4", "ss-vdec1", "ss-wpe",
+                                                     "ss-cvdo-ve1";
+                                       mediatek,infracfg = <&infracfg_ao>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       #power-domain-cells = <1>;
+
+                                       power-domain@MT8188_POWER_DOMAIN_VDOSYS0 {
+                                               reg = <MT8188_POWER_DOMAIN_VDOSYS0>;
+                                               clocks = <&topckgen CLK_TOP_CFGREG_CLOCK_EN_VDO0>,
+                                                        <&topckgen CLK_TOP_CFGREG_F26M_VDO0>,
+                                                        <&vdosys0 CLK_VDO0_SMI_GALS>,
+                                                        <&vdosys0 CLK_VDO0_SMI_COMMON>,
+                                                        <&vdosys0 CLK_VDO0_SMI_EMI>,
+                                                        <&vdosys0 CLK_VDO0_SMI_IOMMU>,
+                                                        <&vdosys0 CLK_VDO0_SMI_LARB>,
+                                                        <&vdosys0 CLK_VDO0_SMI_RSI>,
+                                                        <&vdosys0 CLK_VDO0_APB_BUS>;
+                                               clock-names = "cfgck", "cfgxo", "ss-gals",
+                                                             "ss-cmn", "ss-emi", "ss-iommu",
+                                                             "ss-larb", "ss-rsi", "ss-bus";
+                                               mediatek,infracfg = <&infracfg_ao>;
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+                                               #power-domain-cells = <1>;
+
+                                               power-domain@MT8188_POWER_DOMAIN_VPPSYS1 {
+                                                       reg = <MT8188_POWER_DOMAIN_VPPSYS1>;
+                                                       clocks = <&topckgen CLK_TOP_CFGREG_CLOCK_EN_VPP1>,
+                                                                <&topckgen CLK_TOP_CFGREG_F26M_VPP1>,
+                                                                <&vppsys1 CLK_VPP1_GALS5>,
+                                                                <&vppsys1 CLK_VPP1_GALS6>,
+                                                                <&vppsys1 CLK_VPP1_LARB5>,
+                                                                <&vppsys1 CLK_VPP1_LARB6>;
+                                                       clock-names = "cfgck", "cfgxo",
+                                                                     "ss-vpp1-g5", "ss-vpp1-g6",
+                                                                     "ss-vpp1-l5", "ss-vpp1-l6";
+                                                       mediatek,infracfg = <&infracfg_ao>;
+                                                       #power-domain-cells = <0>;
+                                               };
+
+                                               power-domain@MT8188_POWER_DOMAIN_VDEC1 {
+                                                       reg = <MT8188_POWER_DOMAIN_VDEC1>;
+                                                       clocks = <&vdecsys CLK_VDEC2_LARB1>;
+                                                       clock-names = "ss-vdec";
+                                                       mediatek,infracfg = <&infracfg_ao>;
+                                                       #power-domain-cells = <0>;
+                                               };
+
+                                               power-domain@MT8188_POWER_DOMAIN_VDEC0 {
+                                                       reg = <MT8188_POWER_DOMAIN_VDEC0>;
+                                                       clocks = <&vdecsys_soc CLK_VDEC1_SOC_LARB1>;
+                                                       clock-names = "ss-vdec";
+                                                       mediatek,infracfg = <&infracfg_ao>;
+                                                       #power-domain-cells = <0>;
+                                               };
+
+                                               cam_vcore: power-domain@MT8188_POWER_DOMAIN_CAM_VCORE {
+                                                       reg = <MT8188_POWER_DOMAIN_CAM_VCORE>;
+                                                       clocks = <&topckgen CLK_TOP_CAM>,
+                                                                <&topckgen CLK_TOP_CCU>,
+                                                                <&topckgen CLK_TOP_CCU_AHB>,
+                                                                <&topckgen CLK_TOP_CFGREG_CLOCK_ISP_AXI_GALS>;
+                                                       clock-names = "cam", "ccu", "bus", "cfgck";
+                                                       mediatek,infracfg = <&infracfg_ao>;
+                                                       #address-cells = <1>;
+                                                       #size-cells = <0>;
+                                                       #power-domain-cells = <1>;
+
+                                                       power-domain@MT8188_POWER_DOMAIN_CAM_MAIN {
+                                                               reg = <MT8188_POWER_DOMAIN_CAM_MAIN>;
+                                                               clocks = <&camsys CLK_CAM_MAIN_LARB13>,
+                                                                        <&camsys CLK_CAM_MAIN_LARB14>,
+                                                                        <&camsys CLK_CAM_MAIN_CAM2MM0_GALS>,
+                                                                        <&camsys CLK_CAM_MAIN_CAM2MM1_GALS>,
+                                                                        <&camsys CLK_CAM_MAIN_CAM2SYS_GALS>;
+                                                               clock-names= "ss-cam-l13", "ss-cam-l14",
+                                                                            "ss-cam-mm0", "ss-cam-mm1",
+                                                                            "ss-camsys";
+                                                               mediatek,infracfg = <&infracfg_ao>;
+                                                               #address-cells = <1>;
+                                                               #size-cells = <0>;
+                                                               #power-domain-cells = <1>;
+
+                                                               power-domain@MT8188_POWER_DOMAIN_CAM_SUBB {
+                                                                       reg = <MT8188_POWER_DOMAIN_CAM_SUBB>;
+                                                                       clocks = <&camsys CLK_CAM_MAIN_CAM_SUBB>,
+                                                                                <&camsys_rawb CLK_CAM_RAWB_LARBX>,
+                                                                                <&camsys_yuvb CLK_CAM_YUVB_LARBX>;
+                                                                       clock-names = "ss-camb-sub",
+                                                                                     "ss-camb-raw",
+                                                                                     "ss-camb-yuv";
+                                                                       #power-domain-cells = <0>;
+                                                               };
+
+                                                               power-domain@MT8188_POWER_DOMAIN_CAM_SUBA {
+                                                                       reg =<MT8188_POWER_DOMAIN_CAM_SUBA>;
+                                                                       clocks = <&camsys CLK_CAM_MAIN_CAM_SUBA>,
+                                                                                <&camsys_rawa CLK_CAM_RAWA_LARBX>,
+                                                                                <&camsys_yuva CLK_CAM_YUVA_LARBX>;
+                                                                       clock-names = "ss-cama-sub",
+                                                                                     "ss-cama-raw",
+                                                                                     "ss-cama-yuv";
+                                                                       #power-domain-cells = <0>;
+                                                               };
+                                                       };
+                                               };
+
+                                               power-domain@MT8188_POWER_DOMAIN_VDOSYS1 {
+                                                       reg = <MT8188_POWER_DOMAIN_VDOSYS1>;
+                                                       clocks = <&topckgen CLK_TOP_CFGREG_CLOCK_EN_VDO1>,
+                                                                <&topckgen CLK_TOP_CFGREG_F26M_VDO1>,
+                                                                <&vdosys1 CLK_VDO1_SMI_LARB2>,
+                                                                <&vdosys1 CLK_VDO1_SMI_LARB3>,
+                                                                <&vdosys1 CLK_VDO1_GALS>;
+                                                       clock-names = "cfgck", "cfgxo", "ss-larb2",
+                                                                     "ss-larb3", "ss-gals";
+                                                       mediatek,infracfg = <&infracfg_ao>;
+                                                       #address-cells = <1>;
+                                                       #size-cells = <0>;
+                                                       #power-domain-cells = <1>;
+
+                                                       power-domain@MT8188_POWER_DOMAIN_HDMI_TX {
+                                                               reg = <MT8188_POWER_DOMAIN_HDMI_TX>;
+                                                               clocks = <&topckgen CLK_TOP_HDMI_APB>,
+                                                                        <&topckgen CLK_TOP_HDCP_24M>;
+                                                               clock-names = "bus", "hdcp";
+                                                               mediatek,infracfg = <&infracfg_ao>;
+                                                               #power-domain-cells = <0>;
+                                                       };
+
+                                                       power-domain@MT8188_POWER_DOMAIN_DP_TX {
+                                                               reg = <MT8188_POWER_DOMAIN_DP_TX>;
+                                                               mediatek,infracfg = <&infracfg_ao>;
+                                                               #power-domain-cells = <0>;
+                                                       };
+
+                                                       power-domain@MT8188_POWER_DOMAIN_EDP_TX {
+                                                               reg = <MT8188_POWER_DOMAIN_EDP_TX>;
+                                                               mediatek,infracfg = <&infracfg_ao>;
+                                                               #power-domain-cells = <0>;
+                                                       };
+                                               };
+
+                                               power-domain@MT8188_POWER_DOMAIN_VENC {
+                                                       reg = <MT8188_POWER_DOMAIN_VENC>;
+                                                       clocks = <&vencsys CLK_VENC1_LARB>,
+                                                                <&vencsys CLK_VENC1_VENC>,
+                                                                <&vencsys CLK_VENC1_GALS>,
+                                                                <&vencsys CLK_VENC1_GALS_SRAM>;
+                                                       clock-names = "ss-ve1-larb", "ss-ve1-core",
+                                                                     "ss-ve1-gals", "ss-ve1-sram";
+                                                       mediatek,infracfg = <&infracfg_ao>;
+                                                       #power-domain-cells = <0>;
+                                               };
+
+                                               power-domain@MT8188_POWER_DOMAIN_WPE {
+                                                       reg = <MT8188_POWER_DOMAIN_WPE>;
+                                                       clocks = <&wpesys CLK_WPE_TOP_SMI_LARB7>,
+                                                                <&wpesys CLK_WPE_TOP_SMI_LARB7_PCLK_EN>;
+                                                       clock-names = "ss-wpe-l7", "ss-wpe-l7pce";
+                                                       mediatek,infracfg = <&infracfg_ao>;
+                                                       #power-domain-cells = <0>;
+                                               };
+                                       };
+                               };
+
+                               power-domain@MT8188_POWER_DOMAIN_PEXTP_MAC_P0 {
+                                       reg = <MT8188_POWER_DOMAIN_PEXTP_MAC_P0>;
+                                       mediatek,infracfg = <&infracfg_ao>;
+                                       clocks = <&pericfg_ao CLK_PERI_AO_PCIE_P0_FMEM>;
+                                       clock-names = "ss-pextp-fmem";
+                                       #power-domain-cells = <0>;
+                               };
+
+                               power-domain@MT8188_POWER_DOMAIN_CSIRX_TOP {
+                                       reg = <MT8188_POWER_DOMAIN_CSIRX_TOP>;
+                                       clocks = <&topckgen CLK_TOP_SENINF>,
+                                                <&topckgen CLK_TOP_SENINF1>;
+                                       clock-names = "seninf0", "seninf1";
+                                       #power-domain-cells = <0>;
+                               };
+
+                               power-domain@MT8188_POWER_DOMAIN_PEXTP_PHY_TOP {
+                                       reg = <MT8188_POWER_DOMAIN_PEXTP_PHY_TOP>;
+                                       #power-domain-cells = <0>;
+                               };
+
+                               power-domain@MT8188_POWER_DOMAIN_ADSP_AO {
+                                       reg = <MT8188_POWER_DOMAIN_ADSP_AO>;
+                                       clocks = <&topckgen CLK_TOP_AUDIO_LOCAL_BUS>,
+                                                <&topckgen CLK_TOP_ADSP>;
+                                       clock-names = "bus", "main";
+                                       mediatek,infracfg = <&infracfg_ao>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       #power-domain-cells = <1>;
+
+                                       power-domain@MT8188_POWER_DOMAIN_ADSP_INFRA {
+                                               reg = <MT8188_POWER_DOMAIN_ADSP_INFRA>;
+                                               mediatek,infracfg = <&infracfg_ao>;
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+                                               #power-domain-cells = <1>;
+
+                                               power-domain@MT8188_POWER_DOMAIN_AUDIO_ASRC {
+                                                       reg = <MT8188_POWER_DOMAIN_AUDIO_ASRC>;
+                                                       clocks = <&topckgen CLK_TOP_ASM_H>;
+                                                       clock-names = "asm";
+                                                       mediatek,infracfg = <&infracfg_ao>;
+                                                       #power-domain-cells = <0>;
+                                               };
+
+                                               power-domain@MT8188_POWER_DOMAIN_AUDIO {
+                                                       reg = <MT8188_POWER_DOMAIN_AUDIO>;
+                                                       clocks = <&topckgen CLK_TOP_A1SYS_HP>,
+                                                                <&topckgen CLK_TOP_AUD_INTBUS>,
+                                                                <&adsp_audio26m CLK_AUDIODSP_AUDIO26M>;
+                                                       clock-names = "a1sys", "intbus", "adspck";
+                                                       mediatek,infracfg = <&infracfg_ao>;
+                                                       #power-domain-cells = <0>;
+                                               };
+
+                                               power-domain@MT8188_POWER_DOMAIN_ADSP {
+                                                       reg = <MT8188_POWER_DOMAIN_ADSP>;
+                                                       mediatek,infracfg = <&infracfg_ao>;
+                                                       #power-domain-cells = <0>;
+                                               };
+                                       };
+                               };
+
+                               power-domain@MT8188_POWER_DOMAIN_ETHER {
+                                       reg = <MT8188_POWER_DOMAIN_ETHER>;
+                                       clocks = <&pericfg_ao CLK_PERI_AO_ETHERNET_MAC>;
+                                       clock-names = "ethermac";
+                                       mediatek,infracfg = <&infracfg_ao>;
+                                       #power-domain-cells = <0>;
+                               };
+                       };
+               };
+
                watchdog: watchdog@10007000 {
                        compatible = "mediatek,mt8188-wdt";
                        reg = <0 0x10007000 0 0x100>;
                        clock-names = "spi", "wrap";
                };
 
+               gce0: mailbox@10320000 {
+                       compatible = "mediatek,mt8188-gce";
+                       reg = <0 0x10320000 0 0x4000>;
+                       interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH 0>;
+                       #mbox-cells = <2>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_GCE>;
+               };
+
+               gce1: mailbox@10330000 {
+                       compatible = "mediatek,mt8188-gce";
+                       reg = <0 0x10330000 0 0x4000>;
+                       interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH 0>;
+                       #mbox-cells = <2>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_GCE2>;
+               };
+
                scp: scp@10500000 {
                        compatible = "mediatek,mt8188-scp";
                        reg = <0 0x10500000 0 0x100000>,
                        #clock-cells = <1>;
                };
 
+               gpu: gpu@13000000 {
+                       compatible = "mediatek,mt8188-mali", "arm,mali-valhall-jm";
+                       reg = <0 0x13000000 0 0x4000>;
+
+                       clocks = <&mfgcfg CLK_MFGCFG_BG3D>;
+                       interrupts = <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH 0>,
+                                    <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH 0>;
+                       interrupt-names = "job", "mmu", "gpu";
+                       operating-points-v2 = <&gpu_opp_table>;
+                       power-domains = <&spm MT8188_POWER_DOMAIN_MFG2>,
+                                       <&spm MT8188_POWER_DOMAIN_MFG3>,
+                                       <&spm MT8188_POWER_DOMAIN_MFG4>;
+                       power-domain-names = "core0", "core1", "core2";
+                       status = "disabled";
+               };
+
                mfgcfg: clock-controller@13fbf000 {
                        compatible = "mediatek,mt8188-mfgcfg";
                        reg = <0 0x13fbf000 0 0x1000>;
                        reg = <0 0x1a000000 0 0x1000>;
                        #clock-cells = <1>;
                };
+
+               vdosys0: syscon@1c01d000 {
+                       compatible = "mediatek,mt8188-vdosys0", "syscon";
+                       reg = <0 0x1c01d000 0 0x1000>;
+                       #clock-cells = <1>;
+                       mboxes = <&gce0 0 CMDQ_THR_PRIO_4>;
+                       mediatek,gce-client-reg = <&gce0 SUBSYS_1c01XXXX 0xd000 0x1000>;
+               };
+
+               vdosys1: syscon@1c100000 {
+                       compatible = "mediatek,mt8188-vdosys1", "syscon";
+                       reg = <0 0x1c100000 0 0x1000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       mboxes = <&gce0 1 CMDQ_THR_PRIO_4>;
+                       mediatek,gce-client-reg = <&gce0 SUBSYS_1c10XXXX 0 0x1000>;
+               };
        };
 };
index fd2cb8765a15caada23e78f32111d94b3cd31270..ac2673e56fb86cd3a002350e302d9fee005a5bac 100644 (file)
@@ -7,6 +7,7 @@
 
 / {
        model = "Google Hayato rev1";
+       chassis-type = "convertible";
        compatible = "google,hayato-rev1", "google,hayato", "mediatek,mt8192";
 };
 
index 3127ee5f6172eb2657b49c2d401e4f462441c198..cd86ad9ba28ab6e0255b40df2c6e902323d0d795 100644 (file)
@@ -7,6 +7,7 @@
 
 / {
        model = "Google Hayato rev5";
+       chassis-type = "convertible";
        compatible = "google,hayato-rev5-sku2", "google,hayato-sku2",
                     "google,hayato", "mediatek,mt8192";
 };
index bc88866ab2f5a4b24e8c093d1a6e09ef1ae09b10..29aa87e938882f94cb5358fe735e5b839687b366 100644 (file)
@@ -8,6 +8,7 @@
 
 / {
        model = "Google Spherion (rev0 - 3)";
+       chassis-type = "laptop";
        compatible = "google,spherion-rev3", "google,spherion-rev2",
                     "google,spherion-rev1", "google,spherion-rev0",
                     "google,spherion", "mediatek,mt8192";
index 0039158c9e6052ef91df0e04f7e897d22ff9365f..5e9e598bab9058efb562aa139128632e2472b2e0 100644 (file)
@@ -8,6 +8,7 @@
 
 / {
        model = "Google Spherion (rev4)";
+       chassis-type = "laptop";
        compatible = "google,spherion-rev4", "google,spherion",
                     "mediatek,mt8192";
 
index 7a704246678f03000c6640f5e3efc8d9fcb49884..08d71ddf36683e08b12384fee7a3abc6111ba6f6 100644 (file)
                regulator-boot-on;
                gpio = <&pio 127 GPIO_ACTIVE_HIGH>;
                vin-supply = <&pp3300_g>;
+               off-on-delay-us = <500000>;
        };
 
        /* separately switched 3.3V power rail */
index 84cbdf6e9eb0ca06b0187d14ab0c251ca1a9ef05..47dea10dd3b8b1e424f4d10fe5600a7e27cd4828 100644 (file)
                        };
                };
 
-               gpu0-thermal {
+               gpu-thermal {
                        polling-delay = <1000>;
                        polling-delay-passive = <250>;
                        thermal-sensors = <&lvts_ap MT8192_AP_GPU0>;
diff --git a/src/arm64/mediatek/mt8195-cherry-dojo-r1.dts b/src/arm64/mediatek/mt8195-cherry-dojo-r1.dts
new file mode 100644 (file)
index 0000000..8812384
--- /dev/null
@@ -0,0 +1,114 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2022 MediaTek Inc.
+ */
+/dts-v1/;
+#include "mt8195-cherry.dtsi"
+
+/ {
+       model = "HP Dojo (sku 1, 3, 5, 7) board";
+       chassis-type = "convertible";
+       compatible = "google,dojo-sku7", "google,dojo-sku5",
+                    "google,dojo-sku3", "google,dojo-sku1",
+                    "google,dojo", "mediatek,mt8195";
+};
+
+&audio_codec {
+       compatible = "realtek,rt5682s";
+       realtek,amic-delay-ms = <250>;
+};
+
+&i2c2 {
+       spk_r_amp: amplifier@38 {
+               compatible = "maxim,max98390";
+               reg = <0x38>;
+               reset-gpios = <&pio 100 GPIO_ACTIVE_LOW>;
+               sound-name-prefix = "Right";
+               #sound-dai-cells = <0>;
+       };
+
+       spk_l_amp: amplifier@39 {
+               compatible = "maxim,max98390";
+               reg = <0x39>;
+               sound-name-prefix = "Left";
+               #sound-dai-cells = <0>;
+       };
+};
+
+&i2c4 {
+       touchscreen@15 {
+               compatible = "hid-over-i2c";
+               reg = <0x15>;
+               hid-descr-addr = <0x0001>;
+               interrupts-extended = <&pio 92 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&touchscreen_pins>;
+               post-power-on-delay-ms = <10>;
+               vdd-supply = <&pp3300_s3>;
+       };
+};
+
+&keyboard_controller {
+       linux,keymap = <
+               CROS_STD_MAIN_KEYMAP
+
+               MATRIX_KEY(0x00, 0x02, KEY_BACK)
+               MATRIX_KEY(0x03, 0x02, KEY_REFRESH)
+               MATRIX_KEY(0x02, 0x02, KEY_ZOOM)
+               MATRIX_KEY(0x01, 0x02, KEY_SCALE)
+               MATRIX_KEY(0x03, 0x04, KEY_SYSRQ)
+               MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN)
+               MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP)
+               MATRIX_KEY(0x02, 0x09, KEY_KBDILLUMTOGGLE)
+               MATRIX_KEY(0x01, 0x09, KEY_PLAYPAUSE)
+               MATRIX_KEY(0x00, 0x04, KEY_MICMUTE)
+               MATRIX_KEY(0x00, 0x01, KEY_MUTE)
+               MATRIX_KEY(0x01, 0x05, KEY_VOLUMEDOWN)
+               MATRIX_KEY(0x03, 0x05, KEY_VOLUMEUP)
+       >;
+};
+
+&pcie0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie0_pins_default>;
+       status = "okay";
+};
+
+&pciephy {
+       status = "okay";
+};
+
+&pio_default {
+       pins-low-power-hdmi-disable {
+               pinmux = <PINMUX_GPIO31__FUNC_GPIO31>,
+                        <PINMUX_GPIO32__FUNC_GPIO32>,
+                        <PINMUX_GPIO33__FUNC_GPIO33>,
+                        <PINMUX_GPIO34__FUNC_GPIO34>,
+                        <PINMUX_GPIO35__FUNC_GPIO35>;
+               input-enable;
+               bias-pull-down;
+       };
+};
+
+&sound {
+       compatible = "mediatek,mt8195_mt6359_max98390_rt5682";
+       model = "m8195_m98390_5682s";
+
+       audio-routing =
+               "Headphone", "HPOL",
+               "Headphone", "HPOR",
+               "IN1P", "Headset Mic",
+               "Right Spk", "Right BE_OUT",
+               "Left Spk", "Left BE_OUT";
+
+       spk-playback-dai-link {
+               codec {
+                       sound-dai = <&spk_r_amp>, <&spk_l_amp>;
+               };
+       };
+};
+
+&spk_amplifier {
+       /* Disable RT1019P, not present on Dojo */
+       status = "disabled";
+};
index 4a11918da370483c287d5e03193e02656b617af1..fe5400e17b0f4392628868a91380ab556c070b26 100644 (file)
        spk_amplifier: rt1019p {
                compatible = "realtek,rt1019p";
                label = "rt1019p";
+               #sound-dai-cells = <0>;
                pinctrl-names = "default";
                pinctrl-0 = <&rt1019p_pins_default>;
                sdb-gpios = <&pio 100 GPIO_ACTIVE_HIGH>;
 &dp_tx {
        status = "okay";
 
+       #sound-dai-cells = <0>;
        pinctrl-names = "default";
        pinctrl-0 = <&dptx_pin>;
 
                /* Realtek RT5682i or RT5682s, sharing the same configuration */
                reg = <0x1a>;
                interrupts-extended = <&pio 89 IRQ_TYPE_EDGE_BOTH>;
+               #sound-dai-cells = <0>;
                realtek,jd-src = <1>;
 
                AVDD-supply = <&mt6359_vio18_ldo_reg>;
                "AFE_SOF_DL2", "AFE_SOF_DL3", "AFE_SOF_UL4", "AFE_SOF_UL5";
        pinctrl-names = "default";
        pinctrl-0 = <&aud_pins_default>;
+
+       audio-routing =
+               "Headphone", "HPOL",
+               "Headphone", "HPOR",
+               "IN1P", "Headset Mic",
+               "Ext Spk", "Speaker";
+
+       mm-dai-link {
+               link-name = "ETDM1_IN_BE";
+               mediatek,clk-provider = "cpu";
+       };
+
+       hs-playback-dai-link {
+               link-name = "ETDM1_OUT_BE";
+               mediatek,clk-provider = "cpu";
+               codec {
+                       sound-dai = <&audio_codec>;
+               };
+       };
+
+       hs-capture-dai-link {
+               link-name = "ETDM2_IN_BE";
+               mediatek,clk-provider = "cpu";
+               codec {
+                       sound-dai = <&audio_codec>;
+               };
+       };
+
+       spk-playback-dai-link {
+               link-name = "ETDM2_OUT_BE";
+               mediatek,clk-provider = "cpu";
+               codec {
+                       sound-dai = <&spk_amplifier>;
+               };
+       };
+
+       displayport-dai-link {
+               link-name = "DPTX_BE";
+               codec {
+                       sound-dai = <&dp_tx>;
+               };
+       };
 };
 
 &spi0 {
                MATRIX_KEY(0x02, 0x09, 0)       /* T8 */
                MATRIX_KEY(0x01, 0x09, 0)       /* T9 */
                MATRIX_KEY(0x00, 0x04, 0)       /* T10 */
+
+               /* T11 to T13 are present only on Dojo */
+               MATRIX_KEY(0x00, 0x01, 0)       /* T11 */
+               MATRIX_KEY(0x01, 0x05, 0)       /* T12 */
+               MATRIX_KEY(0x03, 0x05, 0)       /* T13 */
        >;
 
        linux,keymap = <
index b82f7176b4a1c62ec63f2d7686e1ce25088d6683..31d424b8fc7cedef65489392eb279b7fd2194a4a 100644 (file)
                                 <PINMUX_GPIO78__FUNC_GBE_TXD2>,
                                 <PINMUX_GPIO79__FUNC_GBE_TXD1>,
                                 <PINMUX_GPIO80__FUNC_GBE_TXD0>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                };
                pins-cc {
                        pinmux = <PINMUX_GPIO85__FUNC_GBE_TXC>,
                                 <PINMUX_GPIO88__FUNC_GBE_TXEN>,
                                 <PINMUX_GPIO87__FUNC_GBE_RXDV>,
                                 <PINMUX_GPIO86__FUNC_GBE_RXC>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                };
                pins-rxd {
                        pinmux = <PINMUX_GPIO81__FUNC_GBE_RXD3>,
        mmc0_default_pins: mmc0-default-pins {
                pins-clk {
                        pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
 
                                 <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
                                 <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
 
                pins-rst {
                        pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
        };
        mmc0_uhs_pins: mmc0-uhs-pins {
                pins-clk {
                        pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
 
                                 <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
                                 <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
 
                pins-ds {
                        pinmux = <PINMUX_GPIO127__FUNC_MSDC0_DSL>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
 
                pins-rst {
                        pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
        };
        mmc1_default_pins: mmc1-default-pins {
                pins-clk {
                        pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
 
                                 <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
                                 <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
 
        mmc1_uhs_pins: mmc1-uhs-pins {
                pins-clk {
                        pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
 
                                 <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
                                 <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
        };
index 341b6e074139699792f22c097e9c009ab5e036a2..83456d649ff7594d5346326c6d9b0234bbc0532b 100644 (file)
@@ -74,7 +74,6 @@
                        pinmux = <PINMUX_GPIO8__FUNC_SDA0>,
                                 <PINMUX_GPIO9__FUNC_SCL0>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
-                       mediatek,drive-strength-adv = <0>;
                        drive-strength = <6>;
                };
        };
@@ -84,7 +83,6 @@
                        pinmux = <PINMUX_GPIO10__FUNC_SDA1>,
                                 <PINMUX_GPIO11__FUNC_SCL1>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
-                       mediatek,drive-strength-adv = <0>;
                        drive-strength = <6>;
                };
        };
@@ -94,7 +92,7 @@
                        pinmux = <PINMUX_GPIO16__FUNC_SDA4>,
                                 <PINMUX_GPIO17__FUNC_SCL4>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
-                       mediatek,drive-strength-adv = <7>;
+                       drive-strength-microamp = <1000>;
                };
        };
 
index 5d8b68f86ce44655664c07276e8ae813307cb248..2ee45752583c00330c90cb92db742324c2b0a4fe 100644 (file)
                        };
                };
 
-               gpu0-thermal {
+               gpu-thermal {
                        polling-delay = <1000>;
                        polling-delay-passive = <250>;
                        thermal-sensors = <&lvts_ap MT8195_AP_GPU0>;
index 50cbaefa1a9936c6ff6c3bb7ccb94e7326d4f7a1..4211a992dd9db4b9625dbc3c00bea4ed503a6759 100644 (file)
        mmc1_uhs_pins: mmc1-uhs-pins {
                clk-pins {
                        pinmux = <MT8365_PIN_88_MSDC1_CLK__FUNC_MSDC1_CLK>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
 
                                 <MT8365_PIN_92_MSDC1_DAT3__FUNC_MSDC1_DAT3>,
                                 <MT8365_PIN_87_MSDC1_CMD__FUNC_MSDC1_CMD>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
        };
index 24581f7410aae50f4595d8d281429c937b87caf6..eb449bfa88030c5a9757cb9c4aab8cee751e9dbc 100644 (file)
                };
 
                scpsys: syscon@10006000 {
-                       compatible = "mediatek,mt8365-syscfg", "syscon", "simple-mfd";
+                       compatible = "mediatek,mt8365-scpsys", "syscon", "simple-mfd";
                        reg = <0 0x10006000 0 0x1000>;
-                       #power-domain-cells = <1>;
 
                        /* System Power Manager */
                        spm: power-controller {
diff --git a/src/arm64/mediatek/mt8390-genio-700-evk.dts b/src/arm64/mediatek/mt8390-genio-700-evk.dts
new file mode 100644 (file)
index 0000000..1474bef
--- /dev/null
@@ -0,0 +1,880 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2023 MediaTek Inc.
+ * Author: Chris Chen <chris-qj.chen@mediatek.com>
+ *        Pablo Sun <pablo.sun@mediatek.com>
+ *        Macpaul Lin <macpaul.lin@mediatek.com>
+ */
+/dts-v1/;
+
+#include "mt8188.dtsi"
+#include "mt6359.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pinctrl/mediatek,mt8188-pinfunc.h>
+#include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
+#include <dt-bindings/spmi/spmi.h>
+#include <dt-bindings/usb/pd.h>
+
+/ {
+       model = "MediaTek Genio-700 EVK";
+       compatible = "mediatek,mt8390-evk", "mediatek,mt8390",
+                    "mediatek,mt8188";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:921600n8";
+       };
+
+       firmware {
+               optee {
+                       compatible = "linaro,optee-tz";
+                       method = "smc";
+               };
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0 0x40000000 0x2 0x00000000>;
+       };
+
+       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 */
+               };
+       };
+
+       common_fixed_5v: regulator-0 {
+               compatible = "regulator-fixed";
+               regulator-name = "5v_en";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&pio 10 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       edp_panel_fixed_3v3: regulator-1 {
+               compatible = "regulator-fixed";
+               regulator-name = "edp_panel_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               enable-active-high;
+               gpio = <&pio 15 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&edp_panel_3v3_en_pins>;
+       };
+
+       gpio_fixed_3v3: regulator-2 {
+               compatible = "regulator-fixed";
+               regulator-name = "gpio_3v3_en";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pio 9 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       sdio_fixed_1v8: regulator-3 {
+               compatible = "regulator-fixed";
+               regulator-name = "sdio_io";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       sdio_fixed_3v3: regulator-4 {
+               compatible = "regulator-fixed";
+               regulator-name = "sdio_card";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pio 74 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       touch0_fixed_3v3: regulator-5 {
+               compatible = "regulator-fixed";
+               regulator-name = "touch_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pio 119 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       usb_hub_fixed_3v3: regulator-6 {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_hub_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pio 112 GPIO_ACTIVE_HIGH>; /* HUB_3V3_EN */
+               startup-delay-us = <10000>;
+               enable-active-high;
+       };
+
+       usb_hub_reset_1v8: regulator-7 {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_hub_reset";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               gpio = <&pio 7 GPIO_ACTIVE_HIGH>; /* HUB_RESET */
+               vin-supply = <&usb_hub_fixed_3v3>;
+       };
+
+       usb_p0_vbus: regulator-8 {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_p0_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&pio 84 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       usb_p1_vbus: regulator-9 {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_p1_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&pio 87 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       usb_p2_vbus: regulator-10 {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_p2_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+       };
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+
+       touchscreen@5d {
+               compatible = "goodix,gt9271";
+               reg = <0x5d>;
+               interrupt-parent = <&pio>;
+               interrupts-extended = <&pio 6 IRQ_TYPE_EDGE_RISING>;
+               irq-gpios = <&pio 6 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
+               AVDD28-supply = <&touch0_fixed_3v3>;
+               VDDIO-supply = <&mt6359_vio18_ldo_reg>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&touch_pins>;
+       };
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4_pins>;
+       pinctrl-1 = <&rt1715_int_pins>;
+       clock-frequency = <1000000>;
+       status = "okay";
+};
+
+&i2c5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c5_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c6_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&mmc0 {
+       status = "okay";
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc0_default_pins>;
+       pinctrl-1 = <&mmc0_uhs_pins>;
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       cap-mmc-highspeed;
+       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       supports-cqe;
+       cap-mmc-hw-reset;
+       no-sdio;
+       no-sd;
+       hs400-ds-delay = <0x1481b>;
+       vmmc-supply = <&mt6359_vemc_1_ldo_reg>;
+       vqmmc-supply = <&mt6359_vufs_ldo_reg>;
+       non-removable;
+};
+
+&mmc1 {
+       status = "okay";
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc1_default_pins>;
+       pinctrl-1 = <&mmc1_uhs_pins>;
+       bus-width = <4>;
+       max-frequency = <200000000>;
+       cap-sd-highspeed;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       no-mmc;
+       no-sdio;
+       cd-gpios = <&pio 2 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&mt6359_vpa_buck_reg>;
+       vqmmc-supply = <&mt6359_vsim1_ldo_reg>;
+};
+
+&mt6359_vbbck_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vcn18_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vcn33_2_bt_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vcore_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vgpu11_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vpa_buck_reg {
+       regulator-max-microvolt = <3100000>;
+};
+
+&mt6359_vpu_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vrf12_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vsim1_ldo_reg {
+       regulator-enable-ramp-delay = <480>;
+};
+
+&mt6359_vufs_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359codec {
+       mediatek,mic-type-0 = <1>; /* ACC */
+       mediatek,mic-type-1 = <3>; /* DCC */
+};
+
+&pio {
+       audio_default_pins: audio-default-pins {
+               pins-cmd-dat {
+                       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>,
+                                <PINMUX_GPIO107__FUNC_B0_I2SIN_MCK>,
+                                <PINMUX_GPIO108__FUNC_B0_I2SIN_BCK>,
+                                <PINMUX_GPIO109__FUNC_B0_I2SIN_WS>,
+                                <PINMUX_GPIO110__FUNC_I0_I2SIN_D0>,
+                                <PINMUX_GPIO114__FUNC_O_I2SO2_MCK>,
+                                <PINMUX_GPIO115__FUNC_B0_I2SO2_BCK>,
+                                <PINMUX_GPIO116__FUNC_B0_I2SO2_WS>,
+                                <PINMUX_GPIO117__FUNC_O_I2SO2_D0>,
+                                <PINMUX_GPIO118__FUNC_O_I2SO2_D1>,
+                                <PINMUX_GPIO121__FUNC_B0_PCM_CLK>,
+                                <PINMUX_GPIO122__FUNC_B0_PCM_SYNC>,
+                                <PINMUX_GPIO124__FUNC_I0_PCM_DI>,
+                                <PINMUX_GPIO125__FUNC_O_DMIC1_CLK>,
+                                <PINMUX_GPIO126__FUNC_I0_DMIC1_DAT>,
+                                <PINMUX_GPIO128__FUNC_O_DMIC2_CLK>,
+                                <PINMUX_GPIO129__FUNC_I0_DMIC2_DAT>;
+               };
+       };
+
+       dptx_pins: dptx-pins {
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO46__FUNC_I0_DP_TX_HPD>;
+                       bias-pull-up;
+               };
+       };
+
+       edp_panel_3v3_en_pins: edp-panel-3v3-en-pins {
+               pins1 {
+                       pinmux = <PINMUX_GPIO15__FUNC_B_GPIO15>;
+                       output-high;
+               };
+       };
+
+       eth_default_pins: eth-default-pins {
+               pins-cc {
+                       pinmux = <PINMUX_GPIO139__FUNC_B0_GBE_TXC>,
+                                <PINMUX_GPIO140__FUNC_I0_GBE_RXC>,
+                                <PINMUX_GPIO141__FUNC_I0_GBE_RXDV>,
+                                <PINMUX_GPIO142__FUNC_O_GBE_TXEN>;
+                       drive-strength = <8>;
+               };
+
+               pins-mdio {
+                       pinmux = <PINMUX_GPIO143__FUNC_O_GBE_MDC>,
+                                <PINMUX_GPIO144__FUNC_B1_GBE_MDIO>;
+                       drive-strength = <8>;
+                       input-enable;
+               };
+
+               pins-power {
+                       pinmux = <PINMUX_GPIO145__FUNC_B_GPIO145>,
+                                <PINMUX_GPIO146__FUNC_B_GPIO146>;
+                       output-high;
+               };
+
+               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>;
+                       drive-strength = <8>;
+               };
+
+               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>;
+               };
+       };
+
+       eth_sleep_pins: eth-sleep-pins {
+               pins-cc {
+                       pinmux = <PINMUX_GPIO139__FUNC_B_GPIO139>,
+                                <PINMUX_GPIO140__FUNC_B_GPIO140>,
+                                <PINMUX_GPIO141__FUNC_B_GPIO141>,
+                                <PINMUX_GPIO142__FUNC_B_GPIO142>;
+               };
+
+               pins-mdio {
+                       pinmux = <PINMUX_GPIO143__FUNC_B_GPIO143>,
+                                <PINMUX_GPIO144__FUNC_B_GPIO144>;
+                       input-disable;
+                       bias-disable;
+               };
+
+               pins-rxd {
+                       pinmux = <PINMUX_GPIO135__FUNC_B_GPIO135>,
+                                <PINMUX_GPIO136__FUNC_B_GPIO136>,
+                                <PINMUX_GPIO137__FUNC_B_GPIO137>,
+                                <PINMUX_GPIO138__FUNC_B_GPIO138>;
+               };
+
+               pins-txd {
+                       pinmux = <PINMUX_GPIO131__FUNC_B_GPIO131>,
+                                <PINMUX_GPIO132__FUNC_B_GPIO132>,
+                                <PINMUX_GPIO133__FUNC_B_GPIO133>,
+                                <PINMUX_GPIO134__FUNC_B_GPIO134>;
+               };
+       };
+
+       i2c0_pins: i2c0-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO56__FUNC_B1_SDA0>,
+                                <PINMUX_GPIO55__FUNC_B1_SCL0>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_011>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       i2c1_pins: i2c1-pins {
+               pins {
+                       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 {
+                       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 {
+                       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 {
+                       pinmux = <PINMUX_GPIO64__FUNC_B1_SDA4>,
+                                <PINMUX_GPIO63__FUNC_B1_SCL4>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_011>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       i2c5_pins: i2c5-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO66__FUNC_B1_SDA5>,
+                                <PINMUX_GPIO65__FUNC_B1_SCL5>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_011>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       i2c6_pins: i2c6-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO68__FUNC_B1_SDA6>,
+                                <PINMUX_GPIO67__FUNC_B1_SCL6>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_011>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       gpio_key_pins: gpio-key-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO42__FUNC_B1_KPCOL0>,
+                                <PINMUX_GPIO43__FUNC_B1_KPCOL1>,
+                                <PINMUX_GPIO44__FUNC_B1_KPROW0>;
+               };
+       };
+
+       mmc0_default_pins: mmc0-default-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO157__FUNC_B1_MSDC0_CLK>;
+                       drive-strength = <6>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               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-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-clk {
+                       pinmux = <PINMUX_GPIO157__FUNC_B1_MSDC0_CLK>;
+                       drive-strength = <8>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               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-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-clk {
+                       pinmux = <PINMUX_GPIO164__FUNC_B1_MSDC1_CLK>;
+                       drive-strength = <6>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               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-insert {
+                       pinmux = <PINMUX_GPIO2__FUNC_B_GPIO2>;
+                       bias-pull-up;
+               };
+       };
+
+       mmc1_uhs_pins: mmc1-uhs-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO164__FUNC_B1_MSDC1_CLK>;
+                       drive-strength = <6>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               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>;
+               };
+       };
+
+       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>;
+               };
+
+               pins-pcm {
+                       pinmux = <PINMUX_GPIO123__FUNC_O_PCM_DO>;
+               };
+       };
+
+       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>;
+               };
+       };
+
+       mmc2_dat1_pins: mmc2-dat1-pins {
+               pins-dat1 {
+                       pinmux = <PINMUX_GPIO172__FUNC_B1_MSDC2_DAT1>;
+                       input-enable;
+                       drive-strength = <6>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       panel_default_pins: panel-default-pins {
+               pins-dcdc {
+                       pinmux = <PINMUX_GPIO45__FUNC_B_GPIO45>;
+                       output-low;
+               };
+
+               pins-en {
+                       pinmux = <PINMUX_GPIO111__FUNC_B_GPIO111>;
+                       output-low;
+               };
+
+               pins-rst {
+                       pinmux = <PINMUX_GPIO25__FUNC_B_GPIO25>;
+                       output-high;
+               };
+       };
+
+       rt1715_int_pins: rt1715-int-pins {
+               pins_cmd0_dat {
+                       pinmux = <PINMUX_GPIO12__FUNC_B_GPIO12>;
+                       bias-pull-up;
+                       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;
+               };
+       };
+
+       spi2_pins: spi2-pins {
+               pins-spi {
+                       pinmux = <PINMUX_GPIO79__FUNC_O_SPIM2_CSB>,
+                               <PINMUX_GPIO80__FUNC_O_SPIM2_CLK>,
+                               <PINMUX_GPIO81__FUNC_B0_SPIM2_MOSI>,
+                               <PINMUX_GPIO82__FUNC_B0_SPIM2_MISO>;
+                       bias-disable;
+               };
+       };
+
+       touch_pins: touch-pins {
+               pins-irq {
+                       pinmux = <PINMUX_GPIO6__FUNC_B_GPIO6>;
+                       input-enable;
+                       bias-disable;
+               };
+
+               pins-reset {
+                       pinmux = <PINMUX_GPIO5__FUNC_B_GPIO5>;
+                       output-high;
+               };
+       };
+
+       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;
+               };
+       };
+
+       usb_default_pins: usb-default-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_default_pins: usb1-default-pins {
+               pins-valid {
+                       pinmux = <PINMUX_GPIO88__FUNC_I0_VBUSVALID_1P>;
+                       input-enable;
+               };
+
+               pins-usb-hub-3v3-en {
+                       pinmux = <PINMUX_GPIO112__FUNC_B_GPIO112>;
+                       output-high;
+               };
+       };
+
+       wifi_pwrseq_pins: wifi-pwrseq-pins {
+               pins-wifi-enable {
+                       pinmux = <PINMUX_GPIO127__FUNC_B_GPIO127>;
+                       output-low;
+               };
+       };
+};
+
+&pmic {
+       interrupt-parent = <&pio>;
+       interrupts = <222 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&scp {
+       memory-region = <&scp_mem>;
+       status = "okay";
+};
+
+&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";
+};
+
+&spi2 {
+       pinctrl-0 = <&spi2_pins>;
+       pinctrl-names = "default";
+       mediatek,pad-select = <0>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+};
+
+&u3phy0 {
+       status = "okay";
+};
+
+&u3phy1 {
+       status = "okay";
+};
+
+&u3phy2 {
+       status = "okay";
+};
+
+&xhci0 {
+       status = "okay";
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+};
+
+&xhci1 {
+       status = "okay";
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       vbus-supply = <&usb_hub_reset_1v8>;
+};
+
+&xhci2 {
+       status = "okay";
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+};
index 1558649f633c0b1ce24a8ba520e576a0df774bf7..a06610fff8adef57c2b5c0e0db3bab95e05ca5d6 100644 (file)
                                 <PINMUX_GPIO86__FUNC_GBE_RXC>,
                                 <PINMUX_GPIO87__FUNC_GBE_RXDV>,
                                 <PINMUX_GPIO88__FUNC_GBE_TXEN>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                };
 
                pins-mdio {
                                 <PINMUX_GPIO78__FUNC_GBE_TXD2>,
                                 <PINMUX_GPIO79__FUNC_GBE_TXD1>,
                                 <PINMUX_GPIO80__FUNC_GBE_TXD0>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                };
        };
 
                        pinmux = <PINMUX_GPIO12__FUNC_SDA2>,
                                 <PINMUX_GPIO13__FUNC_SCL2>;
                        bias-pull-up = <MTK_PULL_SET_RSEL_111>;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                };
        };
 
        mmc0_default_pins: mmc0-default-pins {
                pins-clk {
                        pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
 
                                 <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
                                 <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
 
                pins-rst {
                        pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
-                       drive-strength = <MTK_DRIVE_6mA>;
+                       drive-strength = <6>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
        };
        mmc0_uhs_pins: mmc0-uhs-pins {
                pins-clk {
                        pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
 
                                 <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
                                 <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
 
                pins-ds {
                        pinmux = <PINMUX_GPIO127__FUNC_MSDC0_DSL>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
 
                pins-rst {
                        pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
        };
        mmc1_default_pins: mmc1-default-pins {
                pins-clk {
                        pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
 
                                 <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
                                 <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
        };
        mmc1_uhs_pins: mmc1-uhs-pins {
                pins-clk {
                        pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
                };
 
                                 <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
                                 <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
                        input-enable;
-                       drive-strength = <MTK_DRIVE_8mA>;
+                       drive-strength = <8>;
                        bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
                };
        };
 
 &u3phy1 {
        status = "okay";
+
+       u3port1: usb-phy@700 {
+               mediatek,force-mode;
+       };
 };
 
 &u3phy2 {
 };
 
 &xhci1 {
+       phys = <&u2port1 PHY_TYPE_USB2>,
+              <&u3port1 PHY_TYPE_USB3>;
        vusb33-supply = <&mt6359_vusb_ldo_reg>;
        status = "okay";
 };
diff --git a/src/arm64/mediatek/mt8395-kontron-3-5-sbc-i1200.dts b/src/arm64/mediatek/mt8395-kontron-3-5-sbc-i1200.dts
new file mode 100644 (file)
index 0000000..e4b2af9
--- /dev/null
@@ -0,0 +1,1127 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2024 Kontron Europe GmbH
+ *
+ * Author: Michael Walle <mwalle@kernel.org>
+ */
+/dts-v1/;
+
+#include "mt8195.dtsi"
+#include "mt6359.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/mt8195-pinfunc.h>
+#include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
+#include <dt-bindings/spmi/spmi.h>
+
+/ {
+       model = "Kontron 3.5\"-SBC-i1200";
+       compatible = "kontron,3-5-sbc-i1200", "mediatek,mt8395", "mediatek,mt8195";
+
+       aliases {
+               mmc0 = &mmc0;
+               mmc1 = &mmc1;
+               serial0 = &uart1;
+               serial1 = &uart2;
+               serial2 = &uart3;
+               serial3 = &uart4;
+               serial4 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       firmware {
+               optee {
+                       compatible = "linaro,optee-tz";
+                       method = "smc";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pins>;
+
+               key-0 {
+                       gpios = <&pio 106 GPIO_ACTIVE_LOW>;
+                       label = "volume_up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins>;
+
+               led-0 {
+                       gpios = <&pio 107 GPIO_ACTIVE_HIGH>;
+                       default-state = "keep";
+                       function = LED_FUNCTION_POWER;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0 0x40000000 0x0 0x80000000>;
+       };
+
+       vsys: regulator-vsys {
+               compatible = "regulator-fixed";
+               regulator-name = "vsys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       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;
+               };
+
+               vpu_mem: memory@53000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x53000000 0 0x1400000>; /* 20 MB */
+               };
+
+               /* 2 MiB reserved for ARM Trusted Firmware (BL31) */
+               bl31_secmon_mem: memory@54600000 {
+                       no-map;
+                       reg = <0 0x54600000 0x0 0x200000>;
+               };
+
+               snd_dma_mem: memory@60000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x60000000 0 0x1100000>;
+                       no-map;
+               };
+
+               apu_mem: memory@62000000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0 0x62000000 0 0x1400000>; /* 20 MB */
+               };
+       };
+
+       thermal_sensor0: thermal-sensor-0 {
+               compatible = "generic-adc-thermal";
+               #thermal-sensor-cells = <0>;
+               io-channels = <&auxadc 0>;
+               io-channel-names = "sensor-channel";
+               temperature-lookup-table = <(-25000) 1474
+                                           (-20000) 1374
+                                           (-15000) 1260
+                                           (-10000) 1134
+                                            (-5000) 1004
+                                                  0 874
+                                               5000 750
+                                              10000 635
+                                              15000 532
+                                              20000 443
+                                              25000 367
+                                              30000 303
+                                              35000 250
+                                              40000 206
+                                              45000 170
+                                              50000 141
+                                              55000 117
+                                              60000 97
+                                              65000 81
+                                              70000 68
+                                              75000 57
+                                              80000 48
+                                              85000 41
+                                              90000 35
+                                              95000 30
+                                             100000 25
+                                             105000 22
+                                             110000 19
+                                             115000 16
+                                             120000 14
+                                             125000 12
+                                             130000 10
+                                             135000 9
+                                             140000 8
+                                             145000 7
+                                             150000 6>;
+       };
+
+       thermal_sensor1: thermal-sensor-1 {
+               compatible = "generic-adc-thermal";
+               #thermal-sensor-cells = <0>;
+               io-channels = <&auxadc 1>;
+               io-channel-names = "sensor-channel";
+               temperature-lookup-table = <(-25000) 1474
+                                           (-20000) 1374
+                                           (-15000) 1260
+                                           (-10000) 1134
+                                            (-5000) 1004
+                                                  0 874
+                                               5000 750
+                                              10000 635
+                                              15000 532
+                                              20000 443
+                                              25000 367
+                                              30000 303
+                                              35000 250
+                                              40000 206
+                                              45000 170
+                                              50000 141
+                                              55000 117
+                                              60000 97
+                                              65000 81
+                                              70000 68
+                                              75000 57
+                                              80000 48
+                                              85000 41
+                                              90000 35
+                                              95000 30
+                                             100000 25
+                                             105000 22
+                                             110000 19
+                                             115000 16
+                                             120000 14
+                                             125000 12
+                                             130000 10
+                                             135000 9
+                                             140000 8
+                                             145000 7
+                                             150000 6>;
+       };
+
+       thermal_sensor2: thermal-sensor-2 {
+               compatible = "generic-adc-thermal";
+               #thermal-sensor-cells = <0>;
+               io-channels = <&auxadc 2>;
+               io-channel-names = "sensor-channel";
+               temperature-lookup-table = <(-25000) 1474
+                                           (-20000) 1374
+                                           (-15000) 1260
+                                           (-10000) 1134
+                                            (-5000) 1004
+                                                  0 874
+                                               5000 750
+                                              10000 635
+                                              15000 532
+                                              20000 443
+                                              25000 367
+                                              30000 303
+                                              35000 250
+                                              40000 206
+                                              45000 170
+                                              50000 141
+                                              55000 117
+                                              60000 97
+                                              65000 81
+                                              70000 68
+                                              75000 57
+                                              80000 48
+                                              85000 41
+                                              90000 35
+                                              95000 30
+                                             100000 25
+                                             105000 22
+                                             110000 19
+                                             115000 16
+                                             120000 14
+                                             125000 12
+                                             130000 10
+                                             135000 9
+                                             140000 8
+                                             145000 7
+                                             150000 6>;
+       };
+};
+
+&auxadc {
+       status = "okay";
+};
+
+&eth {
+       phy-mode ="rgmii-id";
+       phy-handle = <&ethernet_phy0>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&eth_default_pins>;
+       pinctrl-1 = <&eth_sleep_pins>;
+       status = "okay";
+
+       mdio {
+               ethernet_phy0: ethernet-phy@1 {
+                       compatible = "ethernet-phy-id001c.c916";
+                       reg = <0x1>;
+                       interrupts-extended = <&pio 94 IRQ_TYPE_LEVEL_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <80000>;
+                       reset-gpios = <&pio 93 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&gpu {
+       status = "okay";
+       mali-supply = <&mt6315_7_vbuck1>;
+};
+
+/* CSI1/CSI2 connector */
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+       clock-frequency = <100000>;
+       status = "okay";
+};
+
+/* CSI3 connector */
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+       clock-frequency = <100000>;
+       status = "okay";
+};
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins>;
+       clock-frequency = <400000>;
+       status = "okay";
+
+       /* LVDS bridge @f */
+};
+
+/* Touch panel connector */
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3_pins>;
+       clock-frequency = <100000>;
+       status = "okay";
+};
+
+/* B2B connector */
+&i2c4 {
+       clock-frequency = <100000>;
+       pinctrl-0 = <&i2c4_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&i2c6 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&i2c6_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       mt6360: pmic@34 {
+               compatible = "mediatek,mt6360";
+               reg = <0x34>;
+               interrupt-controller;
+               interrupts-extended = <&pio 101 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-names = "IRQB";
+               #interrupt-cells = <1>;
+
+               regulator {
+                       compatible = "mediatek,mt6360-regulator";
+                       LDO_VIN1-supply = <&vsys>;
+                       LDO_VIN2-supply = <&vsys>;
+                       LDO_VIN3-supply = <&vsys>;
+
+                       mt6360_buck1: BUCK1 {
+                               regulator-name = "emi_vdd2";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP
+                                                          MT6360_OPMODE_ULP>;
+                               regulator-always-on;
+                       };
+
+                       mt6360_buck2: BUCK2 {
+                               regulator-name = "emi_vddq";
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP
+                                                          MT6360_OPMODE_ULP>;
+                               regulator-always-on;
+                       };
+
+                       mt6360_ldo1: LDO1 {
+                               regulator-name = "mt6360_ldo1"; /* Test point */
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3600000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       mt6360_ldo2: LDO2 {
+                               regulator-name = "panel1_p1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       mt6360_ldo3: LDO3 {
+                               regulator-name = "vmc_pmu";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       mt6360_ldo5: LDO5 {
+                               regulator-name = "vmch_pmu";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       mt6360_ldo6: LDO6 {
+                               regulator-name = "mt6360_ldo6"; /* Test point */
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <2100000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       mt6360_ldo7: LDO7 {
+                               regulator-name = "emi_vmddr_en";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&mmc0 {
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc0_default_pins>;
+       pinctrl-1 = <&mmc0_uhs_pins>;
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       hs400-ds-delay = <0x14c11>;
+       cap-mmc-highspeed;
+       cap-mmc-hw-reset;
+       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       no-sdio;
+       no-sd;
+       non-removable;
+       vmmc-supply = <&mt6359_vemc_1_ldo_reg>;
+       vqmmc-supply = <&mt6359_vufs_ldo_reg>;
+       status = "okay";
+};
+
+&mmc1 {
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc1_default_pins>, <&mmc1_detect_pins>;
+       pinctrl-1 = <&mmc1_default_pins>;
+       cd-gpios = <&pio 129 GPIO_ACTIVE_LOW>;
+       bus-width = <4>;
+       max-frequency = <200000000>;
+       cap-sd-highspeed;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       no-mmc;
+       vmmc-supply = <&mt6360_ldo5>;
+       vqmmc-supply = <&mt6360_ldo3>;
+       status = "okay";
+};
+
+&mt6359_vbbck_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vcore_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vgpu11_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vproc1_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vproc2_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vpu_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vrf12_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vsram_md_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vsram_others_ldo_reg {
+       regulator-always-on;
+};
+
+&nor_flash {
+       pinctrl-names = "default";
+       pinctrl-0 = <&nor_pins_default>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <52000000>;
+               spi-rx-bus-width = <2>;
+               spi-tx-bus-width = <2>;
+       };
+};
+
+&pcie0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie0_pins_default>;
+       status = "okay";
+};
+
+&pcie1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie1_pins_default>;
+       status = "okay";
+};
+
+&pciephy {
+       status = "okay";
+};
+
+&pio {
+       eth_default_pins: eth-default-pins {
+               pins-txd {
+                       pinmux = <PINMUX_GPIO77__FUNC_GBE_TXD3>,
+                                <PINMUX_GPIO78__FUNC_GBE_TXD2>,
+                                <PINMUX_GPIO79__FUNC_GBE_TXD1>,
+                                <PINMUX_GPIO80__FUNC_GBE_TXD0>;
+                       drive-strength = <8>;
+               };
+
+               pins-rxd {
+                       pinmux = <PINMUX_GPIO81__FUNC_GBE_RXD3>,
+                                <PINMUX_GPIO82__FUNC_GBE_RXD2>,
+                                <PINMUX_GPIO83__FUNC_GBE_RXD1>,
+                                <PINMUX_GPIO84__FUNC_GBE_RXD0>;
+               };
+
+               pins-cc {
+                       pinmux = <PINMUX_GPIO85__FUNC_GBE_TXC>,
+                                <PINMUX_GPIO86__FUNC_GBE_RXC>,
+                                <PINMUX_GPIO87__FUNC_GBE_RXDV>,
+                                <PINMUX_GPIO88__FUNC_GBE_TXEN>;
+                       drive-strength = <8>;
+               };
+
+               pins-mdio {
+                       pinmux = <PINMUX_GPIO89__FUNC_GBE_MDC>,
+                                <PINMUX_GPIO90__FUNC_GBE_MDIO>;
+                       input-enable;
+               };
+
+               pins-power {
+                       pinmux = <PINMUX_GPIO91__FUNC_GPIO91>,
+                                <PINMUX_GPIO92__FUNC_GPIO92>;
+                       output-high;
+               };
+
+               pins-reset {
+                       pinmux = <PINMUX_GPIO93__FUNC_GPIO93>;
+                       output-high;
+               };
+
+               pins-interrupt {
+                       pinmux = <PINMUX_GPIO94__FUNC_GPIO94>;
+                       input-enable;
+               };
+       };
+
+       eth_sleep_pins: eth-sleep-pins {
+               pins-txd {
+                       pinmux = <PINMUX_GPIO77__FUNC_GPIO77>,
+                                <PINMUX_GPIO78__FUNC_GPIO78>,
+                                <PINMUX_GPIO79__FUNC_GPIO79>,
+                                <PINMUX_GPIO80__FUNC_GPIO80>;
+               };
+
+               pins-cc {
+                       pinmux = <PINMUX_GPIO85__FUNC_GPIO85>,
+                                <PINMUX_GPIO88__FUNC_GPIO88>,
+                                <PINMUX_GPIO87__FUNC_GPIO87>,
+                                <PINMUX_GPIO86__FUNC_GPIO86>;
+               };
+
+               pins-rxd {
+                       pinmux = <PINMUX_GPIO81__FUNC_GPIO81>,
+                                <PINMUX_GPIO82__FUNC_GPIO82>,
+                                <PINMUX_GPIO83__FUNC_GPIO83>,
+                                <PINMUX_GPIO84__FUNC_GPIO84>;
+               };
+
+               pins-mdio {
+                       pinmux = <PINMUX_GPIO89__FUNC_GPIO89>,
+                                <PINMUX_GPIO90__FUNC_GPIO90>;
+                       input-disable;
+                       bias-disable;
+               };
+       };
+
+       gpio_keys_pins: gpio-keys-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO106__FUNC_GPIO106>;
+                       input-enable;
+               };
+       };
+
+       i2c0_pins: i2c0-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO8__FUNC_SDA0>,
+                                <PINMUX_GPIO9__FUNC_SCL0>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       i2c1_pins: i2c1-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO10__FUNC_SDA1>,
+                                <PINMUX_GPIO11__FUNC_SCL1>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       i2c2_pins: i2c2-default-pins {
+               pins-bus {
+                       pinmux = <PINMUX_GPIO12__FUNC_SDA2>,
+                                <PINMUX_GPIO13__FUNC_SCL2>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       i2c3_pins: i2c3-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO14__FUNC_SDA3>,
+                                <PINMUX_GPIO15__FUNC_SCL3>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       i2c4_pins: i2c4-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO16__FUNC_SDA4>,
+                                <PINMUX_GPIO17__FUNC_SCL4>;
+                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       i2c6_pins: i2c6-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO25__FUNC_SDA6>,
+                                <PINMUX_GPIO26__FUNC_SCL6>;
+                       bias-pull-up;
+                       drive-strength-microamp = <1000>;
+               };
+       };
+
+       mmc0_default_pins: mmc0-default-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
+                       drive-strength = <6>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
+                                <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
+                                <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
+                                <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
+                                <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
+                                <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
+                                <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
+                                <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
+                                <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
+                       input-enable;
+                       drive-strength = <6>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins-rst {
+                       pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
+                       drive-strength = <6>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       mmc0_uhs_pins: mmc0-uhs-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
+                       drive-strength = <8>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
+                                <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
+                                <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
+                                <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
+                                <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
+                                <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
+                                <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
+                                <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
+                                <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
+                       input-enable;
+                       drive-strength = <8>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins-ds {
+                       pinmux = <PINMUX_GPIO127__FUNC_MSDC0_DSL>;
+                       drive-strength = <8>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-rst {
+                       pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
+                       drive-strength = <8>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       mmc1_default_pins: mmc1-default-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
+                       drive-strength = <8>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO110__FUNC_MSDC1_CMD>,
+                                <PINMUX_GPIO112__FUNC_MSDC1_DAT0>,
+                                <PINMUX_GPIO113__FUNC_MSDC1_DAT1>,
+                                <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
+                                <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
+                       input-enable;
+                       drive-strength = <8>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       mmc1_detect_pins: mmc1-detect-pins {
+               pins-insert {
+                       pinmux = <PINMUX_GPIO129__FUNC_GPIO129>;
+                       bias-pull-up;
+               };
+       };
+
+       nor_pins_default: nor-default-pins {
+               pins-ck-io {
+                       pinmux = <PINMUX_GPIO142__FUNC_SPINOR_IO0>,
+                                <PINMUX_GPIO141__FUNC_SPINOR_CK>,
+                                <PINMUX_GPIO143__FUNC_SPINOR_IO1>;
+                       drive-strength = <6>;
+                       bias-pull-down;
+               };
+
+               pins-cs {
+                       pinmux = <PINMUX_GPIO140__FUNC_SPINOR_CS>;
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+       };
+
+       pcie0_pins_default: pcie0-default-pins {
+               pins-bus {
+                       pinmux = <PINMUX_GPIO19__FUNC_WAKEN>,
+                                <PINMUX_GPIO20__FUNC_PERSTN>,
+                                <PINMUX_GPIO21__FUNC_CLKREQN>;
+                       bias-pull-up;
+               };
+       };
+
+       pcie1_pins_default: pcie1-default-pins {
+               pins-bus {
+                       pinmux = <PINMUX_GPIO0__FUNC_PERSTN_1>,
+                                <PINMUX_GPIO1__FUNC_CLKREQN_1>,
+                                <PINMUX_GPIO2__FUNC_WAKEN_1>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       led_pins: led-pins {
+               pins-power-en {
+                       pinmux = <PINMUX_GPIO107__FUNC_GPIO107>;
+                       output-high;
+               };
+       };
+
+       spi0_pins: spi0-default-pins {
+               pins-cs-mosi-clk {
+                       pinmux = <PINMUX_GPIO132__FUNC_SPIM0_CSB>,
+                                <PINMUX_GPIO134__FUNC_SPIM0_MO>,
+                                <PINMUX_GPIO133__FUNC_SPIM0_CLK>;
+                       bias-disable;
+               };
+
+               pins-miso {
+                       pinmux = <PINMUX_GPIO135__FUNC_SPIM0_MI>;
+                       bias-pull-down;
+               };
+       };
+
+       spi1_pins: spi1-default-pins {
+               pins-cs-mosi-clk {
+                       pinmux = <PINMUX_GPIO136__FUNC_SPIM1_CSB>,
+                                <PINMUX_GPIO138__FUNC_SPIM1_MO>,
+                                <PINMUX_GPIO137__FUNC_SPIM1_CLK>;
+                       bias-disable;
+               };
+
+               pins-miso {
+                       pinmux = <PINMUX_GPIO139__FUNC_SPIM1_MI>;
+                       bias-pull-down;
+               };
+       };
+
+       uart0_pins: uart0-pins {
+               pins-rx {
+                       pinmux = <PINMUX_GPIO99__FUNC_URXD0>;
+                       input-enable;
+                       bias-pull-up;
+               };
+
+               pins-tx {
+                       pinmux = <PINMUX_GPIO98__FUNC_UTXD0>;
+               };
+       };
+
+       uart1_pins: uart1-pins {
+               pins-rx {
+                       pinmux = <PINMUX_GPIO103__FUNC_URXD1>;
+                       input-enable;
+                       bias-pull-up;
+               };
+
+               pins-tx {
+                       pinmux = <PINMUX_GPIO102__FUNC_UTXD1>;
+               };
+
+               pins-rts {
+                       pinmux = <PINMUX_GPIO100__FUNC_URTS1>;
+               };
+
+               pins-cts {
+                       pinmux = <PINMUX_GPIO101__FUNC_UCTS1>;
+                       input-enable;
+               };
+       };
+
+       uart2_pins: uart2-pins {
+               pins-rx {
+                       pinmux = <PINMUX_GPIO68__FUNC_URXD2>;
+                       input-enable;
+                       bias-pull-up;
+               };
+
+               pins-tx {
+                       pinmux = <PINMUX_GPIO67__FUNC_UTXD2>;
+               };
+
+               pins-rts {
+                       pinmux = <PINMUX_GPIO66__FUNC_URTS2>;
+               };
+
+               pins-cts {
+                       pinmux = <PINMUX_GPIO65__FUNC_UCTS2>;
+                       input-enable;
+               };
+       };
+
+       uart3_pins: uart3-pins {
+               pins-rx {
+                       pinmux = <PINMUX_GPIO5__FUNC_URXD3>;
+                       input-enable;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins-tx {
+                       pinmux = <PINMUX_GPIO4__FUNC_UTXD3>;
+               };
+       };
+
+       uart4_pins: uart4-pins {
+               pins-rx {
+                       pinmux = <PINMUX_GPIO7__FUNC_URXD4>;
+                       input-enable;
+                       bias-pull-up;
+               };
+
+               pins-tx {
+                       pinmux = <PINMUX_GPIO6__FUNC_UTXD4>;
+               };
+       };
+};
+
+&pmic {
+       interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&scp {
+       memory-region = <&scp_mem>;
+       firmware-name = "mediatek/mt8195/scp.img";
+       status = "okay";
+};
+
+&spmi {
+       #address-cells = <2>;
+       #size-cells = <0>;
+
+       mt6315@6 {
+               compatible = "mediatek,mt6315-regulator";
+               reg = <0x6 SPMI_USID>;
+
+               regulators {
+                       mt6315_6_vbuck1: vbuck1 {
+                               regulator-name = "Vbcpu";
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1193750>;
+                               regulator-enable-ramp-delay = <256>;
+                               regulator-ramp-delay = <6250>;
+                               regulator-allowed-modes = <0 1 2>;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       mt6315@7 {
+               compatible = "mediatek,mt6315-regulator";
+               reg = <0x7 SPMI_USID>;
+
+               regulators {
+                       mt6315_7_vbuck1: vbuck1 {
+                               regulator-name = "Vgpu";
+                               regulator-min-microvolt = <625000>;
+                               regulator-max-microvolt = <1193750>;
+                               regulator-enable-ramp-delay = <256>;
+                               regulator-ramp-delay = <6250>;
+                               regulator-allowed-modes = <0 1 2>;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+/* USB3.2 front port */
+&ssusb0 {
+       dr_mode = "host";
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       status = "okay";
+};
+
+/* USB2.0 M.2 Key-E */
+&ssusb2 {
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       status = "okay";
+};
+
+/* USB2.0 to on-board usb hub */
+&ssusb3 {
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       status = "okay";
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins>;
+       mediatek,pad-select = <0>;
+       status = "okay";
+
+       tpm: tpm@0 {
+               compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
+               reg = <0>;
+               spi-max-frequency = <18500000>;
+       };
+};
+
+/* B2B connector */
+&spi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi1_pins>;
+       mediatek,pad-select = <0>;
+       status = "okay";
+};
+
+&thermal_zones {
+       cpu-thermal {
+               polling-delay = <1000>; /* milliseconds */
+               polling-delay-passive = <0>; /* milliseconds */
+               thermal-sensors = <&thermal_sensor0>;
+
+               trips {
+                       trip-alert {
+                               temperature = <85000>;
+                               hysteresis = <2000>;
+                               type = "passive";
+                       };
+
+                       trip-crit {
+                               temperature = <95000>;
+                               hysteresis = <2000>;
+                               type = "critical";
+                       };
+               };
+       };
+
+       pcb-top-thermal {
+               polling-delay = <1000>; /* milliseconds */
+               polling-delay-passive = <0>; /* milliseconds */
+               thermal-sensors = <&thermal_sensor1>;
+
+               trips {
+                       trip-alert {
+                               temperature = <75000>;
+                               hysteresis = <2000>;
+                               type = "passive";
+                       };
+
+                       trip-crit {
+                               temperature = <85000>;
+                               hysteresis = <2000>;
+                               type = "critical";
+                       };
+               };
+       };
+
+       pcb-bottom-thermal {
+               polling-delay = <1000>; /* milliseconds */
+               polling-delay-passive = <0>; /* milliseconds */
+               thermal-sensors = <&thermal_sensor2>;
+
+               trips {
+                       trip-alert {
+                               temperature = <75000>;
+                               hysteresis = <2000>;
+                               type = "passive";
+                       };
+
+                       trip-crit {
+                               temperature = <85000>;
+                               hysteresis = <2000>;
+                               type = "critical";
+                       };
+               };
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2_pins>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3_pins>;
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart4_pins>;
+       status = "okay";
+};
+
+/* USB3 */
+&u3phy0 {
+       status = "okay";
+};
+
+/* PCIe1/USB2 */
+&u3phy1 {
+       status = "okay";
+};
+
+/* USB2 */
+&u3phy2 {
+       status = "okay";
+};
+
+/* USB2 */
+&u3phy3 {
+       status = "okay";
+};
+
+/* USB3.2 front port */
+&xhci0 {
+       status = "okay";
+};
+
+/* USB2.0 M.2 Key-B */
+&xhci1 {
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       mediatek,u3p-dis-msk = <0x01>;
+       status = "okay";
+};
+
+/* USB2.0 M.2 Key-E */
+&xhci2 {
+       status = "okay";
+};
+
+/* USB2.0 to on-board usb hub */
+&xhci3 {
+       status = "okay";
+};
index e5d9b671a405717372923f6e041b5b784d3295d9..4b5f6cf16f7076d91aa50e2dcf56e82b7499424c 100644 (file)
        };
 };
 
+&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>;
+};
+
+&cpu4 {
+       cpu-supply = <&mt6315_6_vbuck1>;
+};
+
+&cpu5 {
+       cpu-supply = <&mt6315_6_vbuck1>;
+};
+
+&cpu6 {
+       cpu-supply = <&mt6315_6_vbuck1>;
+};
+
+&cpu7 {
+       cpu-supply = <&mt6315_6_vbuck1>;
+};
+
 &eth {
        phy-mode = "rgmii-rxid";
        phy-handle = <&rgmii_phy>;
        };
 };
 
+&mfg0 {
+       domain-supply = <&mt6315_7_vbuck1>;
+};
+
+&mfg1 {
+       domain-supply = <&mt6359_vsram_others_ldo_reg>;
+};
+
 /* MMC0 Controller: eMMC (HS400). Power lines are shared with UFS! */
 &mmc0 {
        pinctrl-names = "default", "state_uhs";
 };
 
 &pio {
+       mediatek,rsel-resistance-in-si-unit;
+
        eth_default_pins: eth-default-pins {
                pins-cc {
                        pinmux = <PINMUX_GPIO85__FUNC_GBE_TXC>,
                pins-bus {
                        pinmux = <PINMUX_GPIO12__FUNC_SDA2>,
                                 <PINMUX_GPIO13__FUNC_SCL2>;
-                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
+                       bias-pull-up = <1000>;
                        drive-strength = <6>;
                        drive-strength-microamp = <1000>;
                };
                pins-bus {
                        pinmux = <PINMUX_GPIO16__FUNC_SDA4>,
                                 <PINMUX_GPIO17__FUNC_SCL4>;
-                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
+                       bias-pull-up = <1000>;
                        drive-strength-microamp = <1000>;
                };
        };
                pins {
                        pinmux = <PINMUX_GPIO25__FUNC_SDA6>,
                                 <PINMUX_GPIO26__FUNC_SCL6>;
-                       bias-pull-up = <MTK_PULL_SET_RSEL_111>;
+                       bias-disable;
                };
        };
 
                };
        };
 
+       usb3_port0_pins: usb3p0-default-pins {
+               pins-vbus {
+                       pinmux = <PINMUX_GPIO63__FUNC_VBUSVALID>;
+                       input-enable;
+               };
+       };
+
+       usb2_port0_pins: usb2p0-default-pins {
+               pins-iddig {
+                       pinmux = <PINMUX_GPIO130__FUNC_IDDIG_1P>;
+                       input-enable;
+                       bias-pull-up;
+               };
+
+               pins-vbus {
+                       pinmux = <PINMUX_GPIO131__FUNC_USB_DRVVBUS_1P>;
+                       output-low;
+               };
+       };
+
        wifi_vreg_pins: wifi-vreg-pins {
                pins-wifi-pmu-en {
                        pinmux = <PINMUX_GPIO65__FUNC_GPIO65>;
        status = "okay";
 };
 
+&pciephy {
+       status = "okay";
+};
+
 &pmic {
        interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
 };
        };
 };
 
+&u3phy0 {
+       status = "okay";
+};
+
+&u3phy1 {
+       status = "okay";
+};
+
+&u3phy2 {
+       status = "okay";
+};
+
 &uart0 {
        /* Exposed at 40 pin connector */
        pinctrl-0 = <&uart0_pins>;
 };
 
 &ssusb0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb3_port0_pins>;
        role-switch-default-mode = "host";
        usb-role-switch;
        vusb33-supply = <&mt6359_vusb_ldo_reg>;
 };
 
 &ssusb2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb2_port0_pins>;
        vusb33-supply = <&mt6359_vusb_ldo_reg>;
        status = "okay";
 };
index 2c5574734c9e3261029c7d1782dd890b7f7cc308..e60acc74e822710f44112b50d2d74aa1af791eb9 100644 (file)
                priority = <200>;
        };
 
+       i2c0_imux: i2c-mux-0 {
+               compatible = "i2c-mux-pinctrl";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-parent = <&i2c0>;
+       };
+
+       i2c0_emux: i2c-mux-1 {
+               compatible = "i2c-mux-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-parent = <&i2c0>;
+       };
+
        leds {
                compatible = "gpio-leds";
                led-0 {
                        default-state = "off";
                };
        };
+
+       sfp_eth12: sfp-eth12 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp1>;
+               tx-disable-gpios = <&sgpio_out2 11 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 11 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 11 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 12 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth13: sfp-eth13 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp2>;
+               tx-disable-gpios = <&sgpio_out2 12 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 12 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 12 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 13 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth14: sfp-eth14 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp3>;
+               tx-disable-gpios = <&sgpio_out2 13 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 13 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 13 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 14 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth15: sfp-eth15 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp4>;
+               tx-disable-gpios = <&sgpio_out2 14 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 14 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 14 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 15 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth48: sfp-eth48 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp5>;
+               tx-disable-gpios = <&sgpio_out2 15 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 15 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 15 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 16 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth49: sfp-eth49 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp6>;
+               tx-disable-gpios = <&sgpio_out2 16 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 16 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 16 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 17 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth50: sfp-eth50 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp7>;
+               tx-disable-gpios = <&sgpio_out2 17 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 17 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 17 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 18 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth51: sfp-eth51 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp8>;
+               tx-disable-gpios = <&sgpio_out2 18 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 18 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 18 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 19 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth52: sfp-eth52 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp9>;
+               tx-disable-gpios = <&sgpio_out2 19 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 19 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 19 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 20 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth53: sfp-eth53 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp10>;
+               tx-disable-gpios = <&sgpio_out2 20 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 20 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 20 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 21 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth54: sfp-eth54 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp11>;
+               tx-disable-gpios = <&sgpio_out2 21 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 21 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 21 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 22 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth55: sfp-eth55 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp12>;
+               tx-disable-gpios = <&sgpio_out2 22 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 22 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 22 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 23 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth56: sfp-eth56 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp13>;
+               tx-disable-gpios = <&sgpio_out2 23 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 23 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 23 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 24 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth57: sfp-eth57 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp14>;
+               tx-disable-gpios = <&sgpio_out2 24 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 24 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 24 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 25 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth58: sfp-eth58 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp15>;
+               tx-disable-gpios = <&sgpio_out2 25 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 25 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 25 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 26 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth59: sfp-eth59 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp16>;
+               tx-disable-gpios = <&sgpio_out2 26 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 26 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 26 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 27 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth60: sfp-eth60 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp17>;
+               tx-disable-gpios = <&sgpio_out2 27 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 27 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 27 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 28 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth61: sfp-eth61 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp18>;
+               tx-disable-gpios = <&sgpio_out2 28 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 28 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 28 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 29 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth62: sfp-eth62 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp19>;
+               tx-disable-gpios = <&sgpio_out2 29 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 29 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 29 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 30 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth63: sfp-eth63 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp20>;
+               tx-disable-gpios = <&sgpio_out2 30 1 GPIO_ACTIVE_LOW>;
+               los-gpios = <&sgpio_in2 30 1 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 30 2 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 31 0 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &sgpio0 {
        };
 };
 
-&axi {
-       i2c0_imux: i2c-mux-0 {
-               compatible = "i2c-mux-pinctrl";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               i2c-parent = <&i2c0>;
-       };
-       i2c0_emux: i2c-mux-1 {
-               compatible = "i2c-mux-gpio";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               i2c-parent = <&i2c0>;
-       };
-};
-
 &i2c0_imux {
        pinctrl-names =
                "i2c_sfp1", "i2c_sfp2", "i2c_sfp3", "i2c_sfp4",
        };
 };
 
-&axi {
-       sfp_eth12: sfp-eth12 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp1>;
-               tx-disable-gpios = <&sgpio_out2 11 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 11 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 11 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 12 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth13: sfp-eth13 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp2>;
-               tx-disable-gpios = <&sgpio_out2 12 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 12 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 12 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 13 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth14: sfp-eth14 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp3>;
-               tx-disable-gpios = <&sgpio_out2 13 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 13 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 13 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 14 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth15: sfp-eth15 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp4>;
-               tx-disable-gpios = <&sgpio_out2 14 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 14 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 14 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 15 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth48: sfp-eth48 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp5>;
-               tx-disable-gpios = <&sgpio_out2 15 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 15 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 15 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 16 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth49: sfp-eth49 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp6>;
-               tx-disable-gpios = <&sgpio_out2 16 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 16 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 16 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 17 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth50: sfp-eth50 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp7>;
-               tx-disable-gpios = <&sgpio_out2 17 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 17 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 17 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 18 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth51: sfp-eth51 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp8>;
-               tx-disable-gpios = <&sgpio_out2 18 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 18 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 18 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 19 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth52: sfp-eth52 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp9>;
-               tx-disable-gpios = <&sgpio_out2 19 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 19 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 19 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 20 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth53: sfp-eth53 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp10>;
-               tx-disable-gpios = <&sgpio_out2 20 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 20 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 20 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 21 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth54: sfp-eth54 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp11>;
-               tx-disable-gpios = <&sgpio_out2 21 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 21 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 21 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 22 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth55: sfp-eth55 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp12>;
-               tx-disable-gpios = <&sgpio_out2 22 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 22 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 22 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 23 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth56: sfp-eth56 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp13>;
-               tx-disable-gpios = <&sgpio_out2 23 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 23 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 23 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 24 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth57: sfp-eth57 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp14>;
-               tx-disable-gpios = <&sgpio_out2 24 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 24 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 24 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 25 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth58: sfp-eth58 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp15>;
-               tx-disable-gpios = <&sgpio_out2 25 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 25 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 25 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 26 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth59: sfp-eth59 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp16>;
-               tx-disable-gpios = <&sgpio_out2 26 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 26 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 26 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 27 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth60: sfp-eth60 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp17>;
-               tx-disable-gpios = <&sgpio_out2 27 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 27 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 27 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 28 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth61: sfp-eth61 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp18>;
-               tx-disable-gpios = <&sgpio_out2 28 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 28 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 28 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 29 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth62: sfp-eth62 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp19>;
-               tx-disable-gpios = <&sgpio_out2 29 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 29 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 29 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 30 0 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth63: sfp-eth63 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp20>;
-               tx-disable-gpios = <&sgpio_out2 30 1 GPIO_ACTIVE_LOW>;
-               los-gpios = <&sgpio_in2 30 1 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 30 2 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 31 0 GPIO_ACTIVE_HIGH>;
-       };
-};
-
 &switch {
        ethernet-ports {
                #address-cells = <1>;
index af2f1831f07f890a5e7f8d3593453ad3f78bb098..196868898f496328bd7b8aa24a96f01fd01e4330 100644 (file)
                priority = <200>;
        };
 
+       i2c0_imux: i2c-mux {
+               compatible = "i2c-mux-pinctrl";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-parent = <&i2c0>;
+       };
+
        leds {
                compatible = "gpio-leds";
                led-0 {
                        default-state = "off";
                };
        };
+
+       sfp_eth60: sfp-eth60 {
+               compatible       = "sff,sfp";
+               i2c-bus = <&i2c_sfp1>;
+               tx-disable-gpios = <&sgpio_out2 28 0 GPIO_ACTIVE_LOW>;
+               rate-select0-gpios = <&sgpio_out2 28 1 GPIO_ACTIVE_HIGH>;
+               los-gpios = <&sgpio_in2 28 0 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 28 1 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 28 2 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth61: sfp-eth61 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp2>;
+               tx-disable-gpios = <&sgpio_out2 29 0 GPIO_ACTIVE_LOW>;
+               rate-select0-gpios = <&sgpio_out2 29 1 GPIO_ACTIVE_HIGH>;
+               los-gpios = <&sgpio_in2 29 0 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 29 1 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 29 2 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth62: sfp-eth62 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp3>;
+               tx-disable-gpios = <&sgpio_out2 30 0 GPIO_ACTIVE_LOW>;
+               rate-select0-gpios = <&sgpio_out2 30 1 GPIO_ACTIVE_HIGH>;
+               los-gpios = <&sgpio_in2 30 0 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 30 1 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 30 2 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp_eth63: sfp-eth63 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c_sfp4>;
+               tx-disable-gpios = <&sgpio_out2 31 0 GPIO_ACTIVE_LOW>;
+               rate-select0-gpios = <&sgpio_out2 31 1 GPIO_ACTIVE_HIGH>;
+               los-gpios = <&sgpio_in2 31 0 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in2 31 1 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in2 31 2 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &gpio {
        microchip,sgpio-port-ranges = <0 0>, <16 18>, <28 31>;
 };
 
-&axi {
-       i2c0_imux: i2c-mux {
-               compatible = "i2c-mux-pinctrl";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               i2c-parent = <&i2c0>;
-       };
-};
-
 &i2c0_imux {
        pinctrl-names =
                "i2c_sfp1", "i2c_sfp2", "i2c_sfp3", "i2c_sfp4",
        };
 };
 
-&axi {
-       sfp_eth60: sfp-eth60 {
-               compatible       = "sff,sfp";
-               i2c-bus = <&i2c_sfp1>;
-               tx-disable-gpios = <&sgpio_out2 28 0 GPIO_ACTIVE_LOW>;
-               rate-select0-gpios = <&sgpio_out2 28 1 GPIO_ACTIVE_HIGH>;
-               los-gpios = <&sgpio_in2 28 0 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 28 1 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 28 2 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth61: sfp-eth61 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp2>;
-               tx-disable-gpios = <&sgpio_out2 29 0 GPIO_ACTIVE_LOW>;
-               rate-select0-gpios = <&sgpio_out2 29 1 GPIO_ACTIVE_HIGH>;
-               los-gpios = <&sgpio_in2 29 0 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 29 1 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 29 2 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth62: sfp-eth62 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp3>;
-               tx-disable-gpios = <&sgpio_out2 30 0 GPIO_ACTIVE_LOW>;
-               rate-select0-gpios = <&sgpio_out2 30 1 GPIO_ACTIVE_HIGH>;
-               los-gpios = <&sgpio_in2 30 0 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 30 1 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 30 2 GPIO_ACTIVE_HIGH>;
-       };
-       sfp_eth63: sfp-eth63 {
-               compatible = "sff,sfp";
-               i2c-bus = <&i2c_sfp4>;
-               tx-disable-gpios = <&sgpio_out2 31 0 GPIO_ACTIVE_LOW>;
-               rate-select0-gpios = <&sgpio_out2 31 1 GPIO_ACTIVE_HIGH>;
-               los-gpios = <&sgpio_in2 31 0 GPIO_ACTIVE_HIGH>;
-               mod-def0-gpios = <&sgpio_in2 31 1 GPIO_ACTIVE_LOW>;
-               tx-fault-gpios = <&sgpio_in2 31 2 GPIO_ACTIVE_HIGH>;
-       };
-};
-
 &mdio0 {
        status = "okay";
        phy0: ethernet-phy@0 {
index 1607ee14216fbc00c9a1d17a9173dd1137170c12..82a59e33c46c9b9f4cf6f1913d0205edcdbbd7a9 100644 (file)
@@ -1,11 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 /dts-v1/;
 
-#include <dt-bindings/input/linux-event-codes.h>
-#include <dt-bindings/input/gpio-keys.h>
-
-#include "tegra234-p3767.dtsi"
-#include "tegra234-p3768-0000.dtsi"
+#include "tegra234-p3768-0000+p3767.dtsi"
 
 / {
        compatible = "nvidia,p3768-0000+p3767-0000", "nvidia,p3767-0000", "nvidia,tegra234";
                        status = "okay";
                };
 
-               pwm@32a0000 {
-                       assigned-clocks = <&bpmp TEGRA234_CLK_PWM3>;
-                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
-                       status = "okay";
-               };
-
                hda@3510000 {
                        nvidia,model = "NVIDIA Jetson Orin NX HDA";
                };
-
-               padctl@3520000 {
-                       status = "okay";
-               };
-       };
-
-       gpio-keys {
-               compatible = "gpio-keys";
-
-               key-force-recovery {
-                       label = "Force Recovery";
-                       gpios = <&gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>;
-                       linux,input-type = <EV_KEY>;
-                       linux,code = <BTN_1>;
-               };
-
-               key-power {
-                       label = "Power";
-                       gpios = <&gpio_aon TEGRA234_AON_GPIO(EE, 4) GPIO_ACTIVE_LOW>;
-                       linux,input-type = <EV_KEY>;
-                       linux,code = <KEY_POWER>;
-                       wakeup-event-action = <EV_ACT_ASSERTED>;
-                       wakeup-source;
-               };
-
-               key-suspend {
-                       label = "Suspend";
-                       gpios = <&gpio TEGRA234_MAIN_GPIO(G, 2) GPIO_ACTIVE_LOW>;
-                       linux,input-type = <EV_KEY>;
-                       linux,code = <KEY_SLEEP>;
-               };
-       };
-
-       pwm-fan {
-               cooling-levels = <0 88 187 255>;
-       };
-
-       vdd_3v3_pcie: regulator-vdd-3v3-pcie {
-               compatible = "regulator-fixed";
-               regulator-name = "VDD_3V3_PCIE";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               gpio = <&gpio_aon TEGRA234_AON_GPIO(AA, 5) GPIO_ACTIVE_HIGH>;
-               enable-active-high;
        };
 
        sound {
                label = "NVIDIA Jetson Orin NX APE";
        };
-
-       thermal-zones {
-               tj-thermal {
-                       cooling-maps {
-                               map-active-0 {
-                                       cooling-device = <&fan 0 1>;
-                                       trip = <&tj_trip_active0>;
-                               };
-
-                               map-active-1 {
-                                       cooling-device = <&fan 1 2>;
-                                       trip = <&tj_trip_active1>;
-                               };
-
-                               map-active-2 {
-                                       cooling-device = <&fan 2 3>;
-                                       trip = <&tj_trip_active2>;
-                               };
-                       };
-               };
-       };
 };
index dc2d4bef1e839907f2f5b99ab93a4e6eb90e58ce..9f5e07012b87ac30083bed3ec811f76c669cbb5d 100644 (file)
@@ -1,11 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 /dts-v1/;
 
-#include <dt-bindings/input/linux-event-codes.h>
-#include <dt-bindings/input/gpio-keys.h>
-
-#include "tegra234-p3767.dtsi"
-#include "tegra234-p3768-0000.dtsi"
+#include "tegra234-p3768-0000+p3767.dtsi"
 
 / {
        compatible = "nvidia,p3768-0000+p3767-0005", "nvidia,p3767-0005", "nvidia,tegra234";
                };
        };
 
-       pwm-fan {
-               cooling-levels = <0 88 187 255>;
-       };
-
        sound {
                label = "NVIDIA Jetson Orin Nano APE";
        };
-
-       thermal-zones {
-               tj-thermal {
-                       cooling-maps {
-                               map-active-0 {
-                                       cooling-device = <&fan 0 1>;
-                                       trip = <&tj_trip_active0>;
-                               };
-
-                               map-active-1 {
-                                       cooling-device = <&fan 1 2>;
-                                       trip = <&tj_trip_active1>;
-                               };
-
-                               map-active-2 {
-                                       cooling-device = <&fan 2 3>;
-                                       trip = <&tj_trip_active2>;
-                               };
-                       };
-               };
-       };
 };
similarity index 90%
rename from src/arm64/nvidia/tegra234-p3768-0000.dtsi
rename to src/arm64/nvidia/tegra234-p3768-0000+p3767.dtsi
index 5d0298b6c30d0621f00628319122a4db54c71376..6d64a24fa2519354bed481a5d4427342f2d84beb 100644 (file)
@@ -1,7 +1,11 @@
 // SPDX-License-Identifier: GPL-2.0
 
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/input/gpio-keys.h>
+
+#include "tegra234-p3767.dtsi"
+
 / {
-       compatible = "nvidia,p3768-0000";
 
        aliases {
                serial0 = &tcu;
                compatible = "pwm-fan";
                pwms = <&pwm3 0 45334>;
                #cooling-cells = <2>;
+               cooling-levels = <0 88 187 255>;
        };
 
        vdd_1v8_sys: regulator-vdd-1v8-sys {
        serial {
                status = "okay";
        };
+
+       thermal-zones {
+               tj-thermal {
+                       cooling-maps {
+                               map-active-0 {
+                                       cooling-device = <&fan 0 1>;
+                                       trip = <&tj_trip_active0>;
+                               };
+
+                               map-active-1 {
+                                       cooling-device = <&fan 1 2>;
+                                       trip = <&tj_trip_active1>;
+                               };
+
+                               map-active-2 {
+                                       cooling-device = <&fan 2 3>;
+                                       trip = <&tj_trip_active2>;
+                               };
+                       };
+               };
+       };
 };
diff --git a/src/arm64/qcom/apq8016-schneider-hmibsc.dts b/src/arm64/qcom/apq8016-schneider-hmibsc.dts
new file mode 100644 (file)
index 0000000..75c6137
--- /dev/null
@@ -0,0 +1,491 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) 2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2024, Linaro Ltd.
+ */
+
+/dts-v1/;
+
+#include "msm8916-pm8916.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
+#include <dt-bindings/sound/apq8016-lpass.h>
+
+/ {
+       model = "Schneider Electric HMIBSC Board";
+       compatible = "schneider,apq8016-hmibsc", "qcom,apq8016";
+
+       aliases {
+               i2c1 = &blsp_i2c6;
+               i2c3 = &blsp_i2c4;
+               i2c4 = &blsp_i2c3;
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart1;
+               serial1 = &blsp_uart2;
+               spi0 = &blsp_spi5;
+               usid0 = &pm8916_0;
+       };
+
+       chosen {
+               stdout-path = "serial0";
+       };
+
+       hdmi-out {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&adv7533_out>;
+                       };
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               autorepeat;
+               pinctrl-0 = <&msm_key_volp_n_default>;
+               pinctrl-names = "default";
+
+               button {
+                       label = "Volume Up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-0 = <&pm8916_mpps_leds>;
+               pinctrl-names = "default";
+
+               led-1 {
+                       function = LED_FUNCTION_WLAN;
+                       color = <LED_COLOR_ID_YELLOW>;
+                       gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "phy0tx";
+                       default-state = "off";
+               };
+
+               led-2 {
+                       function = LED_FUNCTION_BLUETOOTH;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "bluetooth-power";
+                       default-state = "off";
+               };
+       };
+
+       memory@80000000 {
+               reg = <0 0x80000000 0 0x40000000>;
+       };
+
+       reserved-memory {
+               ramoops@bff00000 {
+                       compatible = "ramoops";
+                       reg = <0x0 0xbff00000 0x0 0x100000>;
+                       record-size = <0x20000>;
+                       console-size = <0x20000>;
+                       ftrace-size = <0x20000>;
+                       ecc-size = <16>;
+               };
+       };
+
+       usb-hub {
+               compatible = "smsc,usb3503";
+               reset-gpios = <&pm8916_gpios 1 GPIO_ACTIVE_LOW>;
+               initial-mode = <1>;
+       };
+
+       usb_id: usb-id {
+               compatible = "linux,extcon-usb-gpio";
+               id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&usb_id_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp_i2c3 {
+       status = "okay";
+
+       eeprom@50 {
+               compatible = "atmel,24c32";
+               reg = <0x50>;
+       };
+};
+
+&blsp_i2c4 {
+       status = "okay";
+
+       adv_bridge: bridge@39 {
+               compatible = "adi,adv7533";
+               reg = <0x39>;
+               interrupts-extended = <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
+
+               adi,dsi-lanes = <4>;
+               clocks = <&rpmcc RPM_SMD_BB_CLK2>;
+               clock-names = "cec";
+               pd-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
+
+               avdd-supply = <&pm8916_l6>;
+               a2vdd-supply = <&pm8916_l6>;
+               dvdd-supply = <&pm8916_l6>;
+               pvdd-supply = <&pm8916_l6>;
+               v1p2-supply = <&pm8916_l6>;
+               v3p3-supply = <&pm8916_l17>;
+
+               pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
+               pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
+               pinctrl-names = "default","sleep";
+               #sound-dai-cells = <0>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               adv7533_in: endpoint {
+                                       remote-endpoint = <&mdss_dsi0_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               adv7533_out: endpoint {
+                                       remote-endpoint = <&hdmi_con>;
+                               };
+                       };
+               };
+       };
+};
+
+&blsp_i2c6 {
+       status = "okay";
+
+       rtc@30 {
+               compatible = "sii,s35390a";
+               reg = <0x30>;
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c256";
+               reg = <0x50>;
+       };
+};
+
+&blsp_spi5 {
+       cs-gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       tpm@0 {
+               compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
+               reg = <0>;
+               spi-max-frequency = <500000>;
+       };
+};
+
+&blsp_uart1 {
+       label = "UART0";
+       status = "okay";
+};
+
+&blsp_uart2 {
+       label = "UART1";
+       status = "okay";
+};
+
+&lpass {
+       status = "okay";
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi0_out {
+       data-lanes = <0 1 2 3>;
+       remote-endpoint = <&adv7533_in>;
+};
+
+&pm8916_codec {
+       qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
+       qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
+       status = "okay";
+};
+
+&pm8916_gpios {
+       gpio-line-names =
+               "USB_HUB_RESET_N_PM",
+               "USB_SW_SEL_PM",
+               "NC",
+               "NC";
+
+       usb_hub_reset_pm: usb-hub-reset-pm-state {
+               pins = "gpio1";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               input-disable;
+               output-high;
+       };
+
+       usb_hub_reset_pm_device: usb-hub-reset-pm-device-state {
+               pins = "gpio1";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               input-disable;
+               output-low;
+       };
+
+       usb_sw_sel_pm: usb-sw-sel-pm-state {
+               pins = "gpio2";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               power-source = <PM8916_GPIO_VPH>;
+               input-disable;
+               output-high;
+       };
+
+       usb_sw_sel_pm_device: usb-sw-sel-pm-device-state {
+               pins = "gpio2";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               power-source = <PM8916_GPIO_VPH>;
+               input-disable;
+               output-low;
+       };
+};
+
+&pm8916_mpps {
+       gpio-line-names =
+               "NC",
+               "WLAN_LED_CTRL",
+               "BT_LED_CTRL",
+               "NC";
+
+       pm8916_mpps_leds: pm8916-mpps-state {
+               pins = "mpp2", "mpp3";
+               function = "digital";
+               output-low;
+       };
+};
+
+&pm8916_resin {
+       linux,code = <KEY_POWER>;
+       status = "okay";
+};
+
+&pm8916_rpm_regulators {
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+};
+
+&sdhc_1 {
+       status = "okay";
+};
+
+&sdhc_2 {
+       pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
+       pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
+       pinctrl-names = "default", "sleep";
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&sound {
+       pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>;
+       pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>;
+       pinctrl-names = "default", "sleep";
+       model = "HMIBSC";
+       audio-routing =
+               "AMIC2", "MIC BIAS Internal2",
+               "AMIC3", "MIC BIAS External1";
+       status = "okay";
+
+       quaternary-dai-link {
+               link-name = "ADV7533";
+               cpu {
+                       sound-dai = <&lpass MI2S_QUATERNARY>;
+               };
+               codec {
+                       sound-dai = <&adv_bridge 0>;
+               };
+       };
+
+       primary-dai-link {
+               link-name = "WCD";
+               cpu {
+                       sound-dai = <&lpass MI2S_PRIMARY>;
+               };
+               codec {
+                       sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>;
+               };
+       };
+
+       tertiary-dai-link {
+               link-name = "WCD-Capture";
+               cpu {
+                       sound-dai = <&lpass MI2S_TERTIARY>;
+               };
+               codec {
+                       sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>;
+               };
+       };
+};
+
+&tlmm {
+       pinctrl-0 = <&uart1_mux0_rs232_high &uart1_mux1_rs232_low>;
+       pinctrl-names = "default";
+
+       adv7533_int_active: adv533-int-active-state {
+               pins = "gpio31";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       adv7533_int_suspend: adv7533-int-suspend-state {
+               pins = "gpio31";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       adv7533_switch_active: adv7533-switch-active-state {
+               pins = "gpio32";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       adv7533_switch_suspend: adv7533-switch-suspend-state {
+               pins = "gpio32";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       msm_key_volp_n_default: msm-key-volp-n-default-state {
+               pins = "gpio107";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+
+       sdc2_cd_default: sdc2-cd-default-state {
+               pins = "gpio38";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       /*
+        * UART1 being the debug console supports various modes of
+        * operation (RS-232/485/422) controlled via GPIOs configured
+        * mux as follows:
+        *
+        *   gpio100    gpio99    UART mode
+        *   0          0         loopback
+        *   0          1         RS-232
+        *   1          0         RS-485
+        *   1          1         RS-422
+        *
+        * The default mode configured here is RS-232 mode.
+        */
+       uart1_mux0_rs232_high: uart1-mux0-rs232-state {
+               bootph-all;
+               pins = "gpio99";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-high;
+       };
+
+       uart1_mux1_rs232_low: uart1-mux1-rs232-state {
+               bootph-all;
+               pins = "gpio100";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-low;
+       };
+
+       usb_id_default: usb-id-default-state {
+               pins = "gpio110";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+};
+
+&usb {
+       extcon = <&usb_id>, <&usb_id>;
+       pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>;
+       pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>;
+       pinctrl-names = "default", "device";
+       status = "okay";
+};
+
+&usb_hs_phy {
+       extcon = <&usb_id>;
+};
+
+&wcnss {
+       firmware-name = "qcom/apq8016/wcnss.mbn";
+       status = "okay";
+};
+
+&wcnss_ctrl {
+       firmware-name = "qcom/apq8016/WCNSS_qcom_wlan_nv_sbc.bin";
+};
+
+&wcnss_iris {
+       compatible = "qcom,wcn3620";
+};
+
+&wcnss_mem {
+       status = "okay";
+};
+
+/* PINCTRL - additions to nodes defined in msm8916.dtsi */
+
+/*
+ * 2mA drive strength is not enough when connecting multiple
+ * I2C devices with different pull up resistors.
+ */
+&blsp_i2c4_default {
+       drive-strength = <16>;
+};
+
+&blsp_i2c6_default {
+       drive-strength = <16>;
+};
+
+&blsp_uart1_default {
+       bootph-all;
+};
+
+/* Enable CoreSight */
+&cti0 { status = "okay"; };
+&cti1 { status = "okay"; };
+&cti12 { status = "okay"; };
+&cti13 { status = "okay"; };
+&cti14 { status = "okay"; };
+&cti15 { status = "okay"; };
+&debug0 { status = "okay"; };
+&debug1 { status = "okay"; };
+&debug2 { status = "okay"; };
+&debug3 { status = "okay"; };
+&etf { status = "okay"; };
+&etm0 { status = "okay"; };
+&etm1 { status = "okay"; };
+&etm2 { status = "okay"; };
+&etm3 { status = "okay"; };
+&etr { status = "okay"; };
+&funnel0 { status = "okay"; };
+&funnel1 { status = "okay"; };
+&replicator { status = "okay"; };
+&stm { status = "okay"; };
+&tpiu { status = "okay"; };
diff --git a/src/arm64/qcom/ipq5018-tplink-archer-ax55-v1.dts b/src/arm64/qcom/ipq5018-tplink-archer-ax55-v1.dts
new file mode 100644 (file)
index 0000000..5bb021c
--- /dev/null
@@ -0,0 +1,128 @@
+// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+#include "ipq5018.dtsi"
+
+/ {
+       model = "TP-Link Archer AX55 v1";
+       compatible = "tplink,archer-ax55-v1", "qcom,ipq5018";
+
+       aliases {
+               serial0 = &blsp1_uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-0 = <&led_pins>;
+               pinctrl-names = "default";
+
+               led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_LAN;
+                       gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_WAN_ONLINE;
+                       gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-2 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_WLAN_2GHZ;
+                       gpios = <&tlmm 13 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-3 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-4 {
+                       color = <LED_COLOR_ID_ORANGE>;
+                       function = LED_FUNCTION_WAN;
+                       gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-5 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_USB;
+                       gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-6 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_WLAN_5GHZ;
+                       gpios = <&tlmm 39 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       buttons {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&button_pins>;
+               pinctrl-names = "default";
+
+               button-reset {
+                       debounce-interval = <60>;
+                       gpios = <&tlmm 25 GPIO_ACTIVE_LOW>;
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+               };
+
+               button-wps {
+                       debounce-interval = <60>;
+                       gpios = <&tlmm 31 GPIO_ACTIVE_LOW>;
+                       label = "wps";
+                       linux,code = <KEY_WPS_BUTTON>;
+               };
+       };
+};
+
+&blsp1_uart1 {
+       pinctrl-0 = <&uart_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&sleep_clk {
+       clock-frequency = <32000>;
+};
+
+&tlmm {
+       button_pins: button-pins-state {
+               pins = "gpio25", "gpio31";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+
+       led_pins: led-pins-state {
+               pins = "gpio10", "gpio11", "gpio13", "gpio18", "gpio22",
+                      "gpio38", "gpio39";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       uart_pins: uart-pins-state {
+               pins = "gpio20", "gpio21";
+               function = "blsp0_uart0";
+               drive-strength = <8>;
+               bias-disable;
+       };
+};
+
+&xo_board_clk {
+       clock-frequency = <24000000>;
+};
index 32b178b639f0cc722e4fda37ca5c3ec63488bfd7..7e6e2c1219793145fdbc6d97cac5c1a646dd77b3 100644 (file)
                                 <0>;
                        #clock-cells = <1>;
                        #reset-cells = <1>;
-                       #power-domain-cells = <1>;
                };
 
                tcsr_mutex: hwlock@1905000 {
index 770d9c2fb4562b1daab13a45945020bdcc7d9b93..0a74ed4f72cc77659f0362764dea1f1d4646ec24 100644 (file)
                        reg = <0x01800000 0x80000>;
                        #clock-cells = <1>;
                        #reset-cells = <1>;
-                       #power-domain-cells = <1>;
                        clocks = <&xo_board>,
                                 <&sleep_clk>,
                                 <0>,
                        reg = <0x08af8800 0x400>;
 
                        interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 53 IRQ_TYPE_EDGE_BOTH>,
-                                    <GIC_SPI 52 IRQ_TYPE_EDGE_BOTH>;
+                                    <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "pwr_event",
                                          "dp_hs_phy_irq",
                                          "dm_hs_phy_irq";
index 17ab6c4759580c28f09e6bb695e614a669f70df6..e1e45da7f787ea7f67e80c664688effc5bd81727 100644 (file)
                        };
                };
 
-               gcc: gcc@1800000 {
+               gcc: clock-controller@1800000 {
                        compatible = "qcom,gcc-ipq6018";
                        reg = <0x0 0x01800000 0x0 0x80000>;
                        clocks = <&xo>, <&sleep_clk>;
                        };
                };
 
+               sdhc: mmc@7804000 {
+                       compatible = "qcom,ipq6018-sdhci", "qcom,sdhci-msm-v5";
+                       reg = <0x0 0x07804000 0x0 0x1000>,
+                             <0x0 0x07805000 0x0 0x1000>;
+                       reg-names = "hc", "cqhci";
+
+                       interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+
+                       clocks = <&gcc GCC_SDCC1_AHB_CLK>,
+                                <&gcc GCC_SDCC1_APPS_CLK>,
+                                <&xo>;
+                       clock-names = "iface", "core", "xo";
+                       resets = <&gcc GCC_SDCC1_BCR>;
+                       max-frequency = <192000000>;
+                       status = "disabled";
+               };
+
                blsp_dma: dma-controller@7884000 {
                        compatible = "qcom,bam-v1.7.0";
                        reg = <0x0 0x07884000 0x0 0x2b000>;
                                clocks = <&xo>;
                                clock-names = "ref";
                                tx-fifo-resize;
+                               snps,parkmode-disable-ss-quirk;
                                snps,is-utmi-l1-suspend;
                                snps,hird-threshold = /bits/ 8 <0x0>;
                                snps,dis_u2_susphy_quirk;
        thermal-zones {
                nss-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
                        thermal-sensors = <&tsens 4>;
 
                        trips {
 
                nss-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
                        thermal-sensors = <&tsens 5>;
 
                        trips {
 
                wcss-phya0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
                        thermal-sensors = <&tsens 7>;
 
                        trips {
 
                cpu-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
                        thermal-sensors = <&tsens 13>;
 
                        trips {
 
                lpass-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
                        thermal-sensors = <&tsens 14>;
 
                        trips {
 
                ddrss-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
                        thermal-sensors = <&tsens 15>;
 
                        trips {
index 5d42de829e75f18c0f35479e8390c690de62b266..284a4553070faa94960d12e6b08fadf8cd2c6b06 100644 (file)
                        };
                };
 
-               gcc: gcc@1800000 {
+               gcc: clock-controller@1800000 {
                        compatible = "qcom,gcc-ipq8074";
                        reg = <0x01800000 0x80000>;
                        clocks = <&xo>,
                                interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                                phys = <&qusb_phy_0>, <&ssphy_0>;
                                phy-names = "usb2-phy", "usb3-phy";
+                               snps,parkmode-disable-ss-quirk;
                                snps,is-utmi-l1-suspend;
                                snps,hird-threshold = /bits/ 8 <0x0>;
                                snps,dis_u2_susphy_quirk;
                                interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
                                phys = <&qusb_phy_1>, <&ssphy_1>;
                                phy-names = "usb2-phy", "usb3-phy";
+                               snps,parkmode-disable-ss-quirk;
                                snps,is-utmi-l1-suspend;
                                snps,hird-threshold = /bits/ 8 <0x0>;
                                snps,dis_u2_susphy_quirk;
        thermal-zones {
                nss-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 4>;
 
 
                nss0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 5>;
 
 
                nss1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 6>;
 
 
                wcss-phya0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 7>;
 
 
                wcss-phya1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 8>;
 
 
                cpu0_thermal: cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 9>;
 
 
                cpu1_thermal: cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 10>;
 
 
                cpu2_thermal: cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 11>;
 
 
                cpu3_thermal: cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 12>;
 
 
                cluster_thermal: cluster-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 13>;
 
 
                wcss-phyb0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 14>;
 
 
                wcss-phyb1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 15>;
 
index 7f2e5cbf3bbb711afb8a9ae11402804f6613a18f..48dfafea46a74783a1fd0b91766658f4e663c9f7 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <dt-bindings/clock/qcom,apss-ipq.h>
 #include <dt-bindings/clock/qcom,ipq9574-gcc.h>
+#include <dt-bindings/interconnect/qcom,ipq9574.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/reset/qcom,ipq9574-gcc.h>
 #include <dt-bindings/thermal/thermal.h>
                        clock-names = "core";
                };
 
+               mdio: mdio@90000 {
+                       compatible =  "qcom,ipq9574-mdio", "qcom,ipq4019-mdio";
+                       reg = <0x00090000 0x64>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&gcc GCC_MDIO_AHB_CLK>;
+                       clock-names = "gcc_mdio_ahb_clk";
+                       status = "disabled";
+               };
+
                qfprom: efuse@a4000 {
                        compatible = "qcom,ipq9574-qfprom", "qcom,qfprom";
                        reg = <0x000a4000 0x5a1>;
                                 <0>;
                        #clock-cells = <1>;
                        #reset-cells = <1>;
-                       #power-domain-cells = <1>;
+                       #interconnect-cells = <1>;
                };
 
                tcsr_mutex: hwlock@1905000 {
 
        thermal-zones {
                nss-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens 3>;
 
                        trips {
                };
 
                ubi-0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens 4>;
 
                        trips {
                };
 
                ubi-1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens 5>;
 
                        trips {
                };
 
                ubi-2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens 6>;
 
                        trips {
                };
 
                ubi-3-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens 7>;
 
                        trips {
                };
 
                cpuss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens 8>;
 
                        trips {
                };
 
                cpuss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens 9>;
 
                        trips {
                };
 
                cpu0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens 10>;
 
                        trips {
                };
 
                cpu1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens 11>;
 
                        trips {
                };
 
                cpu2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens 12>;
 
                        trips {
                };
 
                cpu3-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens 13>;
 
                        trips {
                };
 
                wcss-phyb-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens 14>;
 
                        trips {
                };
 
                top-glue-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens 15>;
 
                        trips {
index 366914be7d5333f96a302993e72f40b27062eea2..fba68bf8bf79c9c7b2911ff02ba882f0c5d324ac 100644 (file)
@@ -9,3 +9,17 @@
        compatible = "samsung,fortuna3g", "qcom,msm8916";
        chassis-type = "handset";
 };
+
+&battery {
+       charge-term-current-microamp = <200000>;
+       constant-charge-current-max-microamp = <1000000>;
+       constant-charge-voltage-max-microvolt = <4350000>;
+};
+
+&st_accel {
+       status = "okay";
+};
+
+&st_magn {
+       status = "okay";
+};
index b32c7a97394d8d973e6ed387b845a6c3f4da7862..b4ce14a79370bc16b7d8fe144e56f4bb27e01534 100644 (file)
@@ -3,6 +3,7 @@
 /dts-v1/;
 
 #include "msm8916-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
        status = "okay";
 };
 
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x4500000>;
+};
+
+&pm8916_codec {
+       qcom,micbias-lvl = <2800>;
+       qcom,mbhc-vthreshold-low = <150 237 450 500 590>;
+       qcom,mbhc-vthreshold-high = <150 237 450 500 590>;
+       qcom,hphl-jack-type-normally-open;
+};
+
 &pm8916_resin {
        linux,code = <KEY_VOLUMEDOWN>;
        status = "okay";
        status = "okay";
 };
 
+&sound {
+       model = "acer-a1-724";
+       audio-routing =
+               "DMIC1", "MIC BIAS External1",
+               "DMIC1", "Digital Mic1",
+               "AMIC2", "MIC BIAS Internal2",
+               "DMIC2", "MIC BIAS External1",
+               "DMIC2", "Digital Mic2";
+
+       pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default &pri_mi2s_mclk_default &cdc_dmic_default>;
+       pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep &pri_mi2s_mclk_sleep &cdc_dmic_sleep>;
+       pinctrl-names = "default", "sleep";
+};
+
 &usb {
        extcon = <&usb_id>, <&usb_id>;
        status = "okay";
index b748d140b52e9578b7c66dd7f9518145d5739af4..f7be7e3718209b9ca96afb13ea1aca05e1388225 100644 (file)
@@ -3,6 +3,7 @@
 /dts-v1/;
 
 #include "msm8916-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
                stdout-path = "serial0";
        };
 
+       battery: battery {
+               compatible = "simple-battery";
+               device-chemistry = "lithium-ion-polymer";
+               voltage-min-design-microvolt = <3700000>;
+               voltage-max-design-microvolt = <4200000>;
+               energy-full-design-microwatt-hours = <13690000>;
+               charge-full-design-microamp-hours = <3700000>;
+
+               ocv-capacity-celsius = <25>;
+               ocv-capacity-table-0 =
+                       <4186000 100>, <4126000 95>, <4078000 90>,
+                       <4036000 85>, <3997000 80>, <3962000 75>,
+                       <3932000 70>, <3904000 65>, <3874000 60>,
+                       <3839000 55>, <3809000 50>, <3792000 45>,
+                       <3780000 40>, <3772000 35>, <3764000 30>,
+                       <3752000 25>, <3731000 20>, <3704000 16>,
+                       <3677000 13>, <3670000 11>, <3668000 10>,
+                       <3666000 9>, <3662000 8>, <3658000 7>, <3648000 6>,
+                       <3624000 5>, <3580000 4>, <3518000 3>, <3434000 2>,
+                       <3310000 1>, <3000000 0>;
+       };
+
        flash-led-controller {
                /* Actually qcom,leds-gpio-flash */
                compatible = "sgmicro,sgm3140";
        status = "okay";
 };
 
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5000000>;
+};
+
+&pm8916_bms {
+       monitored-battery = <&battery>;
+       status = "okay";
+};
+
+&pm8916_codec {
+       qcom,micbias-lvl = <2800>;
+       qcom,mbhc-vthreshold-low = <150 180 237 450 500>;
+       qcom,mbhc-vthreshold-high = <150 180 237 450 500>;
+       qcom,hphl-jack-type-normally-open;
+};
+
 &pm8916_resin {
        linux,code = <KEY_VOLUMEDOWN>;
        status = "okay";
        status = "okay";
 };
 
+&sound {
+       model = "msm8916-1mic";
+       audio-routing =
+               "AMIC1", "MIC BIAS External1",
+               "AMIC2", "MIC BIAS Internal2",
+               "AMIC3", "MIC BIAS External1";
+};
+
 &usb {
        extcon = <&usb_id>, <&usb_id>;
        status = "okay";
diff --git a/src/arm64/qcom/msm8916-lg-c50.dts b/src/arm64/qcom/msm8916-lg-c50.dts
new file mode 100644 (file)
index 0000000..a823a1c
--- /dev/null
@@ -0,0 +1,140 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8916-pm8916.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "LG Leon LTE";
+       compatible = "lg,c50", "qcom,msm8916";
+       chassis-type = "handset";
+
+       aliases {
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&gpio_keys_default>;
+               pinctrl-names = "default";
+
+               label = "GPIO Buttons";
+
+               volume-up-button {
+                       label = "Volume Up";
+                       gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+
+               volume-down-button {
+                       label = "Volume Down";
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+       };
+
+       reg_sd_vmmc: regulator-sdcard-vmmc {
+               compatible = "regulator-fixed";
+               regulator-name = "sdcard-vmmc";
+               regulator-min-microvolt = <2950000>;
+               regulator-max-microvolt = <2950000>;
+
+               gpio = <&tlmm 60 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               startup-delay-us = <5000>;
+
+               pinctrl-0 = <&sd_vmmc_en_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp_uart2 {
+       status = "okay";
+};
+
+&pm8916_usbin {
+       status = "okay";
+};
+
+&pm8916_vib {
+       status = "okay";
+};
+
+&sdhc_1 {
+       status = "okay";
+};
+
+&sdhc_2 {
+       vmmc-supply = <&reg_sd_vmmc>;
+
+       pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
+       pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
+       pinctrl-names = "default", "sleep";
+
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>;
+
+       status = "okay";
+};
+
+&usb {
+       dr_mode = "peripheral";
+       extcon = <&pm8916_usbin>;
+       status = "okay";
+};
+
+&usb_hs_phy {
+       extcon = <&pm8916_usbin>;
+};
+
+&venus {
+       status = "okay";
+};
+
+&venus_mem {
+       status = "okay";
+};
+
+&wcnss {
+       status = "okay";
+};
+
+&wcnss_iris {
+       compatible = "qcom,wcn3620";
+};
+
+&wcnss_mem {
+       status = "okay";
+};
+
+&tlmm {
+       gpio_keys_default: gpio-keys-default-state {
+               pins = "gpio107", "gpio108";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       sd_vmmc_en_default: sd-vmmc-en-default-state {
+               pins = "gpio60";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       sdc2_cd_default: sdc2-cd-default-state {
+               pins = "gpio38";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+};
diff --git a/src/arm64/qcom/msm8916-lg-m216.dts b/src/arm64/qcom/msm8916-lg-m216.dts
new file mode 100644 (file)
index 0000000..07345e6
--- /dev/null
@@ -0,0 +1,251 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8916-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "LG K10 (K420n)";
+       compatible = "lg,m216", "qcom,msm8916";
+       chassis-type = "handset";
+
+       aliases {
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0";
+       };
+
+       battery: battery {
+               compatible = "simple-battery";
+               voltage-min-design-microvolt = <3300000>;
+               voltage-max-design-microvolt = <4350000>;
+               energy-full-design-microwatt-hours = <8800000>;
+               charge-full-design-microamp-hours = <2300000>;
+
+               ocv-capacity-celsius = <25>;
+               ocv-capacity-table-0 = <4342000 100>, <4266000 95>, <4206000 90>,
+                       <4148000 85>, <4094000 80>, <4046000 75>, <3994000 70>,
+                       <3956000 65>, <3916000 60>, <3866000 55>, <3831000 50>,
+                       <3808000 45>, <3789000 40>, <3776000 35>, <3769000 30>,
+                       <3760000 25>, <3740000 20>, <3712000 16>, <3684000 13>,
+                       <3676000 11>, <3674000 10>, <3672000 9>, <3669000 8>,
+                       <3665000 7>, <3660000 6>, <3643000 5>, <3602000 4>,
+                       <3542000 3>, <3458000 2>, <3326000 1>, <3000000 0>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&gpio_keys_default>;
+               pinctrl-names = "default";
+
+               label = "GPIO Buttons";
+
+               volume-up-button {
+                       label = "Volume Up";
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+
+               volume-down-button {
+                       label = "Volume Down";
+                       gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+       };
+};
+
+&blsp_i2c2 {
+       status = "okay";
+
+       accelerometer@11 {
+               compatible = "bosch,bmc150_accel";
+               reg = <0x11>;
+
+               interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_RISING>;
+
+               mount-matrix =   "0", "1", "0",
+                               "-1", "0", "0",
+                                "0", "0", "1";
+
+               vdd-supply = <&pm8916_l17>;
+               vddio-supply = <&pm8916_l6>;
+
+               pinctrl-0 = <&accel_int_default>;
+               pinctrl-names = "default";
+       };
+
+       magnetometer@13 {
+               compatible = "bosch,bmc150_magn";
+               reg = <0x13>;
+
+               interrupts-extended = <&tlmm 69 IRQ_TYPE_EDGE_RISING>;
+
+               vdd-supply = <&pm8916_l17>;
+               vddio-supply = <&pm8916_l6>;
+
+               pinctrl-0 = <&magn_int_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp_i2c5 {
+       status = "okay";
+
+       touchscreen@34 {
+               compatible = "melfas,mip4_ts";
+               reg = <0x34>;
+
+               interrupts-extended = <&tlmm 13 IRQ_TYPE_EDGE_FALLING>;
+               ce-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&touchscreen_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp_uart2 {
+       status = "okay";
+};
+
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x4a00000>;
+};
+
+&pm8916_bms {
+       monitored-battery = <&battery>;
+       power-supplies = <&pm8916_charger>;
+
+       status = "okay";
+};
+
+&pm8916_charger {
+       qcom,fast-charge-safe-current = <700000>;
+       qcom,fast-charge-safe-voltage = <4300000>;
+
+       monitored-battery = <&battery>;
+       status = "okay";
+};
+
+&pm8916_codec {
+       qcom,micbias1-ext-cap;
+       qcom,micbias-lvl = <2800>;
+       qcom,mbhc-vthreshold-low = <75 100 120 180 500>;
+       qcom,mbhc-vthreshold-high = <75 100 120 180 500>;
+       qcom,hphl-jack-type-normally-open;
+};
+
+&pm8916_rpm_regulators {
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+};
+
+&pm8916_vib {
+       status = "okay";
+};
+
+&sdhc_1 {
+       status = "okay";
+};
+
+&sdhc_2 {
+       pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
+       pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
+       pinctrl-names = "default", "sleep";
+
+       cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
+
+       status = "okay";
+};
+
+&sound {
+       audio-routing =
+               "AMIC1", "MIC BIAS External1",
+               "AMIC2", "MIC BIAS Internal2",
+               "AMIC3", "MIC BIAS External1";
+};
+
+&usb {
+       dr_mode = "peripheral";
+       extcon = <&pm8916_charger>;
+       status = "okay";
+};
+
+&usb_hs_phy {
+       extcon = <&pm8916_charger>;
+};
+
+&venus {
+       status = "okay";
+};
+
+&venus_mem {
+       status = "okay";
+};
+
+&wcnss {
+       status = "okay";
+};
+
+&wcnss_iris {
+       compatible = "qcom,wcn3620";
+};
+
+&wcnss_mem {
+       status = "okay";
+};
+
+&tlmm {
+       accel_int_default: accel-int-default-state {
+               pins = "gpio115";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       gpio_keys_default: gpio-keys-default-state {
+               pins = "gpio107", "gpio108";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       magn_int_default: magn-int-default-state {
+               pins = "gpio69";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       sdc2_cd_default: sdc2-cd-default-state {
+               pins = "gpio38";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       touchscreen_default: touchscreen-default-state {
+               touchscreen-pins {
+                       pins = "gpio13";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               ce-pins {
+                       pins = "gpio12";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+};
diff --git a/src/arm64/qcom/msm8916-motorola-common.dtsi b/src/arm64/qcom/msm8916-motorola-common.dtsi
new file mode 100644 (file)
index 0000000..6a27d0e
--- /dev/null
@@ -0,0 +1,161 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#include "msm8916-pm8916.dtsi"
+#include "msm8916-modem-qdsp6.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       aliases {
+               mmc0 = &sdhc_1; /* eMMC */
+               mmc1 = &sdhc_2; /* SD card */
+               serial0 = &blsp_uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&gpio_keys_default>;
+               pinctrl-names = "default";
+
+               label = "GPIO Buttons";
+
+               volume-up-button {
+                       label = "Volume Up";
+                       gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+               };
+       };
+
+       usb_id: usb-id {
+               compatible = "linux,extcon-usb-gpio";
+               id-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&usb_id_default>;
+               pinctrl-1 = <&usb_id_sleep>;
+               pinctrl-names = "default", "sleep";
+       };
+};
+
+&blsp_i2c2 {
+       status = "okay";
+
+       touchscreen: touchscreen@20 {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x20>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vio-supply = <&pm8916_l6>;
+
+               syna,startup-delay-ms = <100>;
+
+               rmi4-f01@1 {
+                       reg = <1>;
+                       syna,nosleep-mode = <1>; /* Allow sleeping */
+               };
+
+               rmi4-f11@11 {
+                       reg = <11>;
+                       syna,sensor-type = <1>; /* Touchscreen */
+               };
+       };
+};
+
+&blsp_uart1 {
+       status = "okay";
+};
+
+&mpss_mem {
+       reg = <0x0 0x86800000 0x0 0x5500000>;
+};
+
+&pm8916_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
+&pm8916_rpm_regulators {
+       pm8916_l16: l16 {
+               regulator-min-microvolt = <3100000>;
+               regulator-max-microvolt = <3300000>;
+       };
+};
+
+&pm8916_vib {
+       status = "okay";
+};
+
+&sdhc_1 {
+       status = "okay";
+};
+
+&sdhc_2 {
+       status = "okay";
+};
+
+&usb {
+       extcon = <&usb_id>, <&usb_id>;
+       status = "okay";
+};
+
+&usb_hs_phy {
+       extcon = <&usb_id>;
+};
+
+&venus {
+       status = "okay";
+};
+
+&venus_mem {
+       status = "okay";
+};
+
+&wcnss {
+       status = "okay";
+};
+
+&wcnss_iris {
+       compatible = "qcom,wcn3620";
+};
+
+&wcnss_mem {
+       status = "okay";
+};
+
+/* CTS/RTX are not used */
+&blsp_uart1_default {
+       pins = "gpio0", "gpio1";
+};
+&blsp_uart1_sleep {
+       pins = "gpio0", "gpio1";
+};
+
+&tlmm {
+       gpio_keys_default: gpio-keys-default-state {
+               pins = "gpio107";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       usb_id_default: usb-id-default-state {
+               pins = "gpio91";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+
+       usb_id_sleep: usb-id-sleep-state {
+               pins = "gpio91";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+};
diff --git a/src/arm64/qcom/msm8916-motorola-harpia.dts b/src/arm64/qcom/msm8916-motorola-harpia.dts
new file mode 100644 (file)
index 0000000..8380451
--- /dev/null
@@ -0,0 +1,147 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8916-motorola-common.dtsi"
+
+/ {
+       model = "Motorola Moto G4 Play";
+       compatible = "motorola,harpia", "qcom,msm8916";
+       chassis-type = "handset";
+};
+
+&blsp_i2c1 {
+       status = "okay";
+
+       battery@36 {
+               compatible = "maxim,max17050";
+               reg = <0x36>;
+
+               interrupts-extended = <&tlmm 62 IRQ_TYPE_EDGE_FALLING>;
+
+               pinctrl-0 = <&battery_alert_default>;
+               pinctrl-names = "default";
+
+               maxim,rsns-microohm = <10000>;
+               maxim,over-heat-temp = <600>;
+               maxim,cold-temp = <(-200)>;
+               maxim,dead-volt = <3200>;
+               maxim,over-volt = <4500>;
+       };
+
+       /* charger@6b */
+};
+
+&blsp_i2c4 {
+       status = "okay";
+
+       accelerometer@19 {
+               compatible = "bosch,bma253";
+               reg = <0x19>;
+
+               interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_RISING>,
+                                     <&tlmm 119 IRQ_TYPE_EDGE_RISING>;
+
+               vdd-supply = <&pm8916_l17>;
+               vddio-supply = <&pm8916_l6>;
+
+               mount-matrix = "1",  "0", "0",
+                              "0", "-1", "0",
+                              "0",  "0", "1";
+
+               pinctrl-0 = <&accel_int_default>;
+               pinctrl-names = "default";
+       };
+
+       /* proximity@49 */
+};
+
+&pm8916_codec {
+       qcom,micbias-lvl = <2800>;
+       qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
+       qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
+       qcom,micbias1-ext-cap;
+};
+
+&pm8916_rpm_regulators {
+       pm8916_l17: l17 {
+               regulator-min-microvolt = <2850000>;
+               regulator-max-microvolt = <2850000>;
+       };
+};
+
+&sdhc_2 {
+       pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
+       pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
+       pinctrl-names = "default", "sleep";
+
+       cd-gpios = <&tlmm 118 GPIO_ACTIVE_LOW>;
+};
+
+&sound {
+       audio-routing =
+               "AMIC1", "MIC BIAS External1",
+               "AMIC2", "MIC BIAS Internal2",
+               "AMIC3", "MIC BIAS External1";
+
+       pinctrl-0 = <&cdc_pdm_default &headset_switch_supply_en
+                    &headset_switch_in>;
+       pinctrl-1 = <&cdc_pdm_sleep &headset_switch_supply_en
+                    &headset_switch_in>;
+       pinctrl-names = "default", "sleep";
+};
+
+&touchscreen {
+       interrupts-extended = <&tlmm 13 IRQ_TYPE_EDGE_FALLING>;
+
+       vdd-supply = <&pm8916_l16>;
+
+       pinctrl-0 = <&ts_int_default>;
+       pinctrl-names = "default";
+};
+
+&tlmm {
+       accel_int_default: accel-int-default-state {
+               pins = "gpio115", "gpio119";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       battery_alert_default: battery-alert-default-state {
+               pins = "gpio62";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       headset_switch_in: headset-switch-in-state {
+               pins = "gpio112";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-low;
+       };
+
+       headset_switch_supply_en: headset-switch-supply-en-state {
+               pins = "gpio111";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-high;
+       };
+
+       sdc2_cd_default: sdc2-cd-default-state {
+               pins = "gpio118";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       ts_int_default: ts-int-default-state {
+               pins = "gpio13";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
diff --git a/src/arm64/qcom/msm8916-motorola-osprey.dts b/src/arm64/qcom/msm8916-motorola-osprey.dts
new file mode 100644 (file)
index 0000000..ec5589f
--- /dev/null
@@ -0,0 +1,105 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8916-motorola-common.dtsi"
+
+/ {
+       model = "Motorola Moto G 2015";
+       compatible = "motorola,osprey", "qcom,msm8916";
+       chassis-type = "handset";
+
+       reg_touch_vdda: regulator-touch-vdda {
+               compatible = "regulator-fixed";
+               regulator-name = "touch_vdda";
+               gpio = <&tlmm 114 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-0 = <&touch_vdda_default>;
+               pinctrl-names = "default";
+               startup-delay-us = <300>;
+               vin-supply = <&pm8916_l16>;
+       };
+};
+
+&blsp_i2c1 {
+       status = "okay";
+
+       battery@36 {
+               compatible = "maxim,max17050";
+               reg = <0x36>;
+
+               interrupts-extended = <&tlmm 49 IRQ_TYPE_EDGE_FALLING>;
+
+               pinctrl-0 = <&battery_alert_default>;
+               pinctrl-names = "default";
+
+               maxim,rsns-microohm = <10000>;
+               maxim,over-heat-temp = <600>;
+               maxim,cold-temp = <(-200)>;
+               maxim,dead-volt = <3200>;
+               maxim,over-volt = <4500>;
+
+       };
+};
+
+&blsp_i2c6 {
+       /* magnetometer@c */
+};
+
+&pm8916_codec {
+       qcom,micbias1-ext-cap;
+       qcom,micbias2-ext-cap;
+};
+
+&sdhc_2 {
+       pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
+       pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
+       pinctrl-names = "default", "sleep";
+
+       cd-gpios = <&tlmm 25 GPIO_ACTIVE_LOW>;
+};
+
+&sound {
+       audio-routing =
+               "AMIC1", "MIC BIAS External1",
+               "AMIC3", "MIC BIAS External1";
+};
+
+&touchscreen {
+       interrupts-extended = <&tlmm 21 IRQ_TYPE_EDGE_FALLING>;
+
+       vdd-supply = <&reg_touch_vdda>;
+
+       pinctrl-0 = <&ts_int_default>;
+       pinctrl-names = "default";
+};
+
+&tlmm {
+       battery_alert_default: battery-alert-default-state {
+               pins = "gpio49";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       sdc2_cd_default: sdc2-cd-default-state {
+               pins = "gpio25";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       ts_int_default: ts-int-default-state {
+               pins = "gpio21";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       touch_vdda_default: touch-vdda-default-state {
+               pins = "gpio114";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
diff --git a/src/arm64/qcom/msm8916-motorola-surnia.dts b/src/arm64/qcom/msm8916-motorola-surnia.dts
new file mode 100644 (file)
index 0000000..eecf78b
--- /dev/null
@@ -0,0 +1,83 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+/dts-v1/;
+
+#include "msm8916-motorola-common.dtsi"
+
+/ {
+       model = "Motorola Moto E 2015 LTE";
+       compatible = "motorola,surnia", "qcom,msm8916";
+       chassis-type = "handset";
+};
+
+&blsp_i2c4 {
+       status = "okay";
+
+       battery@36 {
+               compatible = "maxim,max17050";
+               reg = <0x36>;
+
+               interrupts-extended = <&tlmm 12 IRQ_TYPE_EDGE_FALLING>;
+
+               pinctrl-0 = <&battery_alert_default>;
+               pinctrl-names = "default";
+
+               maxim,rsns-microohm = <10000>;
+               maxim,over-heat-temp = <600>;
+               maxim,cold-temp = <(-200)>;
+               maxim,dead-volt = <3200>;
+               maxim,over-volt = <4500>;
+
+       };
+};
+
+&pm8916_codec {
+       qcom,micbias1-ext-cap;
+       qcom,micbias2-ext-cap;
+};
+
+&sdhc_2 {
+       pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
+       pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
+       pinctrl-names = "default", "sleep";
+
+       cd-gpios = <&tlmm 25 GPIO_ACTIVE_LOW>;
+};
+
+&sound {
+       audio-routing =
+               "AMIC1", "MIC BIAS External1",
+               "AMIC3", "MIC BIAS External1";
+};
+
+&touchscreen {
+       interrupts-extended = <&tlmm 21 IRQ_TYPE_EDGE_FALLING>;
+
+       vdd-supply = <&pm8916_l16>;
+
+       pinctrl-0 = <&ts_int_default>;
+       pinctrl-names = "default";
+};
+
+&tlmm {
+       battery_alert_default: battery-alert-default-state {
+               pins = "gpio12";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       sdc2_cd_default: sdc2-cd-default-state {
+               pins = "gpio25";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       ts_int_default: ts-int-default-state {
+               pins = "gpio21";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
index 4bbbee80b5e4bbb2e5ddcc75b35131ee98a8db3c..e6355e5e2177df9e3beba6b2d96a15fb069ce57a 100644 (file)
                };
        };
 
+       battery: battery {
+               compatible = "simple-battery";
+               precharge-current-microamp = <450000>;
+               precharge-upper-limit-microvolt = <3500000>;
+       };
+
        clk_pwm: pwm {
                compatible = "clk-pwm";
                #pwm-cells = <2>;
 &blsp_i2c4 {
        status = "okay";
 
-       battery@35 {
+       fuel-gauge@35 {
                compatible = "richtek,rt5033-battery";
                reg = <0x35>;
                interrupt-parent = <&tlmm>;
 
                pinctrl-names = "default";
                pinctrl-0 = <&fg_alert_default>;
+
+               power-supplies = <&charger>;
+       };
+};
+
+&blsp_i2c6 {
+       status = "okay";
+
+       pmic@34 {
+               compatible = "richtek,rt5033";
+               reg = <0x34>;
+
+               interrupts-extended = <&tlmm 62 IRQ_TYPE_EDGE_FALLING>;
+
+               pinctrl-0 = <&pmic_int_default>;
+               pinctrl-names = "default";
+
+               regulators {
+                       rt5033_reg_safe_ldo: SAFE_LDO {
+                               regulator-min-microvolt = <4900000>;
+                               regulator-max-microvolt = <4900000>;
+                               regulator-always-on;
+                       };
+
+                       /*
+                        * Needed for camera, but not used yet.
+                        * Define empty nodes to allow disabling the unused
+                        * regulators.
+                        */
+                       LDO {};
+                       BUCK {};
+               };
+
+               charger: charger {
+                       compatible = "richtek,rt5033-charger";
+                       monitored-battery = <&battery>;
+                       richtek,usb-connector = <&usb_con>;
+               };
        };
 };
 
                bias-disable;
        };
 
+       pmic_int_default: pmic-int-default-state {
+               pins = "gpio62";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        sdc2_cd_default: sdc2-cd-default-state {
                pins = "gpio38";
                function = "gpio";
index 3b934f5eba473247298bdccd90a47f1bf6424130..906d31f1ea21fb75fbeeeb5c24cfb62f8f0e254e 100644 (file)
                       "0", "0", "1";
 };
 
+&battery {
+       charge-term-current-microamp = <150000>;
+       constant-charge-current-max-microamp = <1000000>;
+       constant-charge-voltage-max-microvolt = <4350000>;
+};
+
 &blsp_i2c5 {
        status = "okay";
 
index 391befa22bb42757bbb5982ff03dc437c6c6139c..fe39be7a742bbc44eef54f56acb9d693a2824904 100644 (file)
                        "0", "0", "1";
 };
 
+&battery {
+       charge-term-current-microamp = <200000>;
+       constant-charge-current-max-microamp = <1500000>;
+       constant-charge-voltage-max-microvolt = <4350000>;
+};
+
 &blsp_i2c5 {
        status = "okay";
 
index fad2535255f771e167c8f9e44f76e33711abbde5..800cb1038da0e875aab2c7b02e9aa721f132f3ac 100644 (file)
        chassis-type = "handset";
 };
 
+&battery {
+       charge-term-current-microamp = <200000>;
+       constant-charge-current-max-microamp = <1500000>;
+       constant-charge-voltage-max-microvolt = <4350000>;
+};
+
 &blsp_i2c5 {
        status = "okay";
 
index b412b61ca25853d69049becfd8b50daa656b5876..ec1debd2e2453e729e8cd9e7715c62544d2e197a 100644 (file)
        chassis-type = "handset";
 };
 
+&battery {
+       charge-term-current-microamp = <200000>;
+       constant-charge-current-max-microamp = <1500000>;
+       constant-charge-voltage-max-microvolt = <4350000>;
+};
+
+
 &pm8916_l17 {
        regulator-min-microvolt = <3000000>;
        regulator-max-microvolt = <3000000>;
index 5e933fb8b363f99688069dedd7b1f8ba8207949c..81b3e0760154f7601992edc33aa2e988eeba2377 100644 (file)
@@ -6,6 +6,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 
 / {
        aliases {
                };
        };
 
+       battery: battery {
+               compatible = "simple-battery";
+               precharge-current-microamp = <450000>;
+               precharge-upper-limit-microvolt = <3500000>;
+       };
+
        clk_pwm_backlight: backlight {
                compatible = "pwm-backlight";
                pwms = <&clk_pwm 0 100000>;
                max-microvolt = <3300000>;
        };
 
+       i2c_nfc: i2c-nfc {
+               compatible = "i2c-gpio";
+               sda-gpios = <&tlmm 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&tlmm 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+
+               pinctrl-0 = <&nfc_i2c_default>;
+               pinctrl-names = "default";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               s3fwrn5_nfc: nfc@27 {
+                       compatible = "samsung,s3fwrn5-i2c";
+                       reg = <0x27>;
+
+                       interrupts-extended = <&tlmm 21 IRQ_TYPE_EDGE_RISING>;
+
+                       en-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
+                       wake-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
+
+                       clocks = <&rpmcc RPM_SMD_BB_CLK2_PIN>;
+
+                       pinctrl-0 = <&nfc_default>, <&nfc_clk_req>;
+                       pinctrl-names = "default";
+
+                       status = "disabled";
+               };
+       };
+
        reg_motor_vdd: regulator-motor-vdd {
                compatible = "regulator-fixed";
                regulator-name = "motor_vdd";
                interrupts-extended = <&tlmm 12 IRQ_TYPE_EDGE_FALLING>;
                pinctrl-0 = <&muic_int_default>;
                pinctrl-names = "default";
+
+               usb_con: connector {
+                       compatible = "usb-b-connector";
+                       label = "micro-USB";
+                       type = "micro";
+               };
+       };
+};
+
+&blsp_i2c2 {
+       /* Available sensors vary depending on model variant */
+       status = "okay";
+
+       bosch_accel: accelerometer@10 {
+               compatible = "bosch,bmc150_accel";
+               reg = <0x10>;
+               interrupts-extended = <&tlmm 115 IRQ_TYPE_EDGE_RISING>;
+
+               vdd-supply = <&pm8916_l5>;
+               vddio-supply = <&pm8916_l5>;
+
+               pinctrl-0 = <&accel_int_default>;
+               pinctrl-names = "default";
+
+               mount-matrix = "0", "-1", "0",
+                             "-1",  "0", "0",
+                              "0",  "0", "1";
+
+               status = "disabled";
+       };
+
+       bosch_magn: magnetometer@12 {
+               compatible = "bosch,bmc150_magn";
+               reg = <0x12>;
+
+               vdd-supply = <&pm8916_l5>;
+               vddio-supply = <&pm8916_l5>;
+
+               mount-matrix = "0", "-1", "0",
+                             "-1",  "0", "0",
+                              "0",  "0", "1";
+
+               status = "disabled";
+       };
+
+       st_accel: accelerometer@1d {
+               compatible = "st,lsm303c-accel";
+               reg = <0x1d>;
+               interrupts-extended = <&tlmm 115 IRQ_TYPE_LEVEL_HIGH>;
+
+               vdd-supply = <&pm8916_l17>;
+               vddio-supply = <&pm8916_l5>;
+
+               pinctrl-0 = <&accel_int_default>;
+               pinctrl-names = "default";
+
+               st,drdy-int-pin = <1>;
+               mount-matrix = "0", "-1",  "0",
+                              "1",  "0",  "0",
+                              "0",  "0", "-1";
+
+               status = "disabled";
+       };
+
+       st_magn: magnetometer@1e {
+               compatible = "st,lsm303c-magn";
+               reg = <0x1e>;
+
+               vdd-supply = <&pm8916_l17>;
+               vddio-supply = <&pm8916_l5>;
+
+               mount-matrix = "0", "-1",  "0",
+                              "1",  "0",  "0",
+                              "0",  "0", "-1";
+
+               status = "disabled";
        };
 };
 
 
                pinctrl-0 = <&fg_alert_default>;
                pinctrl-names = "default";
+
+               power-supplies = <&charger>;
        };
 };
 
        };
 };
 
+&blsp_i2c6 {
+       status = "okay";
+
+       pmic@34 {
+               compatible = "richtek,rt5033";
+               reg = <0x34>;
+
+               interrupts-extended = <&tlmm 62 IRQ_TYPE_EDGE_FALLING>;
+
+               pinctrl-0 = <&pmic_int_default>;
+               pinctrl-names = "default";
+
+               regulators {
+                       rt5033_reg_safe_ldo: SAFE_LDO {
+                               regulator-min-microvolt = <4900000>;
+                               regulator-max-microvolt = <4900000>;
+                               regulator-always-on;
+                       };
+
+                       /*
+                        * Needed for camera, but not used yet.
+                        * Define empty nodes to allow disabling the unused
+                        * regulators.
+                        */
+                       LDO {};
+                       BUCK {};
+               };
+
+               charger: charger {
+                       compatible = "richtek,rt5033-charger";
+                       monitored-battery = <&battery>;
+                       richtek,usb-connector = <&usb_con>;
+               };
+       };
+};
+
 &blsp_uart2 {
        status = "okay";
 };
 };
 
 &tlmm {
+       accel_int_default: accel-int-default-state {
+               pins = "gpio115";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        backlight_en_default: backlight-en-default-state {
                pins = "gpio98";
                function = "gpio";
                bias-disable;
        };
 
+       nfc_default: nfc-default-state {
+               irq-pins {
+                       pins = "gpio21";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+
+               nfc-pins {
+                       pins = "gpio20", "gpio49";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+
+       nfc_i2c_default: nfc-i2c-default-state {
+               pins = "gpio0", "gpio1";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       pmic_int_default: pmic-int-default-state {
+               pins = "gpio62";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        sdc2_cd_default: sdc2-cd-default-state {
                pins = "gpio38";
                function = "gpio";
                bias-disable;
        };
 };
+
+&pm8916_gpios {
+       nfc_clk_req: nfc-clk-req-state {
+               pins = "gpio2";
+               function = "func1";
+               power-source = <PM8916_GPIO_L2>;
+               bias-disable;
+               input-enable;
+       };
+};
index 9d65fa58ba92960f905f6c1b7209af76f3bd7cdb..677e4e286ac02205c291674bff650217f024420b 100644 (file)
        };
 };
 
+&battery {
+       charge-term-current-microamp = <200000>;
+       constant-charge-current-max-microamp = <1000000>;
+       constant-charge-voltage-max-microvolt = <4350000>;
+};
+
+&bosch_accel {
+       status = "okay";
+};
+
+&bosch_magn {
+       status = "okay";
+};
+
+&blsp_i2c6 {
+       /* pmic@34 is on i2c_nfc instead */
+       /delete-node/ pmic@34;
+
+       nfc@27 {
+               compatible = "samsung,s3fwrn5-i2c";
+               reg = <0x27>;
+
+               interrupts-extended = <&tlmm 21 IRQ_TYPE_EDGE_RISING>;
+
+               en-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
+               wake-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
+
+               clocks = <&rpmcc RPM_SMD_BB_CLK2_PIN>;
+
+               pinctrl-0 = <&nfc_default>, <&nfc_clk_req>;
+               pinctrl-names = "default";
+       };
+};
+
+&i2c_nfc {
+       /* nfc@27 is on &blsp_i2c6 */
+
+       pmic@34 {
+               compatible = "richtek,rt5033";
+               reg = <0x34>;
+
+               interrupts-extended = <&tlmm 62 IRQ_TYPE_EDGE_FALLING>;
+
+               pinctrl-0 = <&pmic_int_default>;
+               pinctrl-names = "default";
+
+               regulators {
+                       rt5033_reg_safe_ldo: SAFE_LDO {
+                               regulator-min-microvolt = <4900000>;
+                               regulator-max-microvolt = <4900000>;
+                               regulator-always-on;
+                       };
+
+                       /*
+                        * Needed for camera, but not used yet.
+                        * Define empty nodes to allow disabling the unused
+                        * regulators.
+                        */
+                       LDO {};
+                       BUCK {};
+               };
+
+               charger: charger {
+                       compatible = "richtek,rt5033-charger";
+                       monitored-battery = <&battery>;
+                       richtek,usb-connector = <&usb_con>;
+               };
+       };
+};
+
 &mpss_mem {
        /* Firmware for gprimeltecan needs more space */
        reg = <0x0 0x86800000 0x0 0x5400000>;
index 5882b3a593b8c9cf850690ece85f7a0802b32e16..135df1739dbda1e4a2f3415881671d5d21e8eb50 100644 (file)
        };
 };
 
+&battery {
+       charge-term-current-microamp = <150000>;
+       constant-charge-current-max-microamp = <1000000>;
+       constant-charge-voltage-max-microvolt = <4400000>;
+};
+
 &reg_motor_vdd {
        gpio = <&tlmm 72 GPIO_ACTIVE_HIGH>;
 };
index a66ce4b13547b46520ef509a933c500143a7b664..582bfcb0968470a7965d1a17944f8c9c7b8b6e27 100644 (file)
        chassis-type = "handset";
 };
 
+&battery {
+       charge-term-current-microamp = <200000>;
+       constant-charge-current-max-microamp = <1000000>;
+       constant-charge-voltage-max-microvolt = <4350000>;
+};
+
+&bosch_accel {
+       status = "okay";
+};
+
+&bosch_magn {
+       status = "okay";
+};
+
 &mpss_mem {
        /* Firmware for grandprimelte needs more space */
        reg = <0x0 0x86800000 0x0 0x5400000>;
index b438fa81886c5a31117a27bb6d35aae6db1e1aaf..e7f265e3c2ab87628d56571a38f3861f8d7d26ef 100644 (file)
                interrupts-extended = <&tlmm 12 IRQ_TYPE_EDGE_FALLING>;
                pinctrl-0 = <&muic_int_default>;
                pinctrl-names = "default";
+
+               usb_con: connector {
+                       compatible = "usb-b-connector";
+                       label = "micro-USB";
+                       type = "micro";
+               };
        };
 };
 
 &clk_pwm_backlight {
        status = "disabled";
 };
+
+&s3fwrn5_nfc {
+       status = "okay";
+};
+
+&st_accel {
+       compatible = "st,lis2hh12";
+       mount-matrix = "1",  "0", "0",
+                      "0", "-1", "0",
+                      "0",  "0", "1";
+       status = "okay";
+};
index ebaa13c6b0160221578aad1944482649e8c8edc4..1981bb71f6a928def5b6e9d1ed5197af4fcd2194 100644 (file)
        chassis-type = "handset";
 };
 
+&battery {
+       charge-term-current-microamp = <150000>;
+       constant-charge-current-max-microamp = <700000>;
+       constant-charge-voltage-max-microvolt = <4400000>;
+};
+
 &mpss_mem {
        /* Firmware for rossa needs more space */
        reg = <0x0 0x86800000 0x0 0x5800000>;
index cedff4166bfb9f1f3af68404cad606425d56ce2b..7383bcc603abc257c27121c690aa03be772e92e1 100644 (file)
 
                smd-edge {
                        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
-                       qcom,ipc = <&apcs 8 0>;
+                       mboxes = <&apcs 0>;
                        qcom,smd-edge = <15>;
 
                        rpm_requests: rpm-requests {
 
                interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
 
-               qcom,ipc = <&apcs 8 14>;
+               mboxes = <&apcs 14>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <1>;
 
                interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
 
-               qcom,ipc = <&apcs 8 18>;
+               mboxes = <&apcs 18>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <4>;
                #address-cells = <1>;
                #size-cells = <0>;
 
-               qcom,ipc-1 = <&apcs 8 13>;
-               qcom,ipc-3 = <&apcs 8 19>;
+               mboxes = <0>, <&apcs 13>, <0>, <&apcs 19>;
 
                apps_smsm: apps@0 {
                        reg = <0>;
                                interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
 
                                qcom,smd-edge = <0>;
-                               qcom,ipc = <&apcs 8 12>;
+                               mboxes = <&apcs 12>;
                                qcom,remote-pid = <1>;
 
                                label = "hexagon";
                        smd-edge {
                                interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
 
-                               qcom,ipc = <&apcs 8 17>;
+                               mboxes = <&apcs 17>;
                                qcom,smd-edge = <6>;
                                qcom,remote-pid = <4>;
 
        thermal-zones {
                cpu0-1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 5>;
 
 
                cpu2-3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 4>;
 
 
                gpu-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 2>;
 
 
                camera-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 1>;
 
 
                modem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 0>;
 
index 0c599e71a464b59448a1281590143da1dbe423aa..91acdb160227114e0961ce06f1b3a1a0602bc00b 100644 (file)
                };
        };
 
+       battery: battery {
+               compatible = "simple-battery";
+               charge-term-current-microamp = <150000>;
+               constant-charge-current-max-microamp = <1500000>;
+               constant-charge-voltage-max-microvolt = <4300000>;
+               precharge-current-microamp = <450000>;
+               precharge-upper-limit-microvolt = <3500000>;
+       };
+
        gpio-hall-sensor {
                compatible = "gpio-keys";
 
@@ -82,7 +91,7 @@
                #address-cells = <1>;
                #size-cells = <0>;
 
-               battery@35 {
+               fuel-gauge@35 {
                        compatible = "richtek,rt5033-battery";
                        reg = <0x35>;
 
 
                        pinctrl-0 = <&fg_alert_default>;
                        pinctrl-names = "default";
+
+                       power-supplies = <&charger>;
                };
        };
 
        };
 };
 
+&blsp_i2c6 {
+       status = "okay";
+
+       pmic@34 {
+               compatible = "richtek,rt5033";
+               reg = <0x34>;
+
+               interrupts-extended = <&tlmm 62 IRQ_TYPE_EDGE_FALLING>;
+
+               pinctrl-0 = <&pmic_int_default>;
+               pinctrl-names = "default";
+
+               regulators {
+                       rt5033_reg_safe_ldo: SAFE_LDO {
+                               regulator-min-microvolt = <4900000>;
+                               regulator-max-microvolt = <4900000>;
+                               regulator-always-on;
+                       };
+
+                       /*
+                        * Needed for camera, but not used yet.
+                        * Define empty nodes to allow disabling the unused
+                        * regulators.
+                        */
+                       LDO {};
+                       BUCK {};
+               };
+
+               charger: charger {
+                       compatible = "richtek,rt5033-charger";
+                       monitored-battery = <&battery>;
+                       richtek,usb-connector = <&usb_con>;
+               };
+       };
+};
+
 &blsp_uart2 {
        status = "okay";
 };
                bias-disable;
        };
 
+       pmic_int_default: pmic-int-default-state {
+               pins = "gpio62";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        reg_tsp_en_default: reg-tsp-en-default-state {
                pins = "gpio73";
                function = "gpio";
index dd45975682b247d5d3a9c14b6c319ecd1f97d878..46d9480cd46456045f8b7ea71a87799e23200d5a 100644 (file)
 
                smd-edge {
                        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
-                       qcom,ipc = <&apcs1_mbox 8 0>;
+                       mboxes = <&apcs1_mbox 0>;
                        qcom,smd-edge = <15>;
 
                        rpm_requests: rpm-requests {
                #address-cells = <1>;
                #size-cells = <0>;
 
-               qcom,ipc-1 = <&apcs1_mbox 8 13>;
-               qcom,ipc-3 = <&apcs1_mbox 8 19>;
+               mboxes = <0>, <&apcs1_mbox 13>, <0>, <&apcs1_mbox 19>;
 
                apps_smsm: apps@0 {
                        reg = <0>;
 
                        smd-edge {
                                interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
-                               qcom,ipc = <&apcs1_mbox 8 17>;
+                               mboxes = <&apcs1_mbox 17>;
                                qcom,smd-edge = <6>;
                                qcom,remote-pid = <4>;
 
        thermal_zones: thermal-zones {
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 5>;
 
 
                cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 6>;
 
 
                cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 7>;
 
 
                cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 8>;
 
 
                cpu4567-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 9>;
 
 
                gpu-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 3>;
 
 
                modem1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 0>;
 
 
                modem2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 2>;
 
 
                camera-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 1>;
 
index 711d84dad9d79cb5b37022d07a20375c851ed276..2edf804eb7c9d17503fab25c2865709bbda9d71d 100644 (file)
 };
 
 &usb3_dwc3 {
+       /delete-property/ usb-role-switch;
        dr_mode = "peripheral";
 };
index a5957e79b818c808a39690250a417914573c8e17..336b916729e4721b5ba8f4f7e368d0d838aa54ab 100644 (file)
 };
 
 &usb3_dwc3 {
+       /delete-property/ usb-role-switch;
        dr_mode = "peripheral";
 };
index 6b9245cd8b0c3f6884dee56357d2a93e2d15beda..bdf1bfc79c56949031d5b150bc22849f94822ad8 100644 (file)
 };
 
 &usb3_dwc3 {
+       /delete-property/ usb-role-switch;
        dr_mode = "peripheral";
 };
index 9ac4f507e321a6c0f48a2708ff3a7ec21844f6f1..fccb9c4360cae545b52fbff06bc5ba024a62da75 100644 (file)
 };
 
 &usb3_dwc3 {
+       /delete-property/ usb-role-switch;
        dr_mode = "peripheral";
 };
index b0588f30f8f1a7193762b7622fdf73c41ff90167..d46325e7991769d061a806cf462f6fd265b22df2 100644 (file)
 };
 
 &usb3_dwc3 {
+       /delete-property/ usb-role-switch;
        dr_mode = "peripheral";
 };
index 5d818fe057ddb419f89f26363fbc61132ce3dc6d..a4bfb624fb8ada27ea494e77e8a743319e1ae42b 100644 (file)
 
                smd-edge {
                        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
-                       qcom,ipc = <&apcs 8 0>;
+                       mboxes = <&apcs 0>;
                        qcom,smd-edge = <15>;
 
                        rpm_requests: rpm-requests {
 
                interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
 
-               qcom,ipc = <&apcs 8 14>;
+               mboxes = <&apcs 14>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <1>;
 
                interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
 
-               qcom,ipc = <&apcs 8 18>;
+               mboxes = <&apcs 18>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <4>;
                #address-cells = <1>;
                #size-cells = <0>;
 
-               qcom,ipc-1 = <&apcs 8 13>;
-               qcom,ipc-3 = <&apcs 8 19>;
+               mboxes = <0>, <&apcs 13>, <0>, <&apcs 19>;
 
                apps_smsm: apps@0 {
                        reg = <0>;
                                interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
 
                                qcom,smd-edge = <0>;
-                               qcom,ipc = <&apcs 8 12>;
+                               mboxes = <&apcs 12>;
                                qcom,remote-pid = <1>;
 
                                label = "modem";
                        smd-edge {
                                interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
 
-                               qcom,ipc = <&apcs 8 17>;
+                               mboxes = <&apcs 17>;
                                qcom,smd-edge = <6>;
                                qcom,remote-pid = <4>;
 
        thermal-zones {
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+
                        thermal-sensors = <&tsens0 9>;
+
                        trips {
                                cpu0_alert: trip-point0 {
                                        temperature = <80000>;
                };
                cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+
                        thermal-sensors = <&tsens0 10>;
+
                        trips {
                                cpu1_alert: trip-point0 {
                                        temperature = <80000>;
                };
                cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+
                        thermal-sensors = <&tsens0 11>;
+
                        trips {
                                cpu2_alert: trip-point0 {
                                        temperature = <80000>;
                };
                cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+
                        thermal-sensors = <&tsens0 12>;
+
                        trips {
                                cpu3_alert: trip-point0 {
                                        temperature = <80000>;
                };
                cpu4-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
                        thermal-sensors = <&tsens0 4>;
                        trips {
                                cpu4_alert: trip-point0 {
                };
                cpu5-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
                        thermal-sensors = <&tsens0 5>;
                        trips {
                                cpu5_alert: trip-point0 {
                };
                cpu6-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
                        thermal-sensors = <&tsens0 6>;
                        trips {
                                cpu6_alert: trip-point0 {
                };
                cpu7-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
                        thermal-sensors = <&tsens0 7>;
                        trips {
                                cpu7_alert: trip-point0 {
 
                gpu-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
                        thermal-sensors = <&tsens0 15>;
 
                        trips {
index 668e05185c21ee59f6040ce661d2fef2cccd5004..fa36b62156bb79d818678d5f22b110f9470970a9 100644 (file)
@@ -8,8 +8,8 @@
 
 #include "msm8976.dtsi"
 
-&pmu {
-       interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
+&pmu_a72 {
+       interrupts = <GIC_PPI 7 (GIC_CPU_MASK_RAW(0x30) | IRQ_TYPE_LEVEL_HIGH)>;
 };
 
 &tsens {
index d2bb1ada361af4996b28377728117373b672fe14..d62dcb76fa48547b3dc7fe51494a0acf7666f878 100644 (file)
                reg = <0x0 0x80000000 0x0 0x0>;
        };
 
-       pmu: pmu {
-               compatible = "arm,armv8-pmuv3";
-               interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
+       pmu-a53 {
+               compatible = "arm,cortex-a53-pmu";
+               interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
        };
 
+       pmu_a72: pmu-a72 {
+               compatible = "arm,cortex-a72-pmu";
+               interrupts = <GIC_PPI 7 (GIC_CPU_MASK_RAW(0xf0) | IRQ_TYPE_LEVEL_HIGH)>;
+       };
+
+
        psci {
                compatible = "arm,psci-1.0";
                method = "smc";
 
                smd-edge {
                        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
-                       qcom,ipc = <&apcs 8 0>;
+                       mboxes = <&apcs 0>;
                        qcom,smd-edge = <15>;
 
                        rpm_requests: rpm-requests {
        smp2p-hexagon {
                compatible = "qcom,smp2p";
                interrupts = <GIC_SPI 291 IRQ_TYPE_EDGE_RISING>;
-               qcom,ipc = <&apcs 8 10>;
+               mboxes = <&apcs 10>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <2>;
        smp2p-modem {
                compatible = "qcom,smp2p";
                interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
-               qcom,ipc = <&apcs 8 14>;
+               mboxes = <&apcs 14>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <1>;
        smp2p-wcnss {
                compatible = "qcom,smp2p";
                interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
-               qcom,ipc = <&apcs 8 18>;
+               mboxes = <&apcs 18>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <4>;
                #address-cells = <1>;
                #size-cells = <0>;
 
-               qcom,ipc-1 = <&apcs 8 13>;
-               qcom,ipc-2 = <&apcs 8 9>;
-               qcom,ipc-3 = <&apcs 8 19>;
+               mboxes = <0>, <&apcs 13>, <&apcs 9>, <&apcs 19>;
 
                apps_smsm: apps@0 {
                        reg = <0>;
                                drive-strength = <2>;
                                bias-disable;
                        };
+
+                       wcss_wlan_default: wcss-wlan-default-state  {
+                               wcss-wlan2-pins {
+                                       pins = "gpio40";
+                                       function = "wcss_wlan2";
+                                       drive-strength = <6>;
+                                       bias-pull-up;
+                               };
+
+                               wcss-wlan1-pins {
+                                       pins = "gpio41";
+                                       function = "wcss_wlan1";
+                                       drive-strength = <6>;
+                                       bias-pull-up;
+                               };
+
+                               wcss-wlan0-pins {
+                                       pins = "gpio42";
+                                       function = "wcss_wlan0";
+                                       drive-strength = <6>;
+                                       bias-pull-up;
+                               };
+
+                               wcss-wlan-pins {
+                                       pins = "gpio43", "gpio44";
+                                       function = "wcss_wlan";
+                                       drive-strength = <6>;
+                                       bias-pull-up;
+                               };
+                       };
                };
 
                gcc: clock-controller@1800000 {
 
                        clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
                                 <&rpmcc RPM_SMD_XO_A_CLK_SRC>,
-                                <0>,
-                                <0>,
-                                <0>,
-                                <0>;
+                                <&mdss_dsi0_phy 1>,
+                                <&mdss_dsi0_phy 0>,
+                                <&mdss_dsi1_phy 1>,
+                                <&mdss_dsi1_phy 0>;
                        clock-names = "xo",
                                      "xo_a",
                                      "dsi0pll",
                        reg = <0x01937000 0x30000>;
                };
 
+               mdss: display-subsystem@1a00000 {
+                       compatible = "qcom,mdss";
+
+                       reg = <0x01a00000 0x1000>,
+                             <0x01ab0000 0x3000>;
+                       reg-names = "mdss_phys", "vbif_phys";
+
+                       power-domains = <&gcc MDSS_GDSC>;
+                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+
+                       clocks = <&gcc GCC_MDSS_AHB_CLK>,
+                                <&gcc GCC_MDSS_AXI_CLK>,
+                                <&gcc GCC_MDSS_VSYNC_CLK>,
+                                <&gcc GCC_MDSS_MDP_CLK>;
+                       clock-names = "iface",
+                                     "bus",
+                                     "vsync",
+                                     "core";
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       status = "disabled";
+
+                       mdss_mdp: display-controller@1a01000 {
+                               compatible = "qcom,msm8976-mdp5", "qcom,mdp5";
+                               reg = <0x01a01000 0x89000>;
+                               reg-names = "mdp_phys";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <0>;
+
+                               clocks = <&gcc GCC_MDSS_AHB_CLK>,
+                                        <&gcc GCC_MDSS_AXI_CLK>,
+                                        <&gcc GCC_MDSS_MDP_CLK>,
+                                        <&gcc GCC_MDSS_VSYNC_CLK>,
+                                        <&gcc GCC_MDP_TBU_CLK>,
+                                        <&gcc GCC_MDP_RT_TBU_CLK>;
+                               clock-names = "iface",
+                                             "bus",
+                                             "core",
+                                             "vsync",
+                                             "tbu",
+                                             "tbu_rt";
+
+                               operating-points-v2 = <&mdp_opp_table>;
+                               power-domains = <&gcc MDSS_GDSC>;
+
+                               iommus = <&apps_iommu 22>;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               mdss_mdp5_intf1_out: endpoint {
+                                                       remote-endpoint = <&mdss_dsi0_in>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mdss_mdp5_intf2_out: endpoint {
+                                                       remote-endpoint = <&mdss_dsi1_in>;
+                                               };
+                                       };
+                               };
+
+                               mdp_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-177780000 {
+                                               opp-hz = /bits/ 64 <177780000>;
+                                               required-opps = <&rpmpd_opp_svs>;
+                                       };
+
+                                       opp-270000000 {
+                                               opp-hz = /bits/ 64 <270000000>;
+                                               required-opps = <&rpmpd_opp_svs_plus>;
+                                       };
+
+                                       opp-320000000 {
+                                               opp-hz = /bits/ 64 <320000000>;
+                                               required-opps = <&rpmpd_opp_nom>;
+                                       };
+
+                                       opp-360000000 {
+                                               opp-hz = /bits/ 64 <360000000>;
+                                               required-opps = <&rpmpd_opp_turbo>;
+                                       };
+                               };
+                       };
+
+                       mdss_dsi0: dsi@1a94000 {
+                               compatible = "qcom,msm8976-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+                               reg = <0x01a94000 0x300>;
+                               reg-names = "dsi_ctrl";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <4>;
+
+                               clocks = <&gcc GCC_MDSS_MDP_CLK>,
+                                        <&gcc GCC_MDSS_AHB_CLK>,
+                                        <&gcc GCC_MDSS_AXI_CLK>,
+                                        <&gcc GCC_MDSS_BYTE0_CLK>,
+                                        <&gcc GCC_MDSS_PCLK0_CLK>,
+                                        <&gcc GCC_MDSS_ESC0_CLK>;
+                               clock-names = "mdp_core",
+                                             "iface",
+                                             "bus",
+                                             "byte",
+                                             "pixel",
+                                             "core";
+
+                               assigned-clocks = <&gcc GCC_MDSS_BYTE0_CLK_SRC>,
+                                                 <&gcc GCC_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 = <&gcc MDSS_GDSC>;
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               mdss_dsi0_in: endpoint {
+                                                       remote-endpoint = <&mdss_mdp5_intf1_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mdss_dsi0_out: endpoint {
+                                               };
+                                       };
+                               };
+
+                               dsi0_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-125000000 {
+                                               opp-hz = /bits/ 64 <125000000>;
+                                               required-opps = <&rpmpd_opp_svs>;
+                                       };
+
+                                       opp-161250000 {
+                                               opp-hz = /bits/ 64 <161250000>;
+                                               required-opps = <&rpmpd_opp_svs_plus>;
+                                       };
+
+                                       opp-187500000 {
+                                               opp-hz = /bits/ 64 <187500000>;
+                                               required-opps = <&rpmpd_opp_nom>;
+                                       };
+                               };
+                       };
+
+                       mdss_dsi1: dsi@1a96000 {
+                               compatible = "qcom,msm8976-dsi-ctrl", "qcom,mdss-dsi-ctrl";
+                               reg = <0x01a96000 0x300>;
+                               reg-names = "dsi_ctrl";
+
+                               interrupt-parent = <&mdss>;
+                               interrupts = <5>;
+
+                               clocks = <&gcc GCC_MDSS_MDP_CLK>,
+                                        <&gcc GCC_MDSS_AHB_CLK>,
+                                        <&gcc GCC_MDSS_AXI_CLK>,
+                                        <&gcc GCC_MDSS_BYTE1_CLK>,
+                                        <&gcc GCC_MDSS_PCLK1_CLK>,
+                                        <&gcc GCC_MDSS_ESC1_CLK>;
+                               clock-names = "mdp_core",
+                                             "iface",
+                                             "bus",
+                                             "byte",
+                                             "pixel",
+                                             "core";
+
+                               assigned-clocks = <&gcc GCC_MDSS_BYTE1_CLK_SRC>,
+                                                 <&gcc GCC_MDSS_PCLK1_CLK_SRC>;
+                               assigned-clock-parents = <&mdss_dsi1_phy 0>,
+                                                        <&mdss_dsi1_phy 1>;
+
+                               phys = <&mdss_dsi1_phy>;
+
+                               operating-points-v2 = <&dsi0_opp_table>;
+                               power-domains = <&gcc MDSS_GDSC>;
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               mdss_dsi1_in: endpoint {
+                                                       remote-endpoint = <&mdss_mdp5_intf2_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mdss_dsi1_out: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+
+                       mdss_dsi0_phy: phy@1a94a00 {
+                               compatible = "qcom,dsi-phy-28nm-hpm-fam-b";
+                               reg = <0x01a94a00 0xd4>,
+                                     <0x01a94400 0x280>,
+                                     <0x01a94b80 0x30>;
+                               reg-names = "dsi_pll",
+                                           "dsi_phy",
+                                           "dsi_phy_regulator";
+
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+
+                               clocks = <&gcc GCC_MDSS_AHB_CLK>,
+                                        <&rpmcc RPM_SMD_XO_CLK_SRC>;
+                               clock-names = "iface", "ref";
+
+                               status = "disabled";
+                       };
+
+                       mdss_dsi1_phy: phy@1a96a00 {
+                               compatible = "qcom,dsi-phy-28nm-hpm-fam-b";
+                               reg = <0x01a96a00 0xd4>,
+                                     <0x01a96400 0x280>,
+                                     <0x01a96b80 0x30>;
+                               reg-names = "dsi_pll",
+                                           "dsi_phy",
+                                           "dsi_phy_regulator";
+
+                               #clock-cells = <1>;
+                               #phy-cells = <0>;
+
+                               clocks = <&gcc GCC_MDSS_AHB_CLK>,
+                                        <&rpmcc RPM_SMD_XO_CLK_SRC>;
+                               clock-names = "iface", "ref";
+
+                               status = "disabled";
+                       };
+               };
+
+               adreno_gpu: gpu@1c00000 {
+                       compatible = "qcom,adreno-510.0", "qcom,adreno";
+
+                       reg = <0x01c00000 0x40000>;
+                       reg-names = "kgsl_3d0_reg_memory";
+
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "kgsl_3d0_irq";
+
+                       clocks = <&gcc GCC_GFX3D_OXILI_CLK>,
+                                <&gcc GCC_GFX3D_OXILI_AHB_CLK>,
+                                <&gcc GCC_GFX3D_OXILI_GMEM_CLK>,
+                                <&gcc GCC_GFX3D_BIMC_CLK>,
+                                <&gcc GCC_GFX3D_OXILI_TIMER_CLK>,
+                                <&gcc GCC_GFX3D_OXILI_AON_CLK>;
+                       clock-names = "core",
+                                     "iface",
+                                     "mem",
+                                     "mem_iface",
+                                     "rbbmtimer",
+                                     "alwayson";
+
+                       power-domains = <&gcc OXILI_GX_GDSC>;
+
+                       iommus = <&gpu_iommu 0>;
+
+                       operating-points-v2 = <&gpu_opp_table>;
+
+                       status = "disabled";
+
+                       gpu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-200000000 {
+                                       opp-hz = /bits/ 64 <200000000>;
+                                       required-opps = <&rpmpd_opp_low_svs>;
+                                       opp-supported-hw = <0xff>;
+                               };
+
+                               opp-300000000 {
+                                       opp-hz = /bits/ 64 <300000000>;
+                                       required-opps = <&rpmpd_opp_svs>;
+                                       opp-supported-hw = <0xff>;
+                               };
+
+                               opp-400000000 {
+                                       opp-hz = /bits/ 64 <400000000>;
+                                       required-opps = <&rpmpd_opp_nom>;
+                                       opp-supported-hw = <0xff>;
+                               };
+
+                               opp-480000000 {
+                                       opp-hz = /bits/ 64 <480000000>;
+                                       required-opps = <&rpmpd_opp_nom_plus>;
+                                       opp-supported-hw = <0xff>;
+                               };
+
+                               opp-540000000 {
+                                       opp-hz = /bits/ 64 <540000000>;
+                                       required-opps = <&rpmpd_opp_turbo>;
+                                       opp-supported-hw = <0xff>;
+                               };
+
+                               opp-600000000 {
+                                       opp-hz = /bits/ 64 <600000000>;
+                                       required-opps = <&rpmpd_opp_turbo>;
+                                       opp-supported-hw = <0xff>;
+                               };
+                       };
+               };
+
+               apps_iommu: iommu@1ee0000 {
+                       compatible = "qcom,msm8976-iommu", "qcom,msm-iommu-v2";
+                       reg = <0x01ee0000 0x3000>;
+                       ranges  = <0 0x01e20000 0x20000>;
+
+                       clocks = <&gcc GCC_SMMU_CFG_CLK>,
+                                <&gcc GCC_APSS_TCU_CLK>;
+                       clock-names = "iface", "bus";
+
+                       qcom,iommu-secure-id = <17>;
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       #iommu-cells = <1>;
+
+                       /* VFE */
+                       iommu-ctx@15000 {
+                               compatible = "qcom,msm-iommu-v2-ns";
+                               reg = <0x15000 0x1000>;
+                               qcom,ctx-asid = <20>;
+                               interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       /* VENUS NS */
+                       iommu-ctx@16000 {
+                               compatible = "qcom,msm-iommu-v2-ns";
+                               reg = <0x16000 0x1000>;
+                               qcom,ctx-asid = <21>;
+                               interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       /* MDP0 */
+                       iommu-ctx@17000 {
+                               compatible = "qcom,msm-iommu-v2-ns";
+                               reg = <0x17000 0x1000>;
+                               qcom,ctx-asid = <22>;
+                               interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               gpu_iommu: iommu@1f08000 {
+                       compatible = "qcom,msm8976-iommu", "qcom,msm-iommu-v2";
+                       ranges = <0 0x01f08000 0x8000>;
+
+                       clocks = <&gcc GCC_SMMU_CFG_CLK>,
+                                <&gcc GCC_GFX3D_TCU_CLK>;
+                       clock-names = "iface", "bus";
+
+                       power-domains = <&gcc OXILI_CX_GDSC>;
+
+                       qcom,iommu-secure-id = <18>;
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       #iommu-cells = <1>;
+
+                       /* gfx3d user */
+                       iommu-ctx@0 {
+                               compatible = "qcom,msm-iommu-v2-ns";
+                               reg = <0x0 0x1000>;
+                               qcom,ctx-asid = <0>;
+                               interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       /* gfx3d secure */
+                       iommu-ctx@1000 {
+                               compatible = "qcom,msm-iommu-v2-sec";
+                               reg = <0x1000 0x1000>;
+                               qcom,ctx-asid = <2>;
+                               interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       /* gfx3d priv */
+                       iommu-ctx@2000 {
+                               compatible = "qcom,msm-iommu-v2-sec";
+                               reg = <0x2000 0x1000>;
+                               qcom,ctx-asid = <1>;
+                               interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
                spmi_bus: spmi@200f000 {
                        compatible = "qcom,spmi-pmic-arb";
                        reg = <0x0200f000 0x1000>,
                        status = "disabled";
                };
 
+               wcnss: remoteproc@a204000 {
+                       compatible = "qcom,pronto-v3-pil", "qcom,pronto";
+                       reg = <0x0a204000 0x2000>,
+                             <0x0a202000 0x1000>,
+                             <0x0a21b000 0x3000>;
+                       reg-names = "ccu",
+                                   "dxe",
+                                   "pmu";
+
+                       memory-region = <&wcnss_fw_mem>;
+
+                       interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog",
+                                         "fatal",
+                                         "ready",
+                                         "handover",
+                                         "stop-ack";
+
+                       power-domains = <&rpmpd MSM8976_VDDCX>,
+                                       <&rpmpd MSM8976_VDDMX>;
+                       power-domain-names = "cx", "mx";
+
+                       qcom,smem-states = <&wcnss_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       pinctrl-0 = <&wcss_wlan_default>;
+                       pinctrl-names = "default";
+
+                       status = "disabled";
+
+                       wcnss_iris: iris {
+                               /* Separate chip, compatible is board-specific */
+                               clocks = <&rpmcc RPM_SMD_RF_CLK2>;
+                               clock-names = "xo";
+                       };
+
+                       smd-edge {
+                               interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
+
+                               mboxes = <&apcs 17>;
+                               qcom,smd-edge = <6>;
+                               qcom,remote-pid = <4>;
+
+                               label = "pronto";
+
+                               wcnss_ctrl: wcnss {
+                                       compatible = "qcom,wcnss";
+                                       qcom,smd-channels = "WCNSS_CTRL";
+
+                                       qcom,mmio = <&wcnss>;
+
+                                       wcnss_bt: bluetooth {
+                                               compatible = "qcom,wcnss-bt";
+                                       };
+
+                                       wcnss_wifi: wifi {
+                                               compatible = "qcom,wcnss-wlan";
+
+                                               interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
+                                                            <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
+                                               interrupt-names = "tx", "rx";
+
+                                               qcom,smem-states = <&apps_smsm 10>,
+                                                                  <&apps_smsm 9>;
+                                               qcom,smem-state-names = "tx-enable",
+                                                                       "tx-rings-empty";
+                                       };
+                               };
+                       };
+               };
+
                intc: interrupt-controller@b000000 {
                        compatible = "qcom,msm-qgic2";
                        reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
        thermal-zones {
                aoss0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 0>;
 
 
                modem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 1>;
                        trips {
 
                qdsp-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 2>;
                        trips {
 
                cam-isp-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 3>;
                        trips {
 
                cpu4-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+
                        thermal-sensors = <&tsens 4>;
 
                        trips {
 
                cpu5-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+
                        thermal-sensors = <&tsens 5>;
 
                        trips {
 
                cpu6-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+
                        thermal-sensors = <&tsens 6>;
 
                        trips {
 
                cpu7-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+
                        thermal-sensors = <&tsens 7>;
 
                        trips {
 
                big-l2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+
                        thermal-sensors = <&tsens 8>;
 
                        trips {
 
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+
                        thermal-sensors = <&tsens 9>;
 
                        trips {
 
                gpu-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+
                        thermal-sensors = <&tsens 10>;
 
                        trips {
index 695e541832ad51fb19637253c7f6b67e58eea106..917fa246857d7e957fa86c905eac502519882e6f 100644 (file)
 
                smd-edge {
                        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
-                       qcom,ipc = <&apcs 8 0>;
+                       mboxes = <&apcs 0>;
                        qcom,smd-edge = <15>;
                        qcom,remote-pid = <6>;
 
 
                interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
 
-               qcom,ipc = <&apcs 8 10>;
+               mboxes = <&apcs 10>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <2>;
                interrupt-parent = <&intc>;
                interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
 
-               qcom,ipc = <&apcs 8 14>;
+               mboxes = <&apcs 14>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <1>;
 
        timer: timer {
                compatible = "arm,armv8-timer";
-               interrupts = <GIC_PPI 2 0xff08>,
-                            <GIC_PPI 3 0xff08>,
-                            <GIC_PPI 4 0xff08>,
-                            <GIC_PPI 1 0xff08>;
+               interrupts = <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 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
        };
 
        vph_pwr: vph-pwr-regulator {
index 5ab583be9e0a00019c1b331fda951690baf8e378..0386636a29f05c9b66417b648f4c42c9fa6e384e 100644 (file)
 
 &hsusb_phy1 {
        status = "okay";
-       extcon = <&typec>;
 
        vdda-pll-supply = <&vreg_l12a_1p8>;
        vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
index 8d2cb6f410956e84fe58eba0bc384289651c4f2a..0fd2b1b944a5e646bc2b14c90e538490bab2deff 100644 (file)
                                 <&mmcc MDSS_MDP_CLK>;
                        clock-names = "iface", "core";
 
+                       resets = <&mmcc MDSS_BCR>;
+
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
                        power-domains = <&gcc UFS_GDSC>;
 
                        clock-names =
-                               "core_clk_src",
                                "core_clk",
                                "bus_clk",
                                "bus_aggr_clk",
                                "iface_clk",
-                               "core_clk_unipro_src",
                                "core_clk_unipro",
                                "core_clk_ice",
                                "ref_clk",
                                "tx_lane0_sync_clk",
                                "rx_lane0_sync_clk";
                        clocks =
-                               <&gcc UFS_AXI_CLK_SRC>,
                                <&gcc GCC_UFS_AXI_CLK>,
                                <&gcc GCC_SYS_NOC_UFS_AXI_CLK>,
                                <&gcc GCC_AGGRE2_UFS_AXI_CLK>,
                                <&gcc GCC_UFS_AHB_CLK>,
-                               <&gcc UFS_ICE_CORE_CLK_SRC>,
                                <&gcc GCC_UFS_UNIPRO_CORE_CLK>,
                                <&gcc GCC_UFS_ICE_CORE_CLK>,
                                <&rpmcc RPM_SMD_LN_BB_CLK>,
                                <0 0>,
                                <0 0>,
                                <0 0>,
-                               <0 0>,
-                               <150000000 300000000>,
                                <75000000 150000000>,
-                               <0>,
+                               <150000000 300000000>,
                                <0 0>,
                                <0 0>,
                                <0 0>;
 
                        status = "disabled";
 
+                       glink-edge {
+                               interrupts = <GIC_SPI 179 IRQ_TYPE_EDGE_RISING>;
+                               label = "dsps";
+                               qcom,remote-pid = <3>;
+                               mboxes = <&apcs_glb 27>;
+                       };
+
                        smd-edge {
                                interrupts = <GIC_SPI 176 IRQ_TYPE_EDGE_RISING>;
 
                                memory-region = <&mdata_mem>;
                        };
 
+                       glink-edge {
+                               interrupts = <GIC_SPI 452 IRQ_TYPE_EDGE_RISING>;
+                               label = "modem";
+                               qcom,remote-pid = <1>;
+                               mboxes = <&apcs_glb 15>;
+                       };
+
                        smd-edge {
                                interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
 
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
                                snps,is-utmi-l1-suspend;
+                               snps,parkmode-disable-ss-quirk;
                                tx-fifo-resize;
                        };
                };
 
                        status = "disabled";
 
+                       glink-edge {
+                               interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>;
+                               label = "lpass";
+                               qcom,remote-pid = <2>;
+                               mboxes = <&apcs_glb 9>;
+                       };
+
+
                        smd-edge {
                                interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
 
                                                };
                                        };
                                };
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,smd-channels = "fastrpcsmd-apps-dsp";
+                                       label = "adsp";
+                                       qcom,non-secure-domain;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&lpass_q6_smmu 5>;
+                                       };
+
+                                       cb@6 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <6>;
+                                               iommus = <&lpass_q6_smmu 6>;
+                                       };
+
+                                       cb@7 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <7>;
+                                               iommus = <&lpass_q6_smmu 7>;
+                                       };
+
+                                       cb@8 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <8>;
+                                               iommus = <&lpass_q6_smmu 8>;
+                                       };
+
+                                       cb@9 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <9>;
+                                               iommus = <&lpass_q6_smmu 9>;
+                                       };
+
+                                       cb@10 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <10>;
+                                               iommus = <&lpass_q6_smmu 10>;
+                                       };
+
+                                       cb@11 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <11>;
+                                               iommus = <&lpass_q6_smmu 11>;
+                                       };
+
+                                       cb@12 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <12>;
+                                               iommus = <&lpass_q6_smmu 12>;
+                                       };
+                               };
                        };
                };
 
        thermal-zones {
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 3>;
 
 
                cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 5>;
 
 
                cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 8>;
 
 
                cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 10>;
 
 
                gpu-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 6>;
 
 
                gpu-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 7>;
 
 
                m4m-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 1>;
 
 
                l3-or-venus-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 2>;
 
 
                cluster0-l2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 7>;
 
 
                cluster1-l2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 12>;
 
 
                camera-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 1>;
 
 
                q6-dsp-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 2>;
 
 
                mem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 3>;
 
 
                modemtx-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 4>;
 
index d795b2bbe13308610a080a783def4d9955cc8d63..7f44807b1b974506f2ec7b223555da56529c9f60 100644 (file)
        thermal-zones {
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 1>;
 
 
                cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 2>;
 
 
                cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 3>;
 
 
                cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 4>;
 
 
                cpu4-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 7>;
 
 
                cpu5-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 8>;
 
 
                cpu6-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 9>;
 
 
                cpu7-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 10>;
 
 
                gpu-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 12>;
 
 
                gpu-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 13>;
 
 
                clust0-mhm-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 5>;
 
 
                clust1-mhm-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 6>;
 
 
                cluster1-l2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 11>;
 
 
                modem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 1>;
 
 
                mem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 2>;
 
 
                wlan-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 3>;
 
 
                q6-dsp-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 4>;
 
 
                camera-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 5>;
 
 
                multimedia-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 6>;
 
                         * SoC VDDMX RPM Power Domain in the Adreno driver.
                         */
                        power-domains = <&gpucc GPU_GX_GDSC>;
-                       status = "disabled";
                };
 
                gpucc: clock-controller@5065000 {
                                interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
+                               snps,parkmode-disable-ss-quirk;
                                phys = <&qusb2phy>, <&usb3phy>;
                                phy-names = "usb2-phy", "usb3-phy";
                                snps,has-lpm-erratum;
                        };
                };
 
+               venus: video-codec@cc00000 {
+                       compatible = "qcom,msm8998-venus";
+                       reg = <0x0cc00000 0xff000>;
+                       interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
+                       power-domains = <&mmcc VIDEO_TOP_GDSC>;
+                       clocks = <&mmcc VIDEO_CORE_CLK>,
+                                <&mmcc VIDEO_AHB_CLK>,
+                                <&mmcc VIDEO_AXI_CLK>,
+                                <&mmcc VIDEO_MAXI_CLK>;
+                       clock-names = "core", "iface", "bus", "mbus";
+                       iommus = <&mmss_smmu 0x400>,
+                                <&mmss_smmu 0x401>,
+                                <&mmss_smmu 0x40a>,
+                                <&mmss_smmu 0x407>,
+                                <&mmss_smmu 0x40e>,
+                                <&mmss_smmu 0x40f>,
+                                <&mmss_smmu 0x408>,
+                                <&mmss_smmu 0x409>,
+                                <&mmss_smmu 0x40b>,
+                                <&mmss_smmu 0x40c>,
+                                <&mmss_smmu 0x40d>,
+                                <&mmss_smmu 0x410>,
+                                <&mmss_smmu 0x421>,
+                                <&mmss_smmu 0x428>,
+                                <&mmss_smmu 0x429>,
+                                <&mmss_smmu 0x42b>,
+                                <&mmss_smmu 0x42c>,
+                                <&mmss_smmu 0x42d>,
+                                <&mmss_smmu 0x411>,
+                                <&mmss_smmu 0x431>;
+                       memory-region = <&venus_mem>;
+                       status = "disabled";
+
+                       video-decoder {
+                               compatible = "venus-decoder";
+                               clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
+                               clock-names = "core";
+                               power-domains = <&mmcc VIDEO_SUBCORE0_GDSC>;
+                       };
+
+                       video-encoder {
+                               compatible = "venus-encoder";
+                               clocks = <&mmcc VIDEO_SUBCORE1_CLK>;
+                               clock-names = "core";
+                               power-domains = <&mmcc VIDEO_SUBCORE1_GDSC>;
+                       };
+               };
+
                mmss_smmu: iommu@cd00000 {
                        compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
                        reg = <0x0cd00000 0x40000>;
                        iommus = <&anoc2_smmu 0x1900>,
                                 <&anoc2_smmu 0x1901>;
                        qcom,snoc-host-cap-8bit-quirk;
+                       qcom,no-msa-ready-indicator;
                };
        };
 };
index 99369a0cdb6163ce827258f2ef2deeb2c888daff..d0db28336fa9bb976abd831ed92adece4317149f 100644 (file)
@@ -10,7 +10,6 @@
        thermal-zones {
                pm6125-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm6125_temp>;
 
index 6de6ed562d97ce4174c54b2da8dfef7f96a00db1..59524609fb1e8e5d1f993cdf79319872f9b0d746 100644 (file)
@@ -13,7 +13,7 @@
        thermal-zones {
                pm6150_thermal: pm6150-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pm6150_temp>;
 
                        trips {
                reg = <0x1 SPMI_USID>;
                #address-cells = <1>;
                #size-cells = <0>;
+
+               pm6150_vib: vibrator@5300 {
+                       compatible = "qcom,pm6150-vib", "qcom,pmi632-vib";
+                       reg = <0x5300>;
+                       status = "disabled";
+               };
        };
 };
index 0fce45276e5c23eca77de90c49e7a07e2a7ec620..334f976f115431368f4f508ad699cd527cf2bc25 100644 (file)
@@ -10,9 +10,6 @@
 / {
        thermal-zones {
                pm6150l-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&pm6150l_temp>;
 
                        trips {
index 3a2a841e83f19dd5ccb4e200d3b73931c2e5c436..a20ee245710166659aa5bd9421f7da243eee4e9d 100644 (file)
@@ -10,7 +10,6 @@
        thermal-zones {
                pm6350-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm6350_temp>;
 
index 98dc04962fe3401d6ba9cbc384854c8ea88bbd63..156b2ddff0dcb5658efb3ee0f6caacfdb3711b60 100644 (file)
@@ -13,7 +13,6 @@
        thermal-zones {
                pm660-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&pm660_temp>;
 
                        };
                };
 
+               pm660_charger: charger@1000 {
+                       compatible = "qcom,pm660-charger";
+                       reg = <0x1000>;
+
+                       interrupts = <0x0 0x13 0x4 IRQ_TYPE_EDGE_BOTH>,
+                                    <0x0 0x12 0x2 IRQ_TYPE_EDGE_BOTH>,
+                                    <0x0 0x16 0x1 IRQ_TYPE_EDGE_RISING>,
+                                    <0x0 0x13 0x6 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "usb-plugin", "bat-ov", "wdog-bark", "usbin-icl-change";
+
+                       io-channels = <&pm660_rradc 3>,
+                                     <&pm660_rradc 4>;
+                       io-channel-names = "usbin_i", "usbin_v";
+
+                       status = "disabled";
+               };
+
                pm660_temp: temp-alarm@2400 {
                        compatible = "qcom,spmi-temp-alarm";
                        reg = <0x2400>;
                        };
                };
 
+               pm660_rradc: adc@4500 {
+                       compatible = "qcom,pm660-rradc";
+                       reg = <0x4500>;
+                       #io-channel-cells = <1>;
+
+                       status = "disabled";
+               };
+
                pm660_gpios: gpio@c000 {
                        compatible = "qcom,pm660-gpio", "qcom,spmi-gpio";
                        reg = <0xc000>;
index 6fdbf507c262a098d2996d69402d72d4eca6adae..0094e0ef058bf39c5da6579138becc0f947a4583 100644 (file)
@@ -13,7 +13,6 @@
        thermal-zones {
                pm660l-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&pm660l_temp>;
 
index 3bf7cf5d17008253f466c2ba87abc3b49751ce4a..0761e6b5fd8d18fc48acd86f9b880e0939ce41d8 100644 (file)
@@ -11,7 +11,6 @@
        thermal-zones {
                pm7250b-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm7250b_temp>;
 
                #address-cells = <1>;
                #size-cells = <0>;
 
+               pm7250b_vbus: usb-vbus-regulator@1100 {
+                       compatible = "qcom,pm7250b-vbus-reg", "qcom,pm8150b-vbus-reg";
+                       reg = <0x1100>;
+                       status = "disabled";
+               };
+
+               pm7250b_typec: typec@1500 {
+                       compatible = "qcom,pm7250b-typec", "qcom,pm8150b-typec";
+                       reg = <0x1500>,
+                             <0x1700>;
+                       interrupts = <PM7250B_SID 0x15 0x00 IRQ_TYPE_EDGE_RISING>,
+                                    <PM7250B_SID 0x15 0x01 IRQ_TYPE_EDGE_BOTH>,
+                                    <PM7250B_SID 0x15 0x02 IRQ_TYPE_EDGE_RISING>,
+                                    <PM7250B_SID 0x15 0x03 IRQ_TYPE_EDGE_BOTH>,
+                                    <PM7250B_SID 0x15 0x04 IRQ_TYPE_EDGE_RISING>,
+                                    <PM7250B_SID 0x15 0x05 IRQ_TYPE_EDGE_RISING>,
+                                    <PM7250B_SID 0x15 0x06 IRQ_TYPE_EDGE_BOTH>,
+                                    <PM7250B_SID 0x15 0x07 IRQ_TYPE_EDGE_RISING>,
+                                    <PM7250B_SID 0x17 0x00 IRQ_TYPE_EDGE_RISING>,
+                                    <PM7250B_SID 0x17 0x01 IRQ_TYPE_EDGE_RISING>,
+                                    <PM7250B_SID 0x17 0x02 IRQ_TYPE_EDGE_RISING>,
+                                    <PM7250B_SID 0x17 0x03 IRQ_TYPE_EDGE_RISING>,
+                                    <PM7250B_SID 0x17 0x04 IRQ_TYPE_EDGE_RISING>,
+                                    <PM7250B_SID 0x17 0x05 IRQ_TYPE_EDGE_RISING>,
+                                    <PM7250B_SID 0x17 0x06 IRQ_TYPE_EDGE_RISING>,
+                                    <PM7250B_SID 0x17 0x07 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "or-rid-detect-change",
+                                         "vpd-detect",
+                                         "cc-state-change",
+                                         "vconn-oc",
+                                         "vbus-change",
+                                         "attach-detach",
+                                         "legacy-cable-detect",
+                                         "try-snk-src-detect",
+                                         "sig-tx",
+                                         "sig-rx",
+                                         "msg-tx",
+                                         "msg-rx",
+                                         "msg-tx-failed",
+                                         "msg-tx-discarded",
+                                         "msg-rx-discarded",
+                                         "fr-swap";
+                       vdd-vbus-supply = <&pm7250b_vbus>;
+                       status = "disabled";
+               };
+
                pm7250b_temp: temp-alarm@2400 {
                        compatible = "qcom,spmi-temp-alarm";
                        reg = <0x2400>;
index d1c5476af5eec754d626a79d908779dc0f309b2f..6e29468505b2ac30e725ad7fb0a7eedc7b91f22b 100644 (file)
@@ -35,7 +35,7 @@
 &thermal_zones {
        pm7325_thermal: pm7325-thermal {
                polling-delay-passive = <100>;
-               polling-delay = <0>;
+
                thermal-sensors = <&pm7325_temp_alarm>;
 
                trips {
index 8b00ece987d1d4f09f06742f26a0f0d9b7eb7845..853a1d83a7f0fd832f23bad7f3b4c67c74c30835 100644 (file)
@@ -10,7 +10,6 @@
        thermal-zones {
                pm7550ba-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm7550ba_temp_alarm>;
 
index 0ea641e122099f5b1910caf1b611c29588373bae..ef330194946b6aad82eb017a6f51722679dd62ed 100644 (file)
@@ -10,7 +10,6 @@
        thermal-zones {
                pm8010-m-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm8010_m_temp_alarm>;
 
@@ -31,7 +30,6 @@
 
                pm8010-n-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm8010_n_temp_alarm>;
 
index 3ba3ba5d8fceb26574a0dcf00bb572b1b362edde..a74a7ff660d2b1be0df0dc26d79e1921a3935f14 100644 (file)
@@ -13,7 +13,6 @@
        thermal-zones {
                pm8150-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm8150_temp>;
 
index 1aee3270ce7b9bfcbba6b81f26c9a0045c35210b..3f7b0b6a1d109b793b1502f350936adad1af906e 100644 (file)
@@ -12,7 +12,6 @@
        thermal-zones {
                pm8150b-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm8150b_temp>;
 
index ac08a09c64c28c2675b5d327469bfb2f0a4030e6..3911d6d0d2e28ec9e22486dc9e5b9ab76452de4c 100644 (file)
@@ -12,7 +12,6 @@
        thermal-zones {
                pm8150l-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm8150l_temp>;
 
index 9ed9ba23e81e46d9764fdbfd500ace9a6bb330a9..cb55b23688d67f78976e91b8a9f7e9a19243d167 100644 (file)
@@ -10,7 +10,7 @@
        thermal-zones {
                pm8350_thermal: pm8350-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pm8350_temp_alarm>;
 
                        trips {
index 05c1058988927815bba8e312a37930856a031a1d..cf82f8a64a9b96087389f9f903de2511871492f1 100644 (file)
@@ -10,7 +10,7 @@
        thermal-zones {
                pm8350b_thermal: pm8350b-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pm8350b_temp_alarm>;
 
                        trips {
index aa74e21fe0dcd5d94443de1791686a67986a6825..1a24e6439e36da2f2e9cd5280e06cb7d4059f2f5 100644 (file)
@@ -48,7 +48,7 @@
        thermal-zones {
                pm8350c_thermal: pm8350c-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pm8350c_temp_alarm>;
 
                        trips {
index ae5bce3cf46e682a0d16005adc2e4785fa6d54ed..decb8809fd36936a5d8f25c909b7b1e635ad26c7 100644 (file)
@@ -10,7 +10,6 @@
        thermal-zones {
                pm8450-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm8450_temp_alarm>;
 
index 797a18c249a4a4b533c40e6b43736d4a7ded5bda..896bcacb6490257bf7b67715475c07dcce94c3c2 100644 (file)
@@ -10,7 +10,6 @@
        thermal-zones {
                pm8550-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm8550_temp_alarm>;
 
index 72609f31c890968fd865075777fcb2a6dbebcc3d..74d23b8970f4c107b6ef290619e81b10c7ff0579 100644 (file)
@@ -10,7 +10,6 @@
        thermal-zones {
                pm8550b-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm8550b_temp_alarm>;
 
index 4dc1f03ab2c7461e626bf9c44bb80490ca09b5ba..9d4734eabf5ae49245b6c8476a60a31ab642f10e 100644 (file)
@@ -10,7 +10,6 @@
        thermal-zones {
                pm8550ve-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm8550ve_temp_alarm>;
 
index 97b1c18aa7d89b698db8262da380512e427e07f2..6426b431616bde2d960780be2bed4c623af246c2 100644 (file)
@@ -10,7 +10,6 @@
        thermal-zones {
                pm8550vs-c-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm8550vs_c_temp_alarm>;
 
@@ -31,7 +30,6 @@
 
                pm8550vs-d-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm8550vs_d_temp_alarm>;
 
@@ -52,7 +50,6 @@
 
                pm8550vs-e-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm8550vs_e_temp_alarm>;
 
@@ -73,7 +70,6 @@
 
                pm8550vs-g-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm8550vs_g_temp_alarm>;
 
index 4b2e8fb47d2da13cd1a80bae044f38cc410a2feb..f8e4829ff7f7de1f1f4f5da0f41020875d6c7e17 100644 (file)
@@ -4,8 +4,37 @@
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/spmi/spmi.h>
 
-&spmi_bus {
+/ {
+       thermal-zones {
+               pm8916-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pm8916_temp>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <105000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+
+                               trip2 {
+                                       temperature = <145000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+};
 
+&spmi_bus {
        pm8916_0: pmic@0 {
                compatible = "qcom,pm8916", "qcom,spmi-pmic";
                reg = <0x0 SPMI_USID>;
index 1067e141be6c470bb25feebff435c68e3a145d83..64258505f9babb9c3a8fb193e26552c2394ea76c 100644 (file)
@@ -9,9 +9,6 @@
 / {
        thermal-zones {
                pm8953-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&pm8953_temp>;
 
                        trips {
index d44a95caf04aec80e79b2bdb8ed314005441176d..353e4a6bd088e20dd10ac1255a095e4c00407a96 100644 (file)
@@ -8,7 +8,6 @@
        thermal-zones {
                pm8994-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&pm8994_temp>;
 
index 3f82715392c6b8cc146ef9368e2080185c477c16..3ecb330590e59a6640f833a0bf4d2c62f40de17d 100644 (file)
@@ -11,7 +11,6 @@
        thermal-zones {
                pm8998-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&pm8998_temp>;
 
index 94d53b1cf6c8f15267d1a02c6d1c00b9c3d27d84..8c899d148e461c4737c70f5d53f8568545b8b435 100644 (file)
@@ -11,7 +11,6 @@
        thermal-zones {
                pmi632-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pmi632_temp>;
 
 
                        status = "disabled";
                };
+
+               pmi632_vib: vibrator@5700 {
+                       compatible = "qcom,pmi632-vib";
+                       reg = <0x5700>;
+                       status = "disabled";
+               };
        };
 };
index 1029f3b1bb9a04241b274001bbaa6a933819907a..b4822cb17a377f2d63533d367ca14e6bdcb2634c 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
+               pmi8950_pwm: pwm@b000 {
+                       compatible = "qcom,pmi8950-pwm";
+                       reg = <0xb000 0x100>;
+                       #pwm-cells = <2>;
+
+                       status = "disabled";
+               };
+
                pmi8950_wled: leds@d800 {
                        compatible = "qcom,pmi8950-wled";
                        reg = <0xd800>, <0xd900>;
index dbd4b91dfe06c287e5d9ba6dc378d889820669ea..5084de66fc46bb4bf430e389b3ca5145f2559369 100644 (file)
@@ -12,7 +12,6 @@
        thermal-zones {
                pmm8155au-1-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pmm8155au_1_temp>;
 
index 1cee20ac2c9cb793a3ab4f966ef2d7cb2607877a..555e4a456ef1946768b916e0a4ae820aa190198f 100644 (file)
@@ -11,7 +11,6 @@
        thermal-zones {
                pmm8155au-2-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pmm8155au_2_temp>;
 
index febda50779f98d42193d3115712f73a5bd5f385a..f8efd8e5e68f206a70c515f86b61f4c0db27e59a 100644 (file)
@@ -36,7 +36,7 @@
        thermal-zones {
                pmr735a_thermal: pmr735a-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmr735a_temp_alarm>;
 
                        trips {
index f7473e24732245a9126ec5fc19b26c9afa3a582d..09affc05b397c9096bf06eb1a293fce1f8f6a757 100644 (file)
@@ -10,7 +10,7 @@
        thermal-zones {
                pmr735b_thermal: pmr735b-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmr735b_temp_alarm>;
 
                        trips {
index 37daaefe3431192f6e0163f4e71ca183f509690e..f9f1793d310e3ec34f07df4c7cff313cfcbf55b4 100644 (file)
@@ -10,7 +10,6 @@
        thermal-zones {
                pmr735d-k-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pmr735d_k_temp_alarm>;
 
index 3b470f6ac46fd5ace5a94da25571d2b2e75db89a..d91fbd3bff10403a655e160db18cb7ff7a8b9018 100644 (file)
@@ -10,7 +10,6 @@
        thermal-zones {
                pmr735d-l-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pmr735d_l_temp_alarm>;
 
index 461ad97032f78eeefe297d29b05e96f07434fc49..3f9100c7eff4bc8e75c151773b820d7c61e342e4 100644 (file)
@@ -12,7 +12,6 @@
        thermal-zones {
                pms405-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&pms405_temp>;
 
index 373e45f63dffc09c1319e149b4a909e27a210669..2e61b7849c9247a609a630d6dd549b90f0227682 100644 (file)
@@ -10,7 +10,6 @@
        thermal-zones {
                pmx75-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pmx75_temp_alarm>;
 
index 106110a9f5518d1f31b891166f85c33e18f466cf..8f3be4c75db389d78557f09b46bcfe0022e7e64e 100644 (file)
@@ -7,6 +7,7 @@
 
 #include <dt-bindings/clock/qcom,dispcc-qcm2290.h>
 #include <dt-bindings/clock/qcom,gcc-qcm2290.h>
+#include <dt-bindings/clock/qcom,qcm2290-gpucc.h>
 #include <dt-bindings/clock/qcom,rpmcc.h>
 #include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/firmware/qcom,scm.h>
                                reg = <0x25b 0x1>;
                                bits = <1 4>;
                        };
+
+                       gpu_speed_bin: gpu-speed-bin@2006 {
+                               reg = <0x2006 0x2>;
+                               bits = <5 8>;
+                       };
                };
 
                pmu@1b8e300 {
                        };
                };
 
+               gpu: gpu@5900000 {
+                       compatible = "qcom,adreno-07000200", "qcom,adreno";
+                       reg = <0x0 0x05900000 0x0 0x40000>;
+                       reg-names = "kgsl_3d0_reg_memory";
+
+                       interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gpucc GPU_CC_GX_GFX3D_CLK>,
+                                <&gpucc GPU_CC_AHB_CLK>,
+                                <&gcc GCC_BIMC_GPU_AXI_CLK>,
+                                <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+                                <&gpucc GPU_CC_CX_GMU_CLK>,
+                                <&gpucc GPU_CC_CXO_CLK>;
+                       clock-names = "core",
+                                     "iface",
+                                     "mem_iface",
+                                     "alt_mem_iface",
+                                     "gmu",
+                                     "xo";
+
+                       interconnects = <&bimc MASTER_GFX3D RPM_ALWAYS_TAG
+                                        &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
+                       interconnect-names = "gfx-mem";
+
+                       iommus = <&adreno_smmu 0 1>,
+                                <&adreno_smmu 2 0>;
+                       operating-points-v2 = <&gpu_opp_table>;
+                       power-domains = <&rpmpd QCM2290_VDDCX>;
+                       qcom,gmu = <&gmu_wrapper>;
+
+                       nvmem-cells = <&gpu_speed_bin>;
+                       nvmem-cell-names = "speed_bin";
+                       #cooling-cells = <2>;
+
+                       status = "disabled";
+
+                       zap-shader {
+                               memory-region = <&pil_gpu_mem>;
+                       };
+
+                       gpu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               /* TODO: Scale RPM_SMD_BIMC_GPU_CLK w/ turbo freqs */
+                               opp-1123200000 {
+                                       opp-hz = /bits/ 64 <1123200000>;
+                                       required-opps = <&rpmpd_opp_turbo_plus>;
+                                       opp-peak-kBps = <6881000>;
+                                       opp-supported-hw = <0x3>;
+                                       turbo-mode;
+                               };
+
+                               opp-1017600000 {
+                                       opp-hz = /bits/ 64 <1017600000>;
+                                       required-opps = <&rpmpd_opp_turbo>;
+                                       opp-peak-kBps = <6881000>;
+                                       opp-supported-hw = <0x3>;
+                                       turbo-mode;
+                               };
+
+                               opp-921600000 {
+                                       opp-hz = /bits/ 64 <921600000>;
+                                       required-opps = <&rpmpd_opp_nom_plus>;
+                                       opp-peak-kBps = <6881000>;
+                                       opp-supported-hw = <0x3>;
+                               };
+
+                               opp-844800000 {
+                                       opp-hz = /bits/ 64 <844800000>;
+                                       required-opps = <&rpmpd_opp_nom>;
+                                       opp-peak-kBps = <6881000>;
+                                       opp-supported-hw = <0x7>;
+                               };
+
+                               opp-672000000 {
+                                       opp-hz = /bits/ 64 <672000000>;
+                                       required-opps = <&rpmpd_opp_svs_plus>;
+                                       opp-peak-kBps = <3879000>;
+                                       opp-supported-hw = <0xf>;
+                               };
+
+                               opp-537600000 {
+                                       opp-hz = /bits/ 64 <537600000>;
+                                       required-opps = <&rpmpd_opp_svs>;
+                                       opp-peak-kBps = <2929000>;
+                                       opp-supported-hw = <0xf>;
+                               };
+
+                               opp-355200000 {
+                                       opp-hz = /bits/ 64 <355200000>;
+                                       required-opps = <&rpmpd_opp_low_svs>;
+                                       opp-peak-kBps = <1720000>;
+                                       opp-supported-hw = <0xf>;
+                               };
+                       };
+               };
+
+               gmu_wrapper: gmu@596a000 {
+                       compatible = "qcom,adreno-gmu-wrapper";
+                       reg = <0x0 0x0596a000 0x0 0x30000>;
+                       reg-names = "gmu";
+                       power-domains = <&gpucc GPU_CX_GDSC>,
+                                       <&gpucc GPU_GX_GDSC>;
+                       power-domain-names = "cx",
+                                            "gx";
+               };
+
+               gpucc: clock-controller@5990000 {
+                       compatible = "qcom,qcm2290-gpucc";
+                       reg = <0x0 0x05990000 0x0 0x9000>;
+                       clocks = <&gcc GCC_GPU_CFG_AHB_CLK>,
+                                <&rpmcc RPM_SMD_XO_CLK_SRC>,
+                                <&gcc GCC_GPU_GPLL0_CLK_SRC>,
+                                <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
+                       power-domains = <&rpmpd QCM2290_VDDCX>;
+                       required-opps = <&rpmpd_opp_low_svs>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               adreno_smmu: iommu@59a0000 {
+                       compatible = "qcom,qcm2290-smmu-500", "qcom,adreno-smmu",
+                                    "qcom,smmu-500", "arm,mmu-500";
+                       reg = <0x0 0x059a0000 0x0 0x10000>;
+                       interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+
+                       clocks = <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+                                <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>,
+                                <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>;
+                       clock-names = "mem",
+                                     "hlos",
+                                     "iface";
+
+                       power-domains = <&gpucc GPU_CX_GDSC>;
+
+                       #global-interrupts = <1>;
+                       #iommu-cells = <2>;
+               };
+
                mdss: display-subsystem@5e00000 {
                        compatible = "qcom,qcm2290-mdss";
                        reg = <0x0 0x05e00000 0x0 0x1000>;
 
        thermal-zones {
                mapss-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 0>;
 
                        trips {
                };
 
                video-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 1>;
 
                        trips {
                };
 
                wlan-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 2>;
 
                        trips {
                };
 
                cpuss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 3>;
 
                        trips {
                };
 
                cpuss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 4>;
 
                        trips {
                };
 
                mdm0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 5>;
 
                        trips {
                };
 
                mdm1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 6>;
 
                        trips {
                };
 
                gpu-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 7>;
 
                        trips {
                };
 
                hm-center-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 8>;
 
                        trips {
                };
 
                camera-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 9>;
 
                        trips {
index f3432701945f7f35713e05945a6b116ea85ceef6..8ab30c01712e0b7c0cc1b403e0fe01650315b9e2 100644 (file)
        thermal-zones {
                camera-thermal {
                        polling-delay-passive = <0>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmk8350_adc_tm 2>;
 
                        trips {
 
                chg-skin-thermal {
                        polling-delay-passive = <0>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pm7250b_adc_tm 0>;
 
                        trips {
 
                conn-thermal {
                        polling-delay-passive = <0>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pm7250b_adc_tm 1>;
 
                        trips {
                        };
                };
 
+               pm8008-thermal {
+                       polling-delay-passive = <100>;
+                       thermal-sensors = <&pm8008>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
                quiet-thermal {
                        polling-delay-passive = <0>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmk8350_adc_tm 1>;
 
                        trips {
 
                rear-cam-thermal {
                        polling-delay-passive = <0>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmk8350_adc_tm 4>;
 
                        trips {
 
                sdm-skin-thermal {
                        polling-delay-passive = <0>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmk8350_adc_tm 3>;
 
                        trips {
 
                xo-thermal {
                        polling-delay-passive = <0>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmk8350_adc_tm 0>;
 
                        trips {
                qcom,pmic-id = "b";
 
                vreg_s1b: smps1 {
+                       regulator-name = "vreg_s1b";
                        regulator-min-microvolt = <1840000>;
                        regulator-max-microvolt = <2040000>;
                };
 
                vreg_s7b: smps7 {
+                       regulator-name = "vreg_s7b";
                        regulator-min-microvolt = <535000>;
                        regulator-max-microvolt = <1120000>;
                };
 
                vreg_s8b: smps8 {
+                       regulator-name = "vreg_s8b";
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1500000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
                };
 
                vreg_l1b: ldo1 {
+                       regulator-name = "vreg_l1b";
                        regulator-min-microvolt = <825000>;
                        regulator-max-microvolt = <925000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l2b: ldo2 {
+                       regulator-name = "vreg_l2b";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l3b: ldo3 {
+                       regulator-name = "vreg_l3b";
                        regulator-min-microvolt = <312000>;
                        regulator-max-microvolt = <910000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l6b: ldo6 {
+                       regulator-name = "vreg_l6b";
                        regulator-min-microvolt = <1140000>;
                        regulator-max-microvolt = <1260000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l7b: ldo7 {
+                       regulator-name = "vreg_l7b";
                        /* Constrained for UFS VCC, at least until UFS driver scales voltage */
                        regulator-min-microvolt = <2952000>;
                        regulator-max-microvolt = <2952000>;
                };
 
                vreg_l8b: ldo8 {
+                       regulator-name = "vreg_l8b";
                        regulator-min-microvolt = <870000>;
                        regulator-max-microvolt = <970000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l9b: ldo9 {
+                       regulator-name = "vreg_l9b";
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1304000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l11b: ldo11 {
+                       regulator-name = "vreg_l11b";
                        regulator-min-microvolt = <1504000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l12b: ldo12 {
+                       regulator-name = "vreg_l12b";
                        regulator-min-microvolt = <751000>;
                        regulator-max-microvolt = <824000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l13b: ldo13 {
+                       regulator-name = "vreg_l13b";
                        regulator-min-microvolt = <530000>;
                        regulator-max-microvolt = <824000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l14b: ldo14 {
+                       regulator-name = "vreg_l14b";
                        regulator-min-microvolt = <1080000>;
                        regulator-max-microvolt = <1304000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l15b: ldo15 {
+                       regulator-name = "vreg_l15b";
                        regulator-min-microvolt = <765000>;
                        regulator-max-microvolt = <1020000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l16b: ldo16 {
+                       regulator-name = "vreg_l16b";
                        regulator-min-microvolt = <1100000>;
                        regulator-max-microvolt = <1300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l17b: ldo17 {
+                       regulator-name = "vreg_l17b";
                        regulator-min-microvolt = <1700000>;
                        regulator-max-microvolt = <1900000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l18b: ldo18 {
+                       regulator-name = "vreg_l18b";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l19b: ldo19 {
+                       regulator-name = "vreg_l19b";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                qcom,pmic-id = "c";
 
                vreg_s1c: smps1 {
+                       regulator-name = "vreg_s1c";
                        regulator-min-microvolt = <2190000>;
                        regulator-max-microvolt = <2210000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_s9c: smps9 {
+                       regulator-name = "vreg_s9c";
                        regulator-min-microvolt = <1010000>;
                        regulator-max-microvolt = <1170000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l1c: ldo1 {
+                       regulator-name = "vreg_l1c";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l2c: ldo2 {
+                       regulator-name = "vreg_l2c";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1950000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l3c: ldo3 {
+                       regulator-name = "vreg_l3c";
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3400000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l4c: ldo4 {
+                       regulator-name = "vreg_l4c";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l5c: ldo5 {
+                       regulator-name = "vreg_l5c";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l6c: ldo6 {
+                       regulator-name = "vreg_l6c";
                        regulator-min-microvolt = <1650000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l7c: ldo7 {
+                       regulator-name = "vreg_l7c";
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l8c: ldo8 {
+                       regulator-name = "vreg_l8c";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l9c: ldo9 {
+                       regulator-name = "vreg_l9c";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l10c: ldo10 {
+                       regulator-name = "vreg_l10c";
                        regulator-min-microvolt = <720000>;
                        regulator-max-microvolt = <1050000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l11c: ldo11 {
+                       regulator-name = "vreg_l11c";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l12c: ldo12 {
+                       regulator-name = "vreg_l12c";
                        regulator-min-microvolt = <1650000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l13c: ldo13 {
+                       regulator-name = "vreg_l13c";
                        regulator-min-microvolt = <2700000>;
                        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_AUTO>;
 &i2c1 {
        status = "okay";
 
-       /* PM8008 PMIC @ 8 and 9 */
+       pm8008: pmic@8 {
+               compatible = "qcom,pm8008";
+               reg = <0x8>;
+
+               interrupts-extended = <&tlmm 25 IRQ_TYPE_EDGE_RISING>;
+               reset-gpios = <&pm8350c_gpios 3 GPIO_ACTIVE_LOW>;
+
+               vdd-l1-l2-supply = <&vreg_s8b>;
+               vdd-l3-l4-supply = <&vreg_bob>;
+               vdd-l5-supply = <&vreg_bob>;
+               vdd-l6-supply = <&vreg_s1b>;
+               vdd-l7-supply = <&vreg_bob>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pm8008_int_default>, <&pm8008_reset_n_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 = <1152000>;
+                       };
+
+                       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 = <1904000>;
+                       };
+
+                       vreg_l7p: ldo7 {
+                               regulator-name = "vreg_l7p";
+                               regulator-min-microvolt = <2700000>;
+                               regulator-max-microvolt = <3000000>;
+                       };
+               };
+       };
+
        /* Pixelworks @ 26 */
        /* FSA4480 USB audio switch @ 42 */
        /* AW86927FCR haptics @ 5a */
 &ipa {
        qcom,gsi-loader = "self";
        memory-region = <&ipa_fw_mem>;
-       firmware-name = "qcom/qcm6490/fairphone5/ipa_fws.mdt";
+       firmware-name = "qcom/qcm6490/fairphone5/ipa_fws.mbn";
        status = "okay";
 };
 
        };
 };
 
+&pm8350c_gpios {
+       pm8008_reset_n_default: pm8008-reset-n-default-state {
+               pins = "gpio3";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               bias-pull-down;
+       };
+};
+
 &pmk8350_rtc {
        status = "okay";
 };
                bias-pull-up;
        };
 
+       pm8008_int_default: pm8008-int-default-state {
+               pins = "gpio25";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
                pins = "gpio28";
                function = "gpio";
 };
 
 &uart5 {
-       compatible = "qcom,geni-debug-uart";
        status = "okay";
 };
 
index 47ca2d000341418d4b5757570dc3ed67ccf1e239..a0668f767e4bf9c8a749adf180dc65f785eb389e 100644 (file)
 };
 
 &uart5 {
-       compatible = "qcom,geni-debug-uart";
        status = "okay";
 };
 
 };
 
 &usb_1_dwc3 {
+       /delete-property/ usb-role-switch;
        dr_mode = "peripheral";
 };
 
diff --git a/src/arm64/qcom/qcm6490-shift-otter.dts b/src/arm64/qcom/qcm6490-shift-otter.dts
new file mode 100644 (file)
index 0000000..4667e47
--- /dev/null
@@ -0,0 +1,961 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Luca Weiss <luca.weiss@fairphone.com>
+ * Copyright (c) 2024, Caleb Connolly <caleb@postmarketos.org>
+ */
+
+/dts-v1/;
+
+#define PM7250B_SID 8
+#define PM7250B_SID1 9
+
+#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sc7280.dtsi"
+#include "pm7250b.dtsi"
+#include "pm7325.dtsi"
+#include "pm8350c.dtsi" /* PM7350C */
+#include "pmk8350.dtsi" /* PMK7325 */
+
+/delete-node/ &rmtfs_mem;
+
+/ {
+       model = "SHIFT SHIFTphone 8";
+       compatible = "shift,otter", "qcom,qcm6490";
+       chassis-type = "handset";
+
+       aliases {
+               serial0 = &uart5;
+               serial1 = &uart7;
+       };
+
+       chosen {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               stdout-path = "serial0:115200n8";
+
+               framebuffer0: framebuffer@a000000 {
+                       compatible = "simple-framebuffer";
+                       reg = <0x0 0xe1000000 0x0 (2400 * 1080 * 4)>;
+                       width = <1080>;
+                       height = <2400>;
+                       stride = <(1080 * 4)>;
+                       format = "a8r8g8b8";
+                       clocks = <&gcc GCC_DISP_HF_AXI_CLK>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&volume_down_default>;
+               pinctrl-names = "default";
+
+               key-volume-up {
+                       label = "Volume up";
+                       gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+               };
+       };
+
+       pmic-glink {
+               compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               connector@0 {
+                       compatible = "usb-c-connector";
+                       reg = <0>;
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       pmic_glink_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss_in: endpoint {
+                                               remote-endpoint = <&usb_dp_qmpphy_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_sbu: endpoint {
+                                               remote-endpoint = <&fsa4480_sbu_mux>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       reserved-memory {
+               cont_splash_mem: cont-splash@e1000000 {
+                       reg = <0x0 0xe1000000 0x0 0x2300000>;
+                       no-map;
+               };
+
+               cdsp_mem: cdsp@88f00000 {
+                       reg = <0x0 0x88f00000 0x0 0x1e00000>;
+                       no-map;
+               };
+
+               rmtfs_mem: rmtfs@f8500000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0x0 0xf8500000 0x0 0x600000>;
+                       no-map;
+
+                       qcom,client-id = <1>;
+                       qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>, <QCOM_SCM_VMID_NAV>;
+               };
+       };
+
+       thermal-zones {
+               camera-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pmk8350_adc_tm 2>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               chg-skin-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pm7250b_adc_tm 0>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               conn-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pm7250b_adc_tm 1>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               quiet-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pmk8350_adc_tm 1>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               rear-cam-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pmk8350_adc_tm 4>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               sdm-skin-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pmk8350_adc_tm 3>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               xo-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pmk8350_adc_tm 0>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pm7325-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               vreg_s1b: smps1 {
+                       regulator-name = "vreg_s1b";
+                       regulator-min-microvolt = <1840000>;
+                       regulator-max-microvolt = <2040000>;
+               };
+
+               vreg_s7b: smps7 {
+                       regulator-name = "vreg_s7b";
+                       regulator-min-microvolt = <535000>;
+                       regulator-max-microvolt = <1120000>;
+               };
+
+               vreg_s8b: smps8 {
+                       regulator-name = "vreg_s8b";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1500000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
+               };
+
+               vreg_l1b: ldo1 {
+                       regulator-name = "vreg_l1b";
+                       regulator-min-microvolt = <825000>;
+                       regulator-max-microvolt = <925000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b: ldo2 {
+                       regulator-name = "vreg_l2b";
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3b: ldo3 {
+                       regulator-name = "vreg_l3b";
+                       regulator-min-microvolt = <312000>;
+                       regulator-max-microvolt = <910000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b: ldo6 {
+                       regulator-name = "vreg_l6b";
+                       regulator-min-microvolt = <1140000>;
+                       regulator-max-microvolt = <1260000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b: ldo7 {
+                       regulator-name = "vreg_l7b";
+                       /* Constrained for UFS VCC, at least until UFS driver scales voltage */
+                       regulator-min-microvolt = <2952000>;
+                       regulator-max-microvolt = <2952000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b: ldo8 {
+                       regulator-name = "vreg_l8b";
+                       regulator-min-microvolt = <870000>;
+                       regulator-max-microvolt = <970000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b: ldo9 {
+                       regulator-name = "vreg_l9b";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11b: ldo11 {
+                       regulator-name = "vreg_l11b";
+                       regulator-min-microvolt = <1504000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b: ldo12 {
+                       regulator-name = "vreg_l12b";
+                       regulator-min-microvolt = <751000>;
+                       regulator-max-microvolt = <824000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b: ldo13 {
+                       regulator-name = "vreg_l13b";
+                       regulator-min-microvolt = <530000>;
+                       regulator-max-microvolt = <824000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b: ldo14 {
+                       regulator-name = "vreg_l14b";
+                       regulator-min-microvolt = <1080000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15b: ldo15 {
+                       regulator-name = "vreg_l15b";
+                       regulator-min-microvolt = <765000>;
+                       regulator-max-microvolt = <1020000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16b: ldo16 {
+                       regulator-name = "vreg_l16b";
+                       regulator-min-microvolt = <1100000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17b: ldo17 {
+                       regulator-name = "vreg_l17b";
+                       regulator-min-microvolt = <1700000>;
+                       regulator-max-microvolt = <1900000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l18b: ldo18 {
+                       regulator-name = "vreg_l18b";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l19b: ldo19 {
+                       regulator-name = "vreg_l19b";
+                       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";
+
+               vreg_s1c: smps1 {
+                       regulator-name = "vreg_s1c";
+                       regulator-min-microvolt = <2190000>;
+                       regulator-max-microvolt = <2210000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s9c: smps9 {
+                       regulator-name = "vreg_s9c";
+                       regulator-min-microvolt = <1010000>;
+                       regulator-max-microvolt = <1170000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1c: ldo1 {
+                       regulator-name = "vreg_l1c";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1980000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c: ldo2 {
+                       regulator-name = "vreg_l2c";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1950000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c: ldo3 {
+                       regulator-name = "vreg_l3c";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3400000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4c: ldo4 {
+                       regulator-name = "vreg_l4c";
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5c: ldo5 {
+                       regulator-name = "vreg_l5c";
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6c: ldo6 {
+                       regulator-name = "vreg_l6c";
+                       regulator-min-microvolt = <1650000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7c: ldo7 {
+                       regulator-name = "vreg_l7c";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8c: ldo8 {
+                       regulator-name = "vreg_l8c";
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9c: ldo9 {
+                       regulator-name = "vreg_l9c";
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l10c: ldo10 {
+                       regulator-name = "vreg_l10c";
+                       regulator-min-microvolt = <720000>;
+                       regulator-max-microvolt = <1050000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11c: ldo11 {
+                       regulator-name = "vreg_l11c";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12c: ldo12 {
+                       regulator-name = "vreg_l12c";
+                       regulator-min-microvolt = <1650000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13c: ldo13 {
+                       regulator-name = "vreg_l13c";
+                       regulator-min-microvolt = <2700000>;
+                       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_AUTO>;
+               };
+       };
+};
+
+&gcc {
+       protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
+                          <GCC_EDP_CLKREF_EN>,
+                          <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/qcm6490/SHIFT/otter/a660_zap.mbn";
+};
+
+&i2c1 {
+       status = "okay";
+
+       /* PM8008 PMIC @ 8 and 9 */
+       /* rtc6226 FM receiver @ 64 */
+
+       typec-mux@42 {
+               compatible = "fcs,fsa4480";
+               reg = <0x42>;
+
+               vcc-supply = <&vreg_bob>;
+
+               mode-switch;
+               orientation-switch;
+
+               port {
+                       fsa4480_sbu_mux: endpoint {
+                               remote-endpoint = <&pmic_glink_sbu>;
+                       };
+               };
+       };
+};
+
+&i2c4 {
+       status = "okay";
+
+       /* tas2563 audio codec @ 4d */
+};
+
+&i2c9 {
+       status = "okay";
+
+       /* TMS(?) NFC @ 28 */
+       /* Ti drv2624 haptics @ 5a */
+};
+
+&i2c13 {
+       status = "okay";
+
+       /* focaltech FT3658U @ 38 */
+};
+
+&ipa {
+       qcom,gsi-loader = "self";
+       memory-region = <&ipa_fw_mem>;
+       firmware-name = "qcom/qcm6490/SHIFT/otter/ipa_fws.mbn";
+       status = "okay";
+};
+
+&pm7250b_adc {
+       channel@4d {
+               reg = <ADC5_AMUX_THM1_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "charger_skin_therm";
+       };
+
+       channel@4f {
+               reg = <ADC5_AMUX_THM3_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "conn_therm";
+       };
+};
+
+&pm7250b_adc_tm {
+       status = "okay";
+
+       charger-skin-therm@0 {
+               reg = <0>;
+               io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       conn-therm@1 {
+               reg = <1>;
+               io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+};
+
+&pm7325_gpios {
+       volume_down_default: volume-down-default-state {
+               pins = "gpio6";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               power-source = <1>;
+               bias-pull-up;
+               input-enable;
+       };
+};
+
+&pmk8350_adc_tm {
+       status = "okay";
+
+       xo-therm@0 {
+               reg = <0>;
+               io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       quiet-therm@1 {
+               reg = <1>;
+               io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       cam-flash-therm@2 {
+               reg = <2>;
+               io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM2_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       sdm-skin-therm@3 {
+               reg = <3>;
+               io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+
+       wide-rfc-therm@4 {
+               reg = <4>;
+               io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM4_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time-us = <200>;
+       };
+};
+
+&pmk8350_rtc {
+       status = "okay";
+};
+
+&pmk8350_vadc {
+       status = "okay";
+
+       channel@44 {
+               reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "pmk8350_xo_therm";
+       };
+
+       channel@144 {
+               reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "pm7325_quiet_therm";
+       };
+
+       channel@145 {
+               reg = <PM7325_ADC7_AMUX_THM2_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "pm7325_cam_flash_therm";
+       };
+
+       channel@146 {
+               reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "pm7325_sdm_skin_therm";
+       };
+
+       channel@147 {
+               reg = <PM7325_ADC7_AMUX_THM4_100K_PU>;
+               qcom,ratiometric;
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               label = "pm7325_wide_rfc_therm";
+       };
+};
+
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
+&qup_spi13_cs {
+       drive-strength = <6>;
+       bias-disable;
+};
+
+&qup_spi13_data_clk {
+       drive-strength = <6>;
+       bias-disable;
+};
+
+&qup_uart5_rx {
+       drive-strength = <2>;
+       bias-disable;
+};
+
+&qup_uart5_tx {
+       drive-strength = <2>;
+       bias-disable;
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/qcm6490/SHIFT/otter/adsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/qcm6490/SHIFT/otter/cdsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/qcm6490/SHIFT/otter/modem.mbn";
+       status = "okay";
+};
+
+&remoteproc_wpss {
+       firmware-name = "qcom/qcm6490/SHIFT/otter/wpss.mbn";
+       status = "okay";
+};
+
+&sdc2_clk {
+       drive-strength = <16>;
+       bias-disable;
+};
+
+&sdc2_cmd {
+       drive-strength = <10>;
+       bias-pull-up;
+};
+
+&sdc2_data {
+       drive-strength = <10>;
+       bias-pull-up;
+};
+
+&sdhc_2 {
+       vmmc-supply = <&vreg_l9c>;
+       vqmmc-supply = <&vreg_l6c>;
+
+       pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>;
+       pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>;
+
+       status = "okay";
+};
+
+&tlmm {
+       /*
+        * 48-52: protected by XPU, not sure why.
+        */
+       gpio-reserved-ranges = <48 4>;
+
+       bluetooth_enable_default: bluetooth-enable-default-state {
+               pins = "gpio85";
+               function = "gpio";
+               output-low;
+               bias-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;
+       };
+
+       sw_ctrl_default: sw-ctrl-default-state {
+               pins = "gpio86";
+               function = "gpio";
+               bias-pull-down;
+       };
+};
+
+&uart5 {
+       compatible = "qcom,geni-debug-uart";
+       status = "okay";
+};
+
+&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: bluetooth {
+               compatible = "qcom,wcn6750-bt";
+
+               pinctrl-0 = <&bluetooth_enable_default>, <&sw_ctrl_default>;
+               pinctrl-names = "default";
+
+               enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
+               swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
+
+               vddio-supply = <&vreg_l19b>;
+               vddaon-supply = <&vreg_s7b>;
+               vddbtcxmx-supply = <&vreg_s7b>;
+               vddrfacmn-supply = <&vreg_s7b>;
+               vddrfa0p8-supply = <&vreg_s7b>;
+               vddrfa1p7-supply = <&vreg_s1b>;
+               vddrfa1p2-supply = <&vreg_s8b>;
+               vddrfa2p2-supply = <&vreg_s1c>;
+               vddasd-supply = <&vreg_l11c>;
+
+               max-speed = <3200000>;
+       };
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l7b>;
+       vcc-max-microamp = <800000>;
+       /*
+        * Technically l9b enables an eLDO (supplied by s1b) which then powers
+        * VCCQ2 of the UFS.
+        */
+       vccq-supply = <&vreg_l9b>;
+       vccq-max-microamp = <900000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l10c>;
+       vdda-pll-supply = <&vreg_l6b>;
+
+       status = "okay";
+};
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "otg";
+       usb-role-switch;
+};
+
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_dp_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss_in>;
+};
+
+&usb_1_hsphy {
+       vdda-pll-supply = <&vreg_l10c>;
+       vdda18-supply = <&vreg_l1c>;
+       vdda33-supply = <&vreg_l2b>;
+
+       qcom,hs-crossover-voltage-microvolt = <28000>;
+       qcom,hs-output-impedance-micro-ohms = <2600000>;
+       qcom,hs-rise-fall-time-bp = <5430>;
+       qcom,hs-disconnect-bp = <1743>;
+       qcom,hs-amplitude-bp = <2430>;
+
+       qcom,pre-emphasis-amplitude-bp = <20000>;
+       qcom,pre-emphasis-duration-bp = <20000>;
+
+       qcom,squelch-detector-bp = <(-2090)>;
+
+       orientation-switch;
+
+       status = "okay";
+};
+
+&usb_1_qmpphy {
+       vdda-phy-supply = <&vreg_l6b>;
+       vdda-pll-supply = <&vreg_l1b>;
+
+       status = "okay";
+};
+
+&wifi {
+       qcom,ath11k-calibration-variant = "SHIFTphone_8";
+
+       status = "okay";
+};
index ac451f378056a759c4efedc3acf94f09632817ab..c291bbed6073ea0764522a7dc36f80b1b5762edf 100644 (file)
                };
 
                apcs_hfpll: clock-controller@b016000 {
-                       compatible = "qcom,hfpll";
+                       compatible = "qcom,qcs404-hfpll";
                        reg = <0x0b016000 0x30>;
                        #clock-cells = <0>;
                        clock-output-names = "apcs_hfpll";
 
        timer {
                compatible = "arm,armv8-timer";
-               interrupts = <GIC_PPI 2 0xff08>,
-                            <GIC_PPI 3 0xff08>,
-                            <GIC_PPI 4 0xff08>,
-                            <GIC_PPI 1 0xff08>;
+               interrupts = <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 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
        };
 
        smp2p-adsp {
        thermal-zones {
                aoss-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 0>;
 
 
                q6-hvx-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 1>;
 
 
                lpass-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 2>;
 
 
                wlan-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 3>;
 
 
                cluster-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 4>;
 
 
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 5>;
 
 
                cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 6>;
 
 
                cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 7>;
 
 
                cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 8>;
 
 
                gpu-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 9>;
 
index a085ff5b5fb21d9cc68c8dd970f30d489a40894b..0d45662b8028bff475024cff37c33e01d2ee251b 100644 (file)
                };
        };
 
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con: endpoint {
+                               remote-endpoint = <&lt9611_out>;
+                       };
+               };
+       };
+
+       lt9611_1v2: lt9611-vdd12-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "LT9611_1V2";
+
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+       };
+
        reserved-memory {
                xbl_mem: xbl@80700000 {
                        reg = <0x0 0x80700000 0x0 0x100000>;
                           <GCC_WPSS_RSCP_CLK>;
 };
 
+&gpi_dma0 {
+       status = "okay";
+};
+
+&gpi_dma1 {
+       status = "okay";
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       lt9611_codec: hdmi-bridge@2b {
+               compatible = "lontium,lt9611uxc";
+               reg = <0x2b>;
+
+               interrupts-extended = <&tlmm 24 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&pm7250b_gpios 2 GPIO_ACTIVE_HIGH>;
+
+               vdd-supply = <&lt9611_1v2>;
+               vcc-supply = <&vreg_l11c_2p8>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&lt9611_irq_pin &lt9611_rst_pin>;
+
+               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>;
+                               };
+                       };
+               };
+       };
+};
+
 &i2c1 {
        status = "okay";
 
        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";
+};
+
 &mdss_edp {
        status = "okay";
 };
        status = "okay";
 };
 
+&pmk8350_rtc {
+       status = "okay";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
 
+&qupv3_id_1 {
+       status = "okay";
+};
+
 &remoteproc_adsp {
        firmware-name = "qcom/qcs6490/adsp.mbn";
        status = "okay";
 };
 
 &uart5 {
-       compatible = "qcom,geni-debug-uart";
        status = "okay";
 };
 
        function = "gpio";
        bias-disable;
 };
+
+&pm7250b_gpios {
+       lt9611_rst_pin: lt9611-rst-state {
+               pins = "gpio2";
+               function = "normal";
+
+               output-high;
+               input-disable;
+               power-source = <0>;
+       };
+};
+
+&tlmm {
+       lt9611_irq_pin: lt9611-irq-state {
+               pins = "gpio24";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
diff --git a/src/arm64/qcom/qcs8550-aim300-aiot.dts b/src/arm64/qcom/qcs8550-aim300-aiot.dts
new file mode 100644 (file)
index 0000000..2e2e46f
--- /dev/null
@@ -0,0 +1,315 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include "qcs8550-aim300.dtsi"
+#include "pm8010.dtsi"
+#include "pmr735d_a.dtsi"
+#include "pmr735d_b.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. QCS8550 AIM300 AIOT";
+       compatible = "qcom,qcs8550-aim300-aiot", "qcom,qcs8550-aim300", "qcom,qcs8550",
+                    "qcom,sm8550";
+
+       aliases {
+               serial0 = &uart7;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&volume_up_n>;
+               pinctrl-names = "default";
+
+               key-volume-up {
+                       label = "Volume Up";
+                       debounce-interval = <15>;
+                       gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+       };
+
+       pmic-glink {
+               compatible = "qcom,sm8550-pmic-glink", "qcom,pmic-glink";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               orientation-gpios = <&tlmm 11 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 = <&redriver_ss_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_sbu: endpoint {
+                                               remote-endpoint = <&fsa4480_sbu_mux>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       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;
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               vdd-bob1-supply = <&vph_pwr>;
+               vdd-bob2-supply = <&vph_pwr>;
+       };
+
+       regulators-3 {
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+       };
+
+       regulators-4 {
+               vdd-s4-supply = <&vph_pwr>;
+       };
+
+       regulators-5 {
+               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>;
+       };
+};
+
+&i2c_hub_2 {
+       status = "okay";
+
+       typec-mux@42 {
+               compatible = "fcs,fsa4480";
+               reg = <0x42>;
+
+               vcc-supply = <&vreg_bob1>;
+
+               mode-switch;
+               orientation-switch;
+
+               port {
+                       fsa4480_sbu_mux: endpoint {
+                               remote-endpoint = <&pmic_glink_sbu>;
+                       };
+               };
+       };
+
+       typec-retimer@1c {
+               compatible = "onnn,nb7vpq904m";
+               reg = <0x1c>;
+
+               vcc-supply = <&vreg_l15b_1p8>;
+
+               orientation-switch;
+               retimer-switch;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               redriver_ss_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss_in>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               redriver_ss_in: endpoint {
+                                       data-lanes = <3 2 1 0>;
+                                       remote-endpoint = <&usb_dp_qmpphy_out>;
+                               };
+                       };
+               };
+       };
+};
+
+&mdss_dsi0 {
+       status = "okay";
+
+       panel@0 {
+               compatible = "visionox,vtdr6130";
+               reg = <0>;
+
+               pinctrl-0 = <&dsi_active>, <&te_default>;
+               pinctrl-1 = <&dsi_suspend>, <&te_default>;
+               pinctrl-names = "default", "sleep";
+
+               reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+
+               vci-supply = <&vreg_l13b_3p0>;
+               vdd-supply = <&vreg_l11b_1p2>;
+               vddio-supply = <&vreg_l12b_1p8>;
+
+               port {
+                       panel0_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&panel0_in>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+       status = "okay";
+};
+
+&pcie0 {
+       status = "okay";
+};
+
+&pcie0_phy {
+       status = "okay";
+};
+
+&pcie1 {
+       status = "okay";
+};
+
+&pcie1_phy {
+       status = "okay";
+};
+
+&pm8550_gpios {
+       volume_up_n: volume-up-n-state {
+               pins = "gpio6";
+               function = "normal";
+               power-source = <1>;
+               bias-pull-up;
+               input-enable;
+       };
+};
+
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+
+       status = "okay";
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/qcs8550/adsp.mbn",
+                       "qcom/qcs8550/adsp_dtb.mbn";
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/qcs8550/cdsp.mbn",
+                       "qcom/qcs8550/cdsp_dtb.mbn";
+       status = "okay";
+};
+
+&swr1 {
+       status = "okay";
+};
+
+&swr2 {
+       status = "okay";
+};
+
+&tlmm {
+       gpio-reserved-ranges = <32 8>;
+
+       dsi_active: dsi-active-state {
+               pins = "gpio133";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       dsi_suspend: dsi-suspend-state {
+               pins = "gpio133";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       te_default: te-default-state {
+               pins = "gpio86";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+};
+
+&uart7 {
+       status = "okay";
+};
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_hsphy {
+       status = "okay";
+};
+
+&usb_dp_qmpphy {
+       status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+       remote-endpoint = <&redriver_ss_in>;
+};
diff --git a/src/arm64/qcom/qcs8550-aim300.dtsi b/src/arm64/qcom/qcs8550-aim300.dtsi
new file mode 100644 (file)
index 0000000..f6960e2
--- /dev/null
@@ -0,0 +1,405 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "qcs8550.dtsi"
+#include "pm8550.dtsi"
+#include "pm8550b.dtsi"
+#define PMK8550VE_SID 5
+#include "pm8550ve.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmk8550.dtsi"
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pm8550-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               vdd-l1-l4-l10-supply = <&vreg_s6g_1p86>;
+               vdd-l2-l13-l14-supply = <&vreg_bob1>;
+               vdd-l3-supply = <&vreg_s4g_1p25>;
+               vdd-l5-l16-supply = <&vreg_bob1>;
+               vdd-l6-l7-supply = <&vreg_bob1>;
+               vdd-l8-l9-supply = <&vreg_bob1>;
+               vdd-l11-supply = <&vreg_s4g_1p25>;
+               vdd-l12-supply = <&vreg_s6g_1p86>;
+               vdd-l15-supply = <&vreg_s6g_1p86>;
+               vdd-l17-supply = <&vreg_bob2>;
+
+               vreg_bob1: bob1 {
+                       regulator-name = "vreg_bob1";
+                       regulator-min-microvolt = <3296000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob2: bob2 {
+                       regulator-name = "vreg_bob2";
+                       regulator-min-microvolt = <2720000>;
+                       regulator-max-microvolt = <3960000>;
+                       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 = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5b_3p1: ldo5 {
+                       regulator-name = "vreg_l5b_3p1";
+                       regulator-min-microvolt = <3104000>;
+                       regulator-max-microvolt = <3104000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p8: ldo6 {
+                       regulator-name = "vreg_l6b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b_1p8: ldo7 {
+                       regulator-name = "vreg_l7b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b_1p8: ldo8 {
+                       regulator-name = "vreg_l8b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_2p9: ldo9 {
+                       regulator-name = "vreg_l9b_2p9";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11b_1p2: ldo11 {
+                       regulator-name = "vreg_l11b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b_1p8: ldo12 {
+                       regulator-name = "vreg_l12b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b_3p0: ldo13 {
+                       regulator-name = "vreg_l13b_3p0";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b_3p2: ldo14 {
+                       regulator-name = "vreg_l14b_3p2";
+                       regulator-min-microvolt = <3200000>;
+                       regulator-max-microvolt = <3200000>;
+                       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,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-l1-supply = <&vreg_s4g_1p25>;
+               vdd-l2-supply = <&vreg_s4e_0p95>;
+               vdd-l3-supply = <&vreg_s4e_0p95>;
+
+               vreg_l3c_0p9: ldo3 {
+                       regulator-name = "vreg_l3c_0p9";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "d";
+
+               vdd-l1-supply = <&vreg_s4e_0p95>;
+               vdd-l2-supply = <&vreg_s4e_0p95>;
+               vdd-l3-supply = <&vreg_s4e_0p95>;
+
+               vreg_l1d_0p88: ldo1 {
+                       regulator-name = "vreg_l1d_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-3 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "e";
+
+               vdd-l1-supply = <&vreg_s4e_0p95>;
+               vdd-l2-supply = <&vreg_s4e_0p95>;
+               vdd-l3-supply = <&vreg_s4g_1p25>;
+
+               vreg_s4e_0p95: smps4 {
+                       regulator-name = "vreg_s4e_0p95";
+                       regulator-min-microvolt = <904000>;
+                       regulator-max-microvolt = <984000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s5e_1p08: smps5 {
+                       regulator-name = "vreg_s5e_1p08";
+                       regulator-min-microvolt = <1010000>;
+                       regulator-max-microvolt = <1120000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1e_0p88: ldo1 {
+                       regulator-name = "vreg_l1e_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2e_0p9: ldo2 {
+                       regulator-name = "vreg_l2e_0p9";
+                       regulator-min-microvolt = <870000>;
+                       regulator-max-microvolt = <970000>;
+                       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,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "f";
+
+               vdd-l1-supply = <&vreg_s4e_0p95>;
+               vdd-l2-supply = <&vreg_s4e_0p95>;
+               vdd-l3-supply = <&vreg_s4e_0p95>;
+
+               vreg_s4f_0p5: smps4 {
+                       regulator-name = "vreg_s4f_0p5";
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <700000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1f_0p9: ldo1 {
+                       regulator-name = "vreg_l1f_0p9";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2f_0p88: ldo2 {
+                       regulator-name = "vreg_l2f_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3f_0p88: ldo3 {
+                       regulator-name = "vreg_l3f_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-5 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "g";
+               vdd-l1-supply = <&vreg_s4g_1p25>;
+               vdd-l2-supply = <&vreg_s4g_1p25>;
+               vdd-l3-supply = <&vreg_s4g_1p25>;
+
+               vreg_s1g_1p25: smps1 {
+                       regulator-name = "vreg_s1g_1p25";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s2g_0p85: smps2 {
+                       regulator-name = "vreg_s2g_0p85";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1036000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s3g_0p8: smps3 {
+                       regulator-name = "vreg_s3g_0p8";
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <1004000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s4g_1p25: smps4 {
+                       regulator-name = "vreg_s4g_1p25";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1408000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s5g_0p85: smps5 {
+                       regulator-name = "vreg_s5g_0p85";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1004000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s6g_1p86: smps6 {
+                       regulator-name = "vreg_s6g_1p86";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1g_1p2: ldo1 {
+                       regulator-name = "vreg_l1g_1p2";
+                       regulator-min-microvolt = <1128000>;
+                       regulator-max-microvolt = <1272000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2g_1p2: ldo2 {
+                       regulator-name = "vreg_l2g_1p2";
+                       regulator-min-microvolt = <1100000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3g_1p2: ldo3 {
+                       regulator-name = "vreg_l3g_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&mdss_dsi0 {
+       vdda-supply = <&vreg_l3e_1p2>;
+};
+
+&mdss_dsi0_phy {
+       vdds-supply = <&vreg_l1e_0p88>;
+};
+
+&pcie0 {
+       perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+
+       pinctrl-0 = <&pcie0_default_state>;
+       pinctrl-names = "default";
+};
+
+&pcie0_phy {
+       vdda-phy-supply = <&vreg_l1e_0p88>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
+};
+
+&pcie1 {
+       perst-gpios = <&tlmm 97 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 99 GPIO_ACTIVE_HIGH>;
+
+       pinctrl-0 = <&pcie1_default_state>;
+       pinctrl-names = "default";
+};
+
+&pcie1_phy {
+       vdda-phy-supply = <&vreg_l3c_0p9>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
+       vdda-qref-supply = <&vreg_l1e_0p88>;
+};
+
+&pm8550b_eusb2_repeater {
+       vdd18-supply = <&vreg_l15b_1p8>;
+       vdd3-supply = <&vreg_l5b_3p1>;
+};
+
+&sleep_clk {
+       clock-frequency = <32000>;
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
+       vcc-supply = <&vreg_l17b_2p5>;
+       vcc-max-microamp = <1300000>;
+       vccq-supply = <&vreg_l1g_1p2>;
+       vccq-max-microamp = <1200000>;
+       vdd-hba-supply = <&vreg_l3g_1p2>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l1d_0p88>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
+
+       status = "okay";
+};
+
+&usb_1_hsphy {
+       phys = <&pm8550b_eusb2_repeater>;
+
+       vdd-supply = <&vreg_l1e_0p88>;
+       vdda12-supply = <&vreg_l3e_1p2>;
+};
+
+&usb_dp_qmpphy {
+       vdda-phy-supply = <&vreg_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l3f_0p88>;
+};
+
+&xo_board {
+       clock-frequency = <76800000>;
+};
diff --git a/src/arm64/qcom/qcs8550.dtsi b/src/arm64/qcom/qcs8550.dtsi
new file mode 100644 (file)
index 0000000..07b3148
--- /dev/null
@@ -0,0 +1,162 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#include "sm8550.dtsi"
+
+/delete-node/ &reserved_memory;
+
+/ {
+       reserved_memory: reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+
+               /* These are 3 types of reserved memory regions here:
+                * 1. Firmware related regions which aren't shared with kernel.
+                *     The device tree source in kernel doesn't need to have node to
+                * indicate the firmware related reserved information. Bootloader
+                * conveys the information by updating devicetree at runtime.
+                *     This will be described as: UEFI saves the physical address of
+                * the UEFI System Table to dts file's chosen node. Kernel read this
+                * table and add reserved memory regions to efi config table. Current
+                * reserved memory region may have reserved region which was not yet
+                * used, release note of the firmware have such kind of information.
+                * 2. Firmware related memory regions which are shared with Kernel
+                *     The device tree source in the kernel needs to include nodes
+                * that indicate fimware-related shared information. A label name
+                * is suggested because this type of shared information needs to
+                * be referenced by specific drivers for handling purposes.
+                *     Unlike previous platforms, QCS8550 boots using EFI and describes
+                * most reserved regions in the ESRT memory map. As a result, reserved
+                * memory regions which aren't relevant to the kernel(like the hypervisor
+                ( region) don't need to be described in DT.
+                * 3. Remoteproc regions.
+                *     Remoteproc regions will be reserved and then assigned to
+                * subsystem firmware later.
+                * Here is a reserved memory map for this platform:
+                *  0x80000000 +-------------------+
+                *             |                   |
+                *             | Firmware Related  |
+                *             |                   |
+                *  0x8a800000 +-------------------+
+                *             |                   |
+                *             | Remoteproc Region |
+                *             |                   |
+                *  0xa7000000 +-------------------+
+                *             |                   |
+                *             | Kernel Available  |
+                *             |                   |
+                *  0xd4d00000 +-------------------+
+                *             |                   |
+                *             | Firmware Related  |
+                *             |                   |
+                * 0x100000000 +-------------------+
+                */
+
+               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 {
+                       no-map;
+                       reg = <0x0 0x81c80000 0x0 0x20000>;
+               };
+
+               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;
+               };
+
+               mpss_mem: mpss-region@8a800000 {
+                       reg = <0x0 0x8a800000 0x0 0x10800000>;
+                       no-map;
+               };
+
+               q6_mpss_dtb_mem: q6-mpss-dtb-region@9b000000 {
+                       reg = <0x0 0x9b000000 0x0 0x80000>;
+                       no-map;
+               };
+
+               ipa_fw_mem: ipa-fw-region@9b080000 {
+                       reg = <0x0 0x9b080000 0x0 0x10000>;
+                       no-map;
+               };
+
+               ipa_gsi_mem: ipa-gsi-region@9b090000 {
+                       reg = <0x0 0x9b090000 0x0 0xa000>;
+                       no-map;
+               };
+
+               gpu_micro_code_mem: gpu-micro-code-region@9b09a000 {
+                       reg = <0x0 0x9b09a000 0x0 0x2000>;
+                       no-map;
+               };
+
+               spss_region_mem: spss-region@9b100000 {
+                       reg = <0x0 0x9b100000 0x0 0x180000>;
+                       no-map;
+               };
+
+               spu_secure_shared_memory_mem: spu-secure-shared-memory-region@9b280000 {
+                       reg = <0x0 0x9b280000 0x0 0x80000>;
+                       no-map;
+               };
+
+               camera_mem: camera-region@9b300000 {
+                       reg = <0x0 0x9b300000 0x0 0x800000>;
+                       no-map;
+               };
+
+               video_mem: video-region@9bb00000 {
+                       reg = <0x0 0x9bb00000 0x0 0x700000>;
+                       no-map;
+               };
+
+               cvp_mem: cvp-region@9c200000 {
+                       reg = <0x0 0x9c200000 0x0 0x700000>;
+                       no-map;
+               };
+
+               cdsp_mem: cdsp-region@9c900000 {
+                       reg = <0x0 0x9c900000 0x0 0x2000000>;
+                       no-map;
+               };
+
+               q6_cdsp_dtb_mem: q6-cdsp-dtb-region@9e900000 {
+                       reg = <0x0 0x9e900000 0x0 0x80000>;
+                       no-map;
+               };
+
+               q6_adsp_dtb_mem: q6-adsp-dtb-region@9e980000 {
+                       reg = <0x0 0x9e980000 0x0 0x80000>;
+                       no-map;
+               };
+
+               adspslpi_mem: adspslpi-region@9ea00000 {
+                       reg = <0x0 0x9ea00000 0x0 0x4080000>;
+                       no-map;
+               };
+
+               mpss_dsm_mem: mpss_dsm_region@d4d00000 {
+                       reg = <0x0 0xd4d00000 0x0 0x3300000>;
+                       no-map;
+               };
+       };
+};
index 5a25cdec969eb1b06b3d4fec9c2f18e8cb74b3a3..e65305f8136c886c076bd9603b48aadedf59730a 100644 (file)
 &uart7 {
        status = "okay";
 };
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "peripheral";
+};
+
+&usb_1_hsphy {
+       vdda-pll-supply = <&vreg_l8a_0p91>;
+       vdda18-supply = <&vreg_l14a_1p8>;
+       vdda33-supply = <&vreg_l2a_2p3>;
+
+       status = "okay";
+};
+
+&usb_1_qmpphy {
+       vdda-phy-supply = <&vreg_l8a_0p91>;
+       vdda-pll-supply = <&vreg_l3a_1p2>;
+
+       status = "okay";
+};
index f90f03fa6a24fc0a8159c9b36635c32b7ef69495..642ca8f0236b3944c5962e5b12b5959cd349812f 100644 (file)
@@ -6,6 +6,8 @@
 #include <dt-bindings/clock/qcom,qdu1000-gcc.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
 #include <dt-bindings/dma/qcom-gpi.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interconnect/qcom,icc.h>
 #include <dt-bindings/interconnect/qcom,qdu1000-rpmh.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
                        };
                };
 
+               usb_1_hsphy: phy@88e3000 {
+                       compatible = "qcom,qdu1000-usb-hs-phy",
+                                    "qcom,usb-snps-hs-7nm-phy";
+                       reg = <0x0 0x088e3000 0x0 0x120>;
+                       #phy-cells = <0>;
+
+                       clocks =<&gcc GCC_USB2_CLKREF_EN>;
+                       clock-names = "ref";
+
+                       resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
+
+                       status = "disabled";
+               };
+
+               usb_1_qmpphy: phy@88e5000 {
+                       compatible = "qcom,qdu1000-qmp-usb3-uni-phy";
+                       reg = <0x0 0x088e5000 0x0 0x2000>;
+
+                       clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
+                                <&gcc GCC_USB2_CLKREF_EN>,
+                                <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
+                       clock-names = "aux",
+                                     "ref",
+                                     "com_aux",
+                                     "pipe";
+
+                       resets = <&gcc GCC_USB3_PHY_PRIM_BCR>,
+                                <&gcc GCC_USB3PHY_PHY_PRIM_BCR>;
+                       reset-names = "phy",
+                                     "phy_phy";
+
+                       #clock-cells = <0>;
+                       clock-output-names = "usb3_uni_phy_pipe_clk_src";
+
+                       #phy-cells = <0>;
+
+                       status = "disabled";
+               };
+
+               usb_1: usb@a6f8800 {
+                       compatible = "qcom,qdu1000-dwc3", "qcom,dwc3";
+                       reg = <0 0x0a6f8800 0 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
+                                <&gcc GCC_USB30_PRIM_MASTER_CLK>,
+                                <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
+                                <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
+                       clock-names = "cfg_noc",
+                                     "core",
+                                     "sleep",
+                                     "mock_utmi";
+
+                       assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_PRIM_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <200000000>;
+
+                       interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 9 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 6 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pwr_event",
+                                         "hs_phy_irq",
+                                         "dp_hs_phy_irq",
+                                         "dm_hs_phy_irq",
+                                         "ss_phy_irq";
+
+                       power-domains = <&gcc USB30_PRIM_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+
+                       resets = <&gcc GCC_USB30_PRIM_BCR>;
+
+                       interconnects = <&system_noc MASTER_USB3 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &system_noc SLAVE_USB3_0 QCOM_ICC_TAG_ALWAYS>;
+
+                       interconnect-names = "usb-ddr",
+                                            "apps-usb";
+
+                       status = "disabled";
+
+                       usb_1_dwc3: usb@a600000 {
+                               compatible = "snps,dwc3";
+                               reg = <0 0x0a600000 0 0xcd00>;
+                               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+
+                               iommus = <&apps_smmu 0xc0 0x0>;
+                               snps,dis_u2_susphy_quirk;
+                               snps,dis_enblslpm_quirk;
+                               phys = <&usb_1_hsphy>,
+                                      <&usb_1_qmpphy>;
+                               phy-names = "usb2-phy",
+                                           "usb3-phy";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_1_dwc3_hs: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_1_dwc3_ss: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+               };
+
                pdc: interrupt-controller@b220000 {
                        compatible = "qcom,qdu1000-pdc", "qcom,pdc";
                        reg = <0x0 0xb220000 0x0 0x30000>, <0x0 0x174000f0 0x0 0x64>;
                                    "llcc7_base",
                                    "llcc_broadcast_base";
                        interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
+
+                       nvmem-cells = <&multi_chan_ddr>;
+                       nvmem-cell-names = "multi-chan-ddr";
+               };
+
+               sec_qfprom: efuse@221c8000 {
+                       compatible = "qcom,qdu1000-sec-qfprom", "qcom,sec-qfprom";
+                       reg = <0 0x221c8000 0 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       multi_chan_ddr: multi-chan-ddr@12b {
+                               reg = <0x12b 0x1>;
+                               bits = <0 2>;
+                       };
                };
        };
 
index bb5191422660b82ef243fb111fb9d2515247a80e..e19790464a1159d3ab6e788b8aa22adaa52c56d3 100644 (file)
                };
        };
 
+       i2c2_gpio: i2c {
+               compatible = "i2c-gpio";
+
+               sda-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
+               scl-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               status = "disabled";
+       };
+
        leds {
                compatible = "gpio-leds";
 
        status = "okay";
 };
 
-&i2c2 {
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               firmware-name = "qcom/qcm2290/a702_zap.mbn";
+       };
+};
+
+&i2c2_gpio {
        clock-frequency = <400000>;
        status = "okay";
 
index 2c39bb1b97db5121f0e0e9c3d660df5390b561ac..1888d99d398b11fc54ee43998721722e8eb9d10a 100644 (file)
                };
        };
 
+       i2c2_gpio: i2c {
+               compatible = "i2c-gpio";
+
+               sda-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
+               scl-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               status = "disabled";
+       };
+
        leds {
                compatible = "gpio-leds";
 
        };
 };
 
-&i2c2 {
+&i2c2_gpio {
        clock-frequency = <400000>;
        status = "okay";
 
 
 &pmi632_vbus {
        regulator-min-microamp = <500000>;
-       regulator-max-microamp = <3000000>;
+       regulator-max-microamp = <1000000>;
        status = "okay";
 };
 
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        regulator-allow-set-load;
+                       regulator-always-on;
+                       regulator-boot-on;
                };
 
                vreg_l10a_1p8: l10 {
index cd0db4f31d4af915058d2a817cc397d3cc5f40e7..ccff6cd73fdfab52707b53473b1d989a0ce25a9d 100644 (file)
                regulator-always-on;
        };
 
+       qca6390-pmu {
+               compatible = "qcom,qca6390-pmu";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_en_state>, <&wlan_en_state>;
+
+               vddaon-supply = <&vreg_s6a_0p95>;
+               vddpmu-supply = <&vreg_s2f_0p95>;
+               vddrfa0p95-supply = <&vreg_s2f_0p95>;
+               vddrfa1p3-supply = <&vreg_s8c_1p3>;
+               vddrfa1p9-supply = <&vreg_s5a_1p9>;
+               vddpcie1p3-supply = <&vreg_s8c_1p3>;
+               vddpcie1p9-supply = <&vreg_s5a_1p9>;
+               vddio-supply = <&vreg_s4a_1p8>;
+
+               wlan-enable-gpios = <&tlmm 20 GPIO_ACTIVE_HIGH>;
+               bt-enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
+
+               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_1p7: ldo7 {
+                               regulator-name = "vreg_pmu_rfa_1p7";
+                       };
+
+                       vreg_pmu_pcie_0p9: ldo8 {
+                               regulator-name = "vreg_pmu_pcie_0p9";
+                       };
+
+                       vreg_pmu_pcie_1p8: ldo9 {
+                               regulator-name = "vreg_pmu_pcie_1p8";
+                       };
+               };
+       };
+
        thermal-zones {
                conn-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm8150b_adc_tm 0>;
 
                        trips {
                };
 
                pm8150l-pcb-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm8150l_adc_tm 1>;
 
                        trips {
                };
 
                skin-msm-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm8150l_adc_tm 0>;
 
                        trips {
                };
 
                wifi-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm8150_adc_tm 1>;
 
                        trips {
                };
 
                xo-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm8150_adc_tm 0>;
 
                        trips {
        vdda-pll-supply = <&vreg_l9a_1p2>;
 };
 
+&pcieport0 {
+       wifi@0 {
+               compatible = "pci17cb,1101";
+               reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+               vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+               vddaon-supply = <&vreg_pmu_aon_0p59>;
+               vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+               vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+               vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+               vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+               vddrfa1p7-supply = <&vreg_pmu_rfa_1p7>;
+               vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+               vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+       };
+};
+
 &pcie1 {
        status = "okay";
 };
                function = "gpio";
                bias-pull-up;
        };
+
+       wlan_en_state: wlan-default-state {
+               pins = "gpio20";
+               function = "gpio";
+               drive-strength = <16>;
+               output-low;
+               bias-pull-up;
+       };
 };
 
 &uart6 {
        bluetooth {
                compatible = "qcom,qca6390-bt";
 
-               pinctrl-names = "default";
-               pinctrl-0 = <&bt_en_state>;
-
-               enable-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>;
-
-               vddio-supply = <&vreg_s4a_1p8>;
-               vddpmu-supply = <&vreg_s2f_0p95>;
-               vddaon-supply = <&vreg_s6a_0p95>;
-               vddrfa0p9-supply = <&vreg_s2f_0p95>;
-               vddrfa1p3-supply = <&vreg_s8c_1p3>;
-               vddrfa1p9-supply = <&vreg_s5a_1p9>;
+               vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+               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>;
        };
 };
 
        usb-role-switch;
 };
 
-&usb_1_role_switch_out {
-       remote-endpoint = <&pm8150b_role_switch_in>;
+&usb_1_dwc3_hs_out {
+       remote-endpoint = <&pm8150b_hs_in>;
 };
 
 &usb_1_hsphy {
 
        vdda-phy-supply = <&vreg_l9a_1p2>;
        vdda-pll-supply = <&vreg_l18a_0p92>;
-       orientation-switch;
 };
 
 &usb_1_qmpphy_out {
 
                        port@0 {
                                reg = <0>;
-                               pm8150b_role_switch_in: endpoint {
-                                       remote-endpoint = <&usb_1_role_switch_out>;
+                               pm8150b_hs_in: endpoint {
+                                       remote-endpoint = <&usb_1_dwc3_hs_out>;
                                };
                        };
 
index 2a862c83309e7011ffc9181da031a0b24a4a48f0..1c781d9e24cf4d4f45380860c6d89c21e8df9925 100644 (file)
 &uart7 {
        status = "okay";
 };
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "peripheral";
+};
+
+&usb_1_hsphy {
+       vdda-pll-supply = <&vreg_l8a_0p91>;
+       vdda18-supply = <&vreg_l14a_1p8>;
+       vdda33-supply = <&vreg_l2a_2p3>;
+
+       status = "okay";
+};
+
+&usb_1_qmpphy {
+       vdda-phy-supply = <&vreg_l8a_0p91>;
+       vdda-pll-supply = <&vreg_l3a_1p2>;
+
+       status = "okay";
+};
index ffb7ab695213a6009294420b150e476f604d614a..9e70effc72e105dc65fb468d9f3f93ea3e66b25e 100644 (file)
@@ -38,3 +38,7 @@
         */
        compatible = "qcom,sa8155p-rpmhpd";
 };
+
+&videocc {
+       power-domains = <&rpmhpd SA8155P_CX>;
+};
index eaa43f022a65493e86d46970bdddab95c30285b3..1369c3d43f866de9d8cd5cd4985241b99c0a0454 100644 (file)
@@ -10,7 +10,7 @@
        thermal-zones {
                pmm8654au_0_thermal: pm8775-0-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmm8654au_0_temp_alarm>;
 
                        trips {
@@ -30,7 +30,7 @@
 
                pmm8654au_1_thermal: pm8775-1-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmm8654au_1_temp_alarm>;
 
                        trips {
@@ -50,7 +50,7 @@
 
                pmm8654au_2_thermal: pm8775-2-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmm8654au_2_temp_alarm>;
 
                        trips {
@@ -70,7 +70,7 @@
 
                pmm8654au_3_thermal: pm8775-3-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmm8654au_3_temp_alarm>;
 
                        trips {
diff --git a/src/arm64/qcom/sa8775p-ride-r3.dts b/src/arm64/qcom/sa8775p-ride-r3.dts
new file mode 100644 (file)
index 0000000..ae065ae
--- /dev/null
@@ -0,0 +1,47 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+/dts-v1/;
+
+#include "sa8775p-ride.dtsi"
+
+/ {
+       model = "Qualcomm SA8775P Ride Rev3";
+       compatible = "qcom,sa8775p-ride-r3", "qcom,sa8775p";
+};
+
+&ethernet0 {
+       phy-mode = "2500base-x";
+};
+
+&ethernet1 {
+       phy-mode = "2500base-x";
+};
+
+&mdio {
+       compatible = "snps,dwmac-mdio";
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       sgmii_phy0: phy@8 {
+               compatible = "ethernet-phy-id31c3.1c33";
+               reg = <0x8>;
+               device_type = "ethernet-phy";
+               interrupts-extended = <&tlmm 7 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <11000>;
+               reset-deassert-us = <70000>;
+       };
+
+       sgmii_phy1: phy@0 {
+               compatible = "ethernet-phy-id31c3.1c33";
+               reg = <0x0>;
+               device_type = "ethernet-phy";
+               interrupts-extended = <&tlmm 26 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&pmm8654au_2_gpios 9 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <11000>;
+               reset-deassert-us = <70000>;
+       };
+};
index 26ad05bd3b3ff054d421025d22948c22e9bc6469..2e87fd760dbdde9f93aef8c3b3b013e1cfb73d5f 100644 (file)
 
 /dts-v1/;
 
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
-
-#include "sa8775p.dtsi"
-#include "sa8775p-pmics.dtsi"
+#include "sa8775p-ride.dtsi"
 
 / {
        model = "Qualcomm SA8775P Ride";
        compatible = "qcom,sa8775p-ride", "qcom,sa8775p";
-
-       aliases {
-               ethernet0 = &ethernet0;
-               ethernet1 = &ethernet1;
-               i2c11 = &i2c11;
-               i2c18 = &i2c18;
-               serial0 = &uart10;
-               serial1 = &uart12;
-               serial2 = &uart17;
-               spi16 = &spi16;
-               ufshc1 = &ufs_mem_hc;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-};
-
-&apps_rsc {
-       regulators-0 {
-               compatible = "qcom,pmm8654au-rpmh-regulators";
-               qcom,pmic-id = "a";
-
-               vreg_s4a: smps4 {
-                       regulator-name = "vreg_s4a";
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1816000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_s5a: smps5 {
-                       regulator-name = "vreg_s5a";
-                       regulator-min-microvolt = <1850000>;
-                       regulator-max-microvolt = <1996000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_s9a: smps9 {
-                       regulator-name = "vreg_s9a";
-                       regulator-min-microvolt = <535000>;
-                       regulator-max-microvolt = <1120000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l4a: ldo4 {
-                       regulator-name = "vreg_l4a";
-                       regulator-min-microvolt = <788000>;
-                       regulator-max-microvolt = <1050000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l5a: ldo5 {
-                       regulator-name = "vreg_l5a";
-                       regulator-min-microvolt = <870000>;
-                       regulator-max-microvolt = <950000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l6a: ldo6 {
-                       regulator-name = "vreg_l6a";
-                       regulator-min-microvolt = <870000>;
-                       regulator-max-microvolt = <970000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l7a: ldo7 {
-                       regulator-name = "vreg_l7a";
-                       regulator-min-microvolt = <720000>;
-                       regulator-max-microvolt = <950000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l8a: ldo8 {
-                       regulator-name = "vreg_l8a";
-                       regulator-min-microvolt = <2504000>;
-                       regulator-max-microvolt = <3300000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l9a: ldo9 {
-                       regulator-name = "vreg_l9a";
-                       regulator-min-microvolt = <2970000>;
-                       regulator-max-microvolt = <3544000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-       };
-
-       regulators-1 {
-               compatible = "qcom,pmm8654au-rpmh-regulators";
-               qcom,pmic-id = "c";
-
-               vreg_l1c: ldo1 {
-                       regulator-name = "vreg_l1c";
-                       regulator-min-microvolt = <1140000>;
-                       regulator-max-microvolt = <1260000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l2c: ldo2 {
-                       regulator-name = "vreg_l2c";
-                       regulator-min-microvolt = <900000>;
-                       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_l3c: ldo3 {
-                       regulator-name = "vreg_l3c";
-                       regulator-min-microvolt = <1100000>;
-                       regulator-max-microvolt = <1300000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l4c: ldo4 {
-                       regulator-name = "vreg_l4c";
-                       regulator-min-microvolt = <1200000>;
-                       regulator-max-microvolt = <1200000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       /*
-                        * FIXME: This should have regulator-allow-set-load but
-                        * we're getting an over-current fault from the PMIC
-                        * when switching to LPM.
-                        */
-               };
-
-               vreg_l5c: ldo5 {
-                       regulator-name = "vreg_l5c";
-                       regulator-min-microvolt = <1100000>;
-                       regulator-max-microvolt = <1300000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l6c: ldo6 {
-                       regulator-name = "vreg_l6c";
-                       regulator-min-microvolt = <1620000>;
-                       regulator-max-microvolt = <1980000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l7c: ldo7 {
-                       regulator-name = "vreg_l7c";
-                       regulator-min-microvolt = <1620000>;
-                       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_l8c: ldo8 {
-                       regulator-name = "vreg_l8c";
-                       regulator-min-microvolt = <2400000>;
-                       regulator-max-microvolt = <3300000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l9c: ldo9 {
-                       regulator-name = "vreg_l9c";
-                       regulator-min-microvolt = <1650000>;
-                       regulator-max-microvolt = <2700000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-       };
-
-       regulators-2 {
-               compatible = "qcom,pmm8654au-rpmh-regulators";
-               qcom,pmic-id = "e";
-
-               vreg_s4e: smps4 {
-                       regulator-name = "vreg_s4e";
-                       regulator-min-microvolt = <970000>;
-                       regulator-max-microvolt = <1520000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_s7e: smps7 {
-                       regulator-name = "vreg_s7e";
-                       regulator-min-microvolt = <1010000>;
-                       regulator-max-microvolt = <1170000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_s9e: smps9 {
-                       regulator-name = "vreg_s9e";
-                       regulator-min-microvolt = <300000>;
-                       regulator-max-microvolt = <570000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l6e: ldo6 {
-                       regulator-name = "vreg_l6e";
-                       regulator-min-microvolt = <1280000>;
-                       regulator-max-microvolt = <1450000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l8e: ldo8 {
-                       regulator-name = "vreg_l8e";
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1950000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-                       regulator-allow-set-load;
-                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
-                                                  RPMH_REGULATOR_MODE_HPM>;
-               };
-       };
 };
 
 &ethernet0 {
        phy-mode = "sgmii";
-       phy-handle = <&sgmii_phy0>;
-
-       pinctrl-0 = <&ethernet0_default>;
-       pinctrl-names = "default";
-
-       snps,mtl-rx-config = <&mtl_rx_setup>;
-       snps,mtl-tx-config = <&mtl_tx_setup>;
-       snps,ps-speed = <1000>;
-
-       status = "okay";
-
-       mdio {
-               compatible = "snps,dwmac-mdio";
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               sgmii_phy0: phy@8 {
-                       compatible = "ethernet-phy-id0141.0dd4";
-                       reg = <0x8>;
-                       device_type = "ethernet-phy";
-                       interrupts-extended = <&tlmm 7 IRQ_TYPE_EDGE_FALLING>;
-                       reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
-                       reset-assert-us = <11000>;
-                       reset-deassert-us = <70000>;
-               };
-
-               sgmii_phy1: phy@a {
-                       compatible = "ethernet-phy-id0141.0dd4";
-                       reg = <0xa>;
-                       device_type = "ethernet-phy";
-                       interrupts-extended = <&tlmm 26 IRQ_TYPE_EDGE_FALLING>;
-                       reset-gpios = <&pmm8654au_2_gpios 9 GPIO_ACTIVE_LOW>;
-                       reset-assert-us = <11000>;
-                       reset-deassert-us = <70000>;
-               };
-       };
-
-       mtl_rx_setup: rx-queues-config {
-               snps,rx-queues-to-use = <4>;
-               snps,rx-sched-sp;
-
-               queue0 {
-                       snps,dcb-algorithm;
-                       snps,map-to-dma-channel = <0x0>;
-                       snps,route-up;
-                       snps,priority = <0x1>;
-               };
-
-               queue1 {
-                       snps,dcb-algorithm;
-                       snps,map-to-dma-channel = <0x1>;
-                       snps,route-ptp;
-               };
-
-               queue2 {
-                       snps,avb-algorithm;
-                       snps,map-to-dma-channel = <0x2>;
-                       snps,route-avcp;
-               };
-
-               queue3 {
-                       snps,avb-algorithm;
-                       snps,map-to-dma-channel = <0x3>;
-                       snps,priority = <0xc>;
-               };
-       };
-
-       mtl_tx_setup: tx-queues-config {
-               snps,tx-queues-to-use = <4>;
-               snps,tx-sched-sp;
-
-               queue0 {
-                       snps,dcb-algorithm;
-               };
-
-               queue1 {
-                       snps,dcb-algorithm;
-               };
-
-               queue2 {
-                       snps,avb-algorithm;
-                       snps,send_slope = <0x1000>;
-                       snps,idle_slope = <0x1000>;
-                       snps,high_credit = <0x3e800>;
-                       snps,low_credit = <0xffc18000>;
-               };
-
-               queue3 {
-                       snps,avb-algorithm;
-                       snps,send_slope = <0x1000>;
-                       snps,idle_slope = <0x1000>;
-                       snps,high_credit = <0x3e800>;
-                       snps,low_credit = <0xffc18000>;
-               };
-       };
 };
 
 &ethernet1 {
        phy-mode = "sgmii";
-       phy-handle = <&sgmii_phy1>;
-
-       snps,mtl-rx-config = <&mtl_rx_setup1>;
-       snps,mtl-tx-config = <&mtl_tx_setup1>;
-       snps,ps-speed = <1000>;
-
-       status = "okay";
-
-       mtl_rx_setup1: rx-queues-config {
-               snps,rx-queues-to-use = <4>;
-               snps,rx-sched-sp;
-
-               queue0 {
-                       snps,dcb-algorithm;
-                       snps,map-to-dma-channel = <0x0>;
-                       snps,route-up;
-                       snps,priority = <0x1>;
-               };
-
-               queue1 {
-                       snps,dcb-algorithm;
-                       snps,map-to-dma-channel = <0x1>;
-                       snps,route-ptp;
-               };
-
-               queue2 {
-                       snps,avb-algorithm;
-                       snps,map-to-dma-channel = <0x2>;
-                       snps,route-avcp;
-               };
-
-               queue3 {
-                       snps,avb-algorithm;
-                       snps,map-to-dma-channel = <0x3>;
-                       snps,priority = <0xc>;
-               };
-       };
-
-       mtl_tx_setup1: tx-queues-config {
-               snps,tx-queues-to-use = <4>;
-               snps,tx-sched-sp;
-
-               queue0 {
-                       snps,dcb-algorithm;
-               };
-
-               queue1 {
-                       snps,dcb-algorithm;
-               };
-
-               queue2 {
-                       snps,avb-algorithm;
-                       snps,send_slope = <0x1000>;
-                       snps,idle_slope = <0x1000>;
-                       snps,high_credit = <0x3e800>;
-                       snps,low_credit = <0xffc18000>;
-               };
-
-               queue3 {
-                       snps,avb-algorithm;
-                       snps,send_slope = <0x1000>;
-                       snps,idle_slope = <0x1000>;
-                       snps,high_credit = <0x3e800>;
-                       snps,low_credit = <0xffc18000>;
-               };
-       };
-};
-
-&i2c11 {
-       clock-frequency = <400000>;
-       pinctrl-0 = <&qup_i2c11_default>;
-       pinctrl-names = "default";
-       status = "okay";
-};
-
-&i2c18 {
-       clock-frequency = <400000>;
-       pinctrl-0 = <&qup_i2c18_default>;
-       pinctrl-names = "default";
-       status = "okay";
-};
-
-&pmm8654au_0_gpios {
-       gpio-line-names = "DS_EN",
-                         "POFF_COMPLETE",
-                         "UFS0_VER_ID",
-                         "FAST_POFF",
-                         "DBU1_PON_DONE",
-                         "AOSS_SLEEP",
-                         "CAM_DES0_EN",
-                         "CAM_DES1_EN",
-                         "CAM_DES2_EN",
-                         "CAM_DES3_EN",
-                         "UEFI",
-                         "ANALOG_PON_OPT";
-};
-
-&pmm8654au_0_pon_resin {
-       linux,code = <KEY_VOLUMEDOWN>;
-       status = "okay";
-};
-
-&pmm8654au_1_gpios {
-       gpio-line-names = "PMIC_C_ID0",
-                         "PMIC_C_ID1",
-                         "UFS1_VER_ID",
-                         "IPA_PWR",
-                         "",
-                         "WLAN_DBU4_EN",
-                         "WLAN_EN",
-                         "BT_EN",
-                         "USB2_PWR_EN",
-                         "USB2_FAULT";
-
-       usb2_en_state: usb2-en-state {
-               pins = "gpio9";
-               function = "normal";
-               output-high;
-               power-source = <0>;
-       };
-};
-
-&pmm8654au_2_gpios {
-       gpio-line-names = "PMIC_E_ID0",
-                         "PMIC_E_ID1",
-                         "USB0_PWR_EN",
-                         "USB0_FAULT",
-                         "SENSOR_IRQ_1",
-                         "SENSOR_IRQ_2",
-                         "SENSOR_RST",
-                         "SGMIIO0_RST",
-                         "SGMIIO1_RST",
-                         "USB1_PWR_ENABLE",
-                         "USB1_FAULT",
-                         "VMON_SPX8";
-
-       usb0_en_state: usb0-en-state {
-               pins = "gpio3";
-               function = "normal";
-               output-high;
-               power-source = <0>;
-       };
-
-       usb1_en_state: usb1-en-state {
-               pins = "gpio10";
-               function = "normal";
-               output-high;
-               power-source = <0>;
-       };
-};
-
-&pmm8654au_3_gpios {
-       gpio-line-names = "PMIC_G_ID0",
-                         "PMIC_G_ID1",
-                         "GNSS_RST",
-                         "GNSS_EN",
-                         "GNSS_BOOT_MODE";
-};
-
-&qupv3_id_1 {
-       status = "okay";
-};
-
-&qupv3_id_2 {
-       status = "okay";
-};
-
-&serdes0 {
-       phy-supply = <&vreg_l5a>;
-       status = "okay";
-};
-
-&serdes1 {
-       phy-supply = <&vreg_l5a>;
-       status = "okay";
-};
-
-&sleep_clk {
-       clock-frequency = <32764>;
-};
-
-&spi16 {
-       pinctrl-0 = <&qup_spi16_default>;
-       pinctrl-names = "default";
-       status = "okay";
 };
 
-&tlmm {
-       ethernet0_default: ethernet0-default-state {
-               ethernet0_mdc: ethernet0-mdc-pins {
-                       pins = "gpio8";
-                       function = "emac0_mdc";
-                       drive-strength = <16>;
-                       bias-pull-up;
-               };
-
-               ethernet0_mdio: ethernet0-mdio-pins {
-                       pins = "gpio9";
-                       function = "emac0_mdio";
-                       drive-strength = <16>;
-                       bias-pull-up;
-               };
-       };
-
-       qup_uart10_default: qup-uart10-state {
-               pins = "gpio46", "gpio47";
-               function = "qup1_se3";
-       };
-
-       qup_spi16_default: qup-spi16-state {
-               pins = "gpio86", "gpio87", "gpio88", "gpio89";
-               function = "qup2_se2";
-               drive-strength = <6>;
-               bias-disable;
-       };
-
-       qup_i2c11_default: qup-i2c11-state {
-               pins = "gpio48", "gpio49";
-               function = "qup1_se4";
-               drive-strength = <2>;
-               bias-pull-up;
-       };
-
-       qup_i2c18_default: qup-i2c18-state {
-               pins = "gpio95", "gpio96";
-               function = "qup2_se4";
-               drive-strength = <2>;
-               bias-pull-up;
-       };
-
-       qup_uart12_default: qup-uart12-state {
-               qup_uart12_cts: qup-uart12-cts-pins {
-                       pins = "gpio52";
-                       function = "qup1_se5";
-                       bias-disable;
-               };
-
-               qup_uart12_rts: qup-uart12-rts-pins {
-                       pins = "gpio53";
-                       function = "qup1_se5";
-                       bias-pull-down;
-               };
-
-               qup_uart12_tx: qup-uart12-tx-pins {
-                       pins = "gpio54";
-                       function = "qup1_se5";
-                       bias-pull-up;
-               };
-
-               qup_uart12_rx: qup-uart12-rx-pins {
-                       pins = "gpio55";
-                       function = "qup1_se5";
-                       bias-pull-down;
-               };
-       };
-
-       qup_uart17_default: qup-uart17-state {
-               qup_uart17_cts: qup-uart17-cts-pins {
-                       pins = "gpio91";
-                       function = "qup2_se3";
-                       bias-disable;
-               };
-
-               qup_uart17_rts: qup0-uart17-rts-pins {
-                       pins = "gpio92";
-                       function = "qup2_se3";
-                       bias-pull-down;
-               };
-
-               qup_uart17_tx: qup0-uart17-tx-pins {
-                       pins = "gpio93";
-                       function = "qup2_se3";
-                       bias-pull-up;
-               };
-
-               qup_uart17_rx: qup0-uart17-rx-pins {
-                       pins = "gpio94";
-                       function = "qup2_se3";
-                       bias-pull-down;
-               };
-       };
+&mdio {
+       compatible = "snps,dwmac-mdio";
+       #address-cells = <1>;
+       #size-cells = <0>;
 
-       pcie0_default_state: pcie0-default-state {
-               perst-pins {
-                       pins = "gpio2";
-                       function = "gpio";
-                       drive-strength = <2>;
-                       bias-pull-down;
-               };
-
-               clkreq-pins {
-                       pins = "gpio1";
-                       function = "pcie0_clkreq";
-                       drive-strength = <2>;
-                       bias-pull-up;
-               };
-
-               wake-pins {
-                       pins = "gpio0";
-                       function = "gpio";
-                       drive-strength = <2>;
-                       bias-pull-up;
-               };
+       sgmii_phy0: phy@8 {
+               compatible = "ethernet-phy-id0141.0dd4";
+               reg = <0x8>;
+               device_type = "ethernet-phy";
+               interrupts-extended = <&tlmm 7 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&pmm8654au_2_gpios 8 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <11000>;
+               reset-deassert-us = <70000>;
        };
 
-       pcie1_default_state: pcie1-default-state {
-               perst-pins {
-                       pins = "gpio4";
-                       function = "gpio";
-                       drive-strength = <2>;
-                       bias-pull-down;
-               };
-
-               clkreq-pins {
-                       pins = "gpio3";
-                       function = "pcie1_clkreq";
-                       drive-strength = <2>;
-                       bias-pull-up;
-               };
-
-               wake-pins {
-                       pins = "gpio5";
-                       function = "gpio";
-                       drive-strength = <2>;
-                       bias-pull-up;
-               };
+       sgmii_phy1: phy@a {
+               compatible = "ethernet-phy-id0141.0dd4";
+               reg = <0xa>;
+               device_type = "ethernet-phy";
+               interrupts-extended = <&tlmm 26 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&pmm8654au_2_gpios 9 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <11000>;
+               reset-deassert-us = <70000>;
        };
 };
-
-&pcie0 {
-       perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
-
-       pinctrl-names = "default";
-       pinctrl-0 = <&pcie0_default_state>;
-
-       status = "okay";
-};
-
-&pcie1 {
-       perst-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
-       wake-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>;
-
-       pinctrl-names = "default";
-       pinctrl-0 = <&pcie1_default_state>;
-
-       status = "okay";
-};
-
-&pcie0_phy {
-       vdda-phy-supply = <&vreg_l5a>;
-       vdda-pll-supply = <&vreg_l1c>;
-
-       status = "okay";
-};
-
-&pcie1_phy {
-       vdda-phy-supply = <&vreg_l5a>;
-       vdda-pll-supply = <&vreg_l1c>;
-
-       status = "okay";
-};
-
-&uart10 {
-       compatible = "qcom,geni-debug-uart";
-       pinctrl-0 = <&qup_uart10_default>;
-       pinctrl-names = "default";
-       status = "okay";
-};
-
-&uart12 {
-       pinctrl-0 = <&qup_uart12_default>;
-       pinctrl-names = "default";
-       status = "okay";
-};
-
-&uart17 {
-       pinctrl-0 = <&qup_uart17_default>;
-       pinctrl-names = "default";
-       status = "okay";
-};
-
-&ufs_mem_hc {
-       reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
-       vcc-supply = <&vreg_l8a>;
-       vcc-max-microamp = <1100000>;
-       vccq-supply = <&vreg_l4c>;
-       vccq-max-microamp = <1200000>;
-
-       status = "okay";
-};
-
-&ufs_mem_phy {
-       vdda-phy-supply = <&vreg_l4a>;
-       vdda-pll-supply = <&vreg_l1c>;
-
-       status = "okay";
-};
-
-&usb_0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&usb0_en_state>;
-
-       status = "okay";
-};
-
-&usb_0_dwc3 {
-       dr_mode = "peripheral";
-};
-
-&usb_0_hsphy {
-       vdda-pll-supply = <&vreg_l7a>;
-       vdda18-supply = <&vreg_l6c>;
-       vdda33-supply = <&vreg_l9a>;
-
-       status = "okay";
-};
-
-&usb_0_qmpphy {
-       vdda-phy-supply = <&vreg_l1c>;
-       vdda-pll-supply = <&vreg_l7a>;
-
-       status = "okay";
-};
-
-&usb_1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&usb1_en_state>;
-
-       status = "okay";
-};
-
-&usb_1_dwc3 {
-       dr_mode = "host";
-};
-
-&usb_1_hsphy {
-       vdda-pll-supply = <&vreg_l7a>;
-       vdda18-supply = <&vreg_l6c>;
-       vdda33-supply = <&vreg_l9a>;
-
-       status = "okay";
-};
-
-&usb_1_qmpphy {
-       vdda-phy-supply = <&vreg_l1c>;
-       vdda-pll-supply = <&vreg_l7a>;
-
-       status = "okay";
-};
-
-&usb_2 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&usb2_en_state>;
-
-       status = "okay";
-};
-
-&usb_2_dwc3 {
-       dr_mode = "host";
-};
-
-&usb_2_hsphy {
-       vdda-pll-supply = <&vreg_l7a>;
-       vdda18-supply = <&vreg_l6c>;
-       vdda33-supply = <&vreg_l9a>;
-
-       status = "okay";
-};
-
-&xo_board_clk {
-       clock-frequency = <38400000>;
-};
diff --git a/src/arm64/qcom/sa8775p-ride.dtsi b/src/arm64/qcom/sa8775p-ride.dtsi
new file mode 100644 (file)
index 0000000..2a61706
--- /dev/null
@@ -0,0 +1,814 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "sa8775p.dtsi"
+#include "sa8775p-pmics.dtsi"
+
+/ {
+       aliases {
+               ethernet0 = &ethernet0;
+               ethernet1 = &ethernet1;
+               i2c11 = &i2c11;
+               i2c18 = &i2c18;
+               serial0 = &uart10;
+               serial1 = &uart12;
+               serial2 = &uart17;
+               spi16 = &spi16;
+               ufshc1 = &ufs_mem_hc;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pmm8654au-rpmh-regulators";
+               qcom,pmic-id = "a";
+
+               vreg_s4a: smps4 {
+                       regulator-name = "vreg_s4a";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1816000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s5a: smps5 {
+                       regulator-name = "vreg_s5a";
+                       regulator-min-microvolt = <1850000>;
+                       regulator-max-microvolt = <1996000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s9a: smps9 {
+                       regulator-name = "vreg_s9a";
+                       regulator-min-microvolt = <535000>;
+                       regulator-max-microvolt = <1120000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4a: ldo4 {
+                       regulator-name = "vreg_l4a";
+                       regulator-min-microvolt = <788000>;
+                       regulator-max-microvolt = <1050000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5a: ldo5 {
+                       regulator-name = "vreg_l5a";
+                       regulator-min-microvolt = <870000>;
+                       regulator-max-microvolt = <950000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6a: ldo6 {
+                       regulator-name = "vreg_l6a";
+                       regulator-min-microvolt = <870000>;
+                       regulator-max-microvolt = <970000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7a: ldo7 {
+                       regulator-name = "vreg_l7a";
+                       regulator-min-microvolt = <720000>;
+                       regulator-max-microvolt = <950000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8a: ldo8 {
+                       regulator-name = "vreg_l8a";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9a: ldo9 {
+                       regulator-name = "vreg_l9a";
+                       regulator-min-microvolt = <2970000>;
+                       regulator-max-microvolt = <3544000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pmm8654au-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vreg_l1c: ldo1 {
+                       regulator-name = "vreg_l1c";
+                       regulator-min-microvolt = <1140000>;
+                       regulator-max-microvolt = <1260000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c: ldo2 {
+                       regulator-name = "vreg_l2c";
+                       regulator-min-microvolt = <900000>;
+                       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_l3c: ldo3 {
+                       regulator-name = "vreg_l3c";
+                       regulator-min-microvolt = <1100000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4c: ldo4 {
+                       regulator-name = "vreg_l4c";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       /*
+                        * FIXME: This should have regulator-allow-set-load but
+                        * we're getting an over-current fault from the PMIC
+                        * when switching to LPM.
+                        */
+               };
+
+               vreg_l5c: ldo5 {
+                       regulator-name = "vreg_l5c";
+                       regulator-min-microvolt = <1100000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6c: ldo6 {
+                       regulator-name = "vreg_l6c";
+                       regulator-min-microvolt = <1620000>;
+                       regulator-max-microvolt = <1980000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7c: ldo7 {
+                       regulator-name = "vreg_l7c";
+                       regulator-min-microvolt = <1620000>;
+                       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_l8c: ldo8 {
+                       regulator-name = "vreg_l8c";
+                       regulator-min-microvolt = <2400000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9c: ldo9 {
+                       regulator-name = "vreg_l9c";
+                       regulator-min-microvolt = <1650000>;
+                       regulator-max-microvolt = <2700000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pmm8654au-rpmh-regulators";
+               qcom,pmic-id = "e";
+
+               vreg_s4e: smps4 {
+                       regulator-name = "vreg_s4e";
+                       regulator-min-microvolt = <970000>;
+                       regulator-max-microvolt = <1520000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s7e: smps7 {
+                       regulator-name = "vreg_s7e";
+                       regulator-min-microvolt = <1010000>;
+                       regulator-max-microvolt = <1170000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s9e: smps9 {
+                       regulator-name = "vreg_s9e";
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <570000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6e: ldo6 {
+                       regulator-name = "vreg_l6e";
+                       regulator-min-microvolt = <1280000>;
+                       regulator-max-microvolt = <1450000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8e: ldo8 {
+                       regulator-name = "vreg_l8e";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1950000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&ethernet0 {
+       phy-handle = <&sgmii_phy0>;
+
+       pinctrl-0 = <&ethernet0_default>;
+       pinctrl-names = "default";
+
+       snps,mtl-rx-config = <&mtl_rx_setup>;
+       snps,mtl-tx-config = <&mtl_tx_setup>;
+       snps,ps-speed = <1000>;
+
+       status = "okay";
+
+       mdio: mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       mtl_rx_setup: rx-queues-config {
+               snps,rx-queues-to-use = <4>;
+               snps,rx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+                       snps,map-to-dma-channel = <0x0>;
+                       snps,route-up;
+                       snps,priority = <0x1>;
+               };
+
+               queue1 {
+                       snps,dcb-algorithm;
+                       snps,map-to-dma-channel = <0x1>;
+                       snps,route-ptp;
+               };
+
+               queue2 {
+                       snps,avb-algorithm;
+                       snps,map-to-dma-channel = <0x2>;
+                       snps,route-avcp;
+               };
+
+               queue3 {
+                       snps,avb-algorithm;
+                       snps,map-to-dma-channel = <0x3>;
+                       snps,priority = <0xc>;
+               };
+       };
+
+       mtl_tx_setup: tx-queues-config {
+               snps,tx-queues-to-use = <4>;
+               snps,tx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+               };
+
+               queue1 {
+                       snps,dcb-algorithm;
+               };
+
+               queue2 {
+                       snps,avb-algorithm;
+                       snps,send_slope = <0x1000>;
+                       snps,idle_slope = <0x1000>;
+                       snps,high_credit = <0x3e800>;
+                       snps,low_credit = <0xffc18000>;
+               };
+
+               queue3 {
+                       snps,avb-algorithm;
+                       snps,send_slope = <0x1000>;
+                       snps,idle_slope = <0x1000>;
+                       snps,high_credit = <0x3e800>;
+                       snps,low_credit = <0xffc18000>;
+               };
+       };
+};
+
+&ethernet1 {
+       phy-handle = <&sgmii_phy1>;
+
+       snps,mtl-rx-config = <&mtl_rx_setup1>;
+       snps,mtl-tx-config = <&mtl_tx_setup1>;
+       snps,ps-speed = <1000>;
+
+       status = "okay";
+
+       mtl_rx_setup1: rx-queues-config {
+               snps,rx-queues-to-use = <4>;
+               snps,rx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+                       snps,map-to-dma-channel = <0x0>;
+                       snps,route-up;
+                       snps,priority = <0x1>;
+               };
+
+               queue1 {
+                       snps,dcb-algorithm;
+                       snps,map-to-dma-channel = <0x1>;
+                       snps,route-ptp;
+               };
+
+               queue2 {
+                       snps,avb-algorithm;
+                       snps,map-to-dma-channel = <0x2>;
+                       snps,route-avcp;
+               };
+
+               queue3 {
+                       snps,avb-algorithm;
+                       snps,map-to-dma-channel = <0x3>;
+                       snps,priority = <0xc>;
+               };
+       };
+
+       mtl_tx_setup1: tx-queues-config {
+               snps,tx-queues-to-use = <4>;
+               snps,tx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+               };
+
+               queue1 {
+                       snps,dcb-algorithm;
+               };
+
+               queue2 {
+                       snps,avb-algorithm;
+                       snps,send_slope = <0x1000>;
+                       snps,idle_slope = <0x1000>;
+                       snps,high_credit = <0x3e800>;
+                       snps,low_credit = <0xffc18000>;
+               };
+
+               queue3 {
+                       snps,avb-algorithm;
+                       snps,send_slope = <0x1000>;
+                       snps,idle_slope = <0x1000>;
+                       snps,high_credit = <0x3e800>;
+                       snps,low_credit = <0xffc18000>;
+               };
+       };
+};
+
+&i2c11 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&qup_i2c11_default>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&i2c18 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&qup_i2c18_default>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pmm8654au_0_gpios {
+       gpio-line-names = "DS_EN",
+                         "POFF_COMPLETE",
+                         "UFS0_VER_ID",
+                         "FAST_POFF",
+                         "DBU1_PON_DONE",
+                         "AOSS_SLEEP",
+                         "CAM_DES0_EN",
+                         "CAM_DES1_EN",
+                         "CAM_DES2_EN",
+                         "CAM_DES3_EN",
+                         "UEFI",
+                         "ANALOG_PON_OPT";
+};
+
+&pmm8654au_0_pon_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
+&pmm8654au_1_gpios {
+       gpio-line-names = "PMIC_C_ID0",
+                         "PMIC_C_ID1",
+                         "UFS1_VER_ID",
+                         "IPA_PWR",
+                         "",
+                         "WLAN_DBU4_EN",
+                         "WLAN_EN",
+                         "BT_EN",
+                         "USB2_PWR_EN",
+                         "USB2_FAULT";
+
+       usb2_en_state: usb2-en-state {
+               pins = "gpio9";
+               function = "normal";
+               output-high;
+               power-source = <0>;
+       };
+};
+
+&pmm8654au_2_gpios {
+       gpio-line-names = "PMIC_E_ID0",
+                         "PMIC_E_ID1",
+                         "USB0_PWR_EN",
+                         "USB0_FAULT",
+                         "SENSOR_IRQ_1",
+                         "SENSOR_IRQ_2",
+                         "SENSOR_RST",
+                         "SGMIIO0_RST",
+                         "SGMIIO1_RST",
+                         "USB1_PWR_ENABLE",
+                         "USB1_FAULT",
+                         "VMON_SPX8";
+
+       usb0_en_state: usb0-en-state {
+               pins = "gpio3";
+               function = "normal";
+               output-high;
+               power-source = <0>;
+       };
+
+       usb1_en_state: usb1-en-state {
+               pins = "gpio10";
+               function = "normal";
+               output-high;
+               power-source = <0>;
+       };
+};
+
+&pmm8654au_3_gpios {
+       gpio-line-names = "PMIC_G_ID0",
+                         "PMIC_G_ID1",
+                         "GNSS_RST",
+                         "GNSS_EN",
+                         "GNSS_BOOT_MODE";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&qupv3_id_2 {
+       status = "okay";
+};
+
+&serdes0 {
+       phy-supply = <&vreg_l5a>;
+       status = "okay";
+};
+
+&serdes1 {
+       phy-supply = <&vreg_l5a>;
+       status = "okay";
+};
+
+&sleep_clk {
+       clock-frequency = <32764>;
+};
+
+&spi16 {
+       pinctrl-0 = <&qup_spi16_default>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&tlmm {
+       ethernet0_default: ethernet0-default-state {
+               ethernet0_mdc: ethernet0-mdc-pins {
+                       pins = "gpio8";
+                       function = "emac0_mdc";
+                       drive-strength = <16>;
+                       bias-pull-up;
+               };
+
+               ethernet0_mdio: ethernet0-mdio-pins {
+                       pins = "gpio9";
+                       function = "emac0_mdio";
+                       drive-strength = <16>;
+                       bias-pull-up;
+               };
+       };
+
+       qup_uart10_default: qup-uart10-state {
+               pins = "gpio46", "gpio47";
+               function = "qup1_se3";
+       };
+
+       qup_spi16_default: qup-spi16-state {
+               pins = "gpio86", "gpio87", "gpio88", "gpio89";
+               function = "qup2_se2";
+               drive-strength = <6>;
+               bias-disable;
+       };
+
+       qup_i2c11_default: qup-i2c11-state {
+               pins = "gpio48", "gpio49";
+               function = "qup1_se4";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       qup_i2c18_default: qup-i2c18-state {
+               pins = "gpio95", "gpio96";
+               function = "qup2_se4";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
+       qup_uart12_default: qup-uart12-state {
+               qup_uart12_cts: qup-uart12-cts-pins {
+                       pins = "gpio52";
+                       function = "qup1_se5";
+                       bias-disable;
+               };
+
+               qup_uart12_rts: qup-uart12-rts-pins {
+                       pins = "gpio53";
+                       function = "qup1_se5";
+                       bias-pull-down;
+               };
+
+               qup_uart12_tx: qup-uart12-tx-pins {
+                       pins = "gpio54";
+                       function = "qup1_se5";
+                       bias-pull-up;
+               };
+
+               qup_uart12_rx: qup-uart12-rx-pins {
+                       pins = "gpio55";
+                       function = "qup1_se5";
+                       bias-pull-down;
+               };
+       };
+
+       qup_uart17_default: qup-uart17-state {
+               qup_uart17_cts: qup-uart17-cts-pins {
+                       pins = "gpio91";
+                       function = "qup2_se3";
+                       bias-disable;
+               };
+
+               qup_uart17_rts: qup0-uart17-rts-pins {
+                       pins = "gpio92";
+                       function = "qup2_se3";
+                       bias-pull-down;
+               };
+
+               qup_uart17_tx: qup0-uart17-tx-pins {
+                       pins = "gpio93";
+                       function = "qup2_se3";
+                       bias-pull-up;
+               };
+
+               qup_uart17_rx: qup0-uart17-rx-pins {
+                       pins = "gpio94";
+                       function = "qup2_se3";
+                       bias-pull-down;
+               };
+       };
+
+       pcie0_default_state: pcie0-default-state {
+               perst-pins {
+                       pins = "gpio2";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+
+               clkreq-pins {
+                       pins = "gpio1";
+                       function = "pcie0_clkreq";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               wake-pins {
+                       pins = "gpio0";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+
+       pcie1_default_state: pcie1-default-state {
+               perst-pins {
+                       pins = "gpio4";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+
+               clkreq-pins {
+                       pins = "gpio3";
+                       function = "pcie1_clkreq";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+
+               wake-pins {
+                       pins = "gpio5";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
+};
+
+&pcie0 {
+       perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie0_default_state>;
+
+       status = "okay";
+};
+
+&pcie1 {
+       perst-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 5 GPIO_ACTIVE_HIGH>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie1_default_state>;
+
+       status = "okay";
+};
+
+&pcie0_phy {
+       vdda-phy-supply = <&vreg_l5a>;
+       vdda-pll-supply = <&vreg_l1c>;
+
+       status = "okay";
+};
+
+&pcie1_phy {
+       vdda-phy-supply = <&vreg_l5a>;
+       vdda-pll-supply = <&vreg_l1c>;
+
+       status = "okay";
+};
+
+&uart10 {
+       compatible = "qcom,geni-debug-uart";
+       pinctrl-0 = <&qup_uart10_default>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&uart12 {
+       pinctrl-0 = <&qup_uart12_default>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&uart17 {
+       pinctrl-0 = <&qup_uart17_default>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 149 GPIO_ACTIVE_LOW>;
+       vcc-supply = <&vreg_l8a>;
+       vcc-max-microamp = <1100000>;
+       vccq-supply = <&vreg_l4c>;
+       vccq-max-microamp = <1200000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l4a>;
+       vdda-pll-supply = <&vreg_l1c>;
+
+       status = "okay";
+};
+
+&usb_0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb0_en_state>;
+
+       status = "okay";
+};
+
+&usb_0_dwc3 {
+       dr_mode = "peripheral";
+};
+
+&usb_0_hsphy {
+       vdda-pll-supply = <&vreg_l7a>;
+       vdda18-supply = <&vreg_l6c>;
+       vdda33-supply = <&vreg_l9a>;
+
+       status = "okay";
+};
+
+&usb_0_qmpphy {
+       vdda-phy-supply = <&vreg_l1c>;
+       vdda-pll-supply = <&vreg_l7a>;
+
+       status = "okay";
+};
+
+&usb_1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb1_en_state>;
+
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "host";
+};
+
+&usb_1_hsphy {
+       vdda-pll-supply = <&vreg_l7a>;
+       vdda18-supply = <&vreg_l6c>;
+       vdda33-supply = <&vreg_l9a>;
+
+       status = "okay";
+};
+
+&usb_1_qmpphy {
+       vdda-phy-supply = <&vreg_l1c>;
+       vdda-pll-supply = <&vreg_l7a>;
+
+       status = "okay";
+};
+
+&usb_2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&usb2_en_state>;
+
+       status = "okay";
+};
+
+&usb_2_dwc3 {
+       dr_mode = "host";
+};
+
+&usb_2_hsphy {
+       vdda-pll-supply = <&vreg_l7a>;
+       vdda18-supply = <&vreg_l6c>;
+       vdda33-supply = <&vreg_l9a>;
+
+       status = "okay";
+};
+
+&xo_board_clk {
+       clock-frequency = <38400000>;
+};
index 1b3dc0ece54dee1bb3c13271db1a241269d2ebae..23f1b2e5e62471396d8dd5eaf5ecb23e01a5e458 100644 (file)
                };
        };
 
+       dummy-sink {
+               compatible = "arm,coresight-dummy-sink";
+
+               in-ports {
+                       port {
+                               eud_in: endpoint {
+                                       remote-endpoint =
+                                       <&swao_rep_out1>;
+                               };
+                       };
+               };
+       };
+
        firmware {
                scm {
                        compatible = "qcom,scm-sa8775p", "qcom,scm";
+                       memory-region = <&tz_ffi_mem>;
                };
        };
 
                        no-map;
                };
 
+               tz_ffi_mem: tz-ffi@91c00000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x0 0x91c00000 0x0 0x1400000>;
+                       no-map;
+               };
+
                lpass_machine_learning_mem: lpass-machine-learning@93b00000 {
                        reg = <0x0 0x93b00000 0x0 0xf00000>;
                        no-map;
                        clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
                };
 
+               stm: stm@4002000 {
+                       compatible = "arm,coresight-stm", "arm,primecell";
+                       reg = <0x0 0x4002000 0x0 0x1000>,
+                                 <0x0 0x16280000 0x0 0x180000>;
+                       reg-names = "stm-base", "stm-stimulus-base";
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       out-ports {
+                               port {
+                                       stm_out: endpoint {
+                                               remote-endpoint =
+                                               <&funnel0_in7>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@4003000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x4003000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <32>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       qdss_tpdm0_out: endpoint {
+                                               remote-endpoint =
+                                               <&qdss_tpda_in0>;
+                                       };
+                               };
+                       };
+               };
+
+               tpda@4004000 {
+                       compatible = "qcom,coresight-tpda", "arm,primecell";
+                       reg = <0x0 0x4004000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       out-ports {
+                               port {
+                                       qdss_tpda_out: endpoint {
+                                               remote-endpoint =
+                                               <&funnel0_in6>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       qdss_tpda_in0: endpoint {
+                                               remote-endpoint =
+                                               <&qdss_tpdm0_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       qdss_tpda_in1: endpoint {
+                                               remote-endpoint =
+                                               <&qdss_tpdm1_out>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@400f000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x400f000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <32>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       qdss_tpdm1_out: endpoint {
+                                               remote-endpoint =
+                                               <&qdss_tpda_in1>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@4041000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x0 0x4041000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       out-ports {
+                               port {
+                                       funnel0_out: endpoint {
+                                               remote-endpoint =
+                                               <&qdss_funnel_in0>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@6 {
+                                       reg = <6>;
+                                       funnel0_in6: endpoint {
+                                               remote-endpoint =
+                                               <&qdss_tpda_out>;
+                                       };
+                               };
+
+                               port@7 {
+                                       reg = <7>;
+                                       funnel0_in7: endpoint {
+                                               remote-endpoint =
+                                               <&stm_out>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@4042000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x0 0x4042000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       out-ports {
+                               port {
+                                       funnel1_out: endpoint {
+                                               remote-endpoint =
+                                               <&qdss_funnel_in1>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@4 {
+                                       reg = <4>;
+                                       funnel1_in4: endpoint {
+                                               remote-endpoint =
+                                               <&apss_funnel1_out>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@4045000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x0 0x4045000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       out-ports {
+                               port {
+                                       qdss_funnel_out: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_funnel_in7>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       qdss_funnel_in0: endpoint {
+                                               remote-endpoint =
+                                               <&funnel0_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       qdss_funnel_in1: endpoint {
+                                               remote-endpoint =
+                                               <&funnel1_out>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@4b04000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x0 0x4b04000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       out-ports {
+                               port {
+                                       aoss_funnel_out: endpoint {
+                                               remote-endpoint =
+                                               <&etf0_in>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@6 {
+                                       reg = <6>;
+                                       aoss_funnel_in6: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_tpda_out>;
+                                       };
+                               };
+
+                               port@7 {
+                                       reg = <7>;
+                                       aoss_funnel_in7: endpoint {
+                                               remote-endpoint =
+                                               <&qdss_funnel_out>;
+                                       };
+                               };
+                       };
+               };
+
+               tmc_etf: tmc@4b05000 {
+                       compatible = "arm,coresight-tmc", "arm,primecell";
+                       reg = <0x0 0x4b05000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       out-ports {
+                               port {
+                                       etf0_out: endpoint {
+                                               remote-endpoint =
+                                               <&swao_rep_in>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               port {
+                                       etf0_in: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_funnel_out>;
+                                       };
+                               };
+                       };
+               };
+
+               replicator@4b06000 {
+                       compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
+                       reg = <0x0 0x4b06000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       out-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@1 {
+                                       reg = <1>;
+                                       swao_rep_out1: endpoint {
+                                               remote-endpoint =
+                                               <&eud_in>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               port {
+                                       swao_rep_in: endpoint {
+                                               remote-endpoint =
+                                               <&etf0_out>;
+                                       };
+                               };
+                       };
+               };
+
+               tpda@4b08000 {
+                       compatible = "qcom,coresight-tpda", "arm,primecell";
+                       reg = <0x0 0x4b08000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       out-ports {
+                               port {
+                                       aoss_tpda_out: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_funnel_in6>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       aoss_tpda_in0: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_tpdm0_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       aoss_tpda_in1: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_tpdm1_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       aoss_tpda_in2: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_tpdm2_out>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <3>;
+                                       aoss_tpda_in3: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_tpdm3_out>;
+                                       };
+                               };
+
+                               port@4 {
+                                       reg = <4>;
+                                       aoss_tpda_in4: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_tpdm4_out>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@4b09000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x4b09000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <64>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       aoss_tpdm0_out: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_tpda_in0>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@4b0a000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x4b0a000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <64>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       aoss_tpdm1_out: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_tpda_in1>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@4b0b000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x4b0b000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <64>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       aoss_tpdm2_out: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_tpda_in2>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@4b0c000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x4b0c000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <64>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       aoss_tpdm3_out: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_tpda_in3>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@4b0d000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x4b0d000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,dsb-element-bits = <32>;
+                       qcom,dsb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       aoss_tpdm4_out: endpoint {
+                                               remote-endpoint =
+                                               <&aoss_tpda_in4>;
+                                       };
+                               };
+                       };
+               };
+
+               aoss_cti: cti@4b13000 {
+                       compatible = "arm,coresight-cti", "arm,primecell";
+                       reg = <0x0 0x4b13000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+               };
+
+               etm@6040000 {
+                       compatible = "arm,primecell";
+                       reg = <0x0 0x6040000 0x0 0x1000>;
+                       cpu = <&CPU0>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+                       arm,coresight-loses-context-with-cpu;
+                       qcom,skip-power-up;
+
+                       out-ports {
+                               port {
+                                       etm0_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_funnel0_in0>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@6140000 {
+                       compatible = "arm,primecell";
+                       reg = <0x0 0x6140000 0x0 0x1000>;
+                       cpu = <&CPU1>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+                       arm,coresight-loses-context-with-cpu;
+                       qcom,skip-power-up;
+
+                       out-ports {
+                               port {
+                                       etm1_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_funnel0_in1>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@6240000 {
+                       compatible = "arm,primecell";
+                       reg = <0x0 0x6240000 0x0 0x1000>;
+                       cpu = <&CPU2>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+                       arm,coresight-loses-context-with-cpu;
+                       qcom,skip-power-up;
+
+                       out-ports {
+                               port {
+                                       etm2_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_funnel0_in2>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@6340000 {
+                       compatible = "arm,primecell";
+                       reg = <0x0 0x6340000 0x0 0x1000>;
+                       cpu = <&CPU3>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+                       arm,coresight-loses-context-with-cpu;
+                       qcom,skip-power-up;
+
+                       out-ports {
+                               port {
+                                       etm3_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_funnel0_in3>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@6440000 {
+                       compatible = "arm,primecell";
+                       reg = <0x0 0x6440000 0x0 0x1000>;
+                       cpu = <&CPU4>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+                       arm,coresight-loses-context-with-cpu;
+                       qcom,skip-power-up;
+
+                       out-ports {
+                               port {
+                                       etm4_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_funnel0_in4>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@6540000 {
+                       compatible = "arm,primecell";
+                       reg = <0x0 0x6540000 0x0 0x1000>;
+                       cpu = <&CPU5>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+                       arm,coresight-loses-context-with-cpu;
+                       qcom,skip-power-up;
+
+                       out-ports {
+                               port {
+                                       etm5_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_funnel0_in5>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@6640000 {
+                       compatible = "arm,primecell";
+                       reg = <0x0 0x6640000 0x0 0x1000>;
+                       cpu = <&CPU6>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+                       arm,coresight-loses-context-with-cpu;
+                       qcom,skip-power-up;
+
+                       out-ports {
+                               port {
+                                       etm6_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_funnel0_in6>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@6740000 {
+                       compatible = "arm,primecell";
+                       reg = <0x0 0x6740000 0x0 0x1000>;
+                       cpu = <&CPU7>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+                       arm,coresight-loses-context-with-cpu;
+                       qcom,skip-power-up;
+
+                       out-ports {
+                               port {
+                                       etm7_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_funnel0_in7>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@6800000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x0 0x6800000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       out-ports {
+                               port {
+                                       apss_funnel0_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_funnel1_in0>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       apss_funnel0_in0: endpoint {
+                                               remote-endpoint =
+                                               <&etm0_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       apss_funnel0_in1: endpoint {
+                                               remote-endpoint =
+                                               <&etm1_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       apss_funnel0_in2: endpoint {
+                                               remote-endpoint =
+                                               <&etm2_out>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <3>;
+                                       apss_funnel0_in3: endpoint {
+                                               remote-endpoint =
+                                               <&etm3_out>;
+                                       };
+                               };
+
+                               port@4 {
+                                       reg = <4>;
+                                       apss_funnel0_in4: endpoint {
+                                               remote-endpoint =
+                                               <&etm4_out>;
+                                       };
+                               };
+
+                               port@5 {
+                                       reg = <5>;
+                                       apss_funnel0_in5: endpoint {
+                                               remote-endpoint =
+                                               <&etm5_out>;
+                                       };
+                               };
+
+                               port@6 {
+                                       reg = <6>;
+                                       apss_funnel0_in6: endpoint {
+                                               remote-endpoint =
+                                               <&etm6_out>;
+                                       };
+                               };
+
+                               port@7 {
+                                       reg = <7>;
+                                       apss_funnel0_in7: endpoint {
+                                               remote-endpoint =
+                                               <&etm7_out>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@6810000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0x0 0x6810000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       out-ports {
+                               port {
+                                       apss_funnel1_out: endpoint {
+                                               remote-endpoint =
+                                               <&funnel1_in4>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       apss_funnel1_in0: endpoint {
+                                               remote-endpoint =
+                                               <&apss_funnel0_out>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <3>;
+                                       apss_funnel1_in3: endpoint {
+                                               remote-endpoint =
+                                               <&apss_tpda_out>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@6860000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x6860000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <64>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       apss_tpdm3_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_tpda_in3>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@6861000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x6861000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,dsb-element-bits = <32>;
+                       qcom,dsb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       apss_tpdm4_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_tpda_in4>;
+                                       };
+                               };
+                       };
+               };
+
+               tpda@6863000 {
+                       compatible = "qcom,coresight-tpda", "arm,primecell";
+                       reg = <0x0 0x6863000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       out-ports {
+                               port {
+                                       apss_tpda_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_funnel1_in3>;
+                                       };
+                               };
+                       };
+
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       apss_tpda_in0: endpoint {
+                                               remote-endpoint =
+                                               <&apss_tpdm0_out>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       apss_tpda_in1: endpoint {
+                                               remote-endpoint =
+                                               <&apss_tpdm1_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       apss_tpda_in2: endpoint {
+                                               remote-endpoint =
+                                               <&apss_tpdm2_out>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <3>;
+                                       apss_tpda_in3: endpoint {
+                                               remote-endpoint =
+                                               <&apss_tpdm3_out>;
+                                       };
+                               };
+
+                               port@4 {
+                                       reg = <4>;
+                                       apss_tpda_in4: endpoint {
+                                               remote-endpoint =
+                                               <&apss_tpdm4_out>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@68a0000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x68a0000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <32>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       apss_tpdm0_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_tpda_in0>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@68b0000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x68b0000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,cmb-element-bits = <32>;
+                       qcom,cmb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       apss_tpdm1_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_tpda_in1>;
+                                       };
+                               };
+                       };
+               };
+
+               tpdm@68c0000 {
+                       compatible = "qcom,coresight-tpdm", "arm,primecell";
+                       reg = <0x0 0x68c0000 0x0 0x1000>;
+
+                       clocks = <&aoss_qmp>;
+                       clock-names = "apb_pclk";
+
+                       qcom,dsb-element-bits = <32>;
+                       qcom,dsb-msrs-num = <32>;
+
+                       out-ports {
+                               port {
+                                       apss_tpdm2_out: endpoint {
+                                               remote-endpoint =
+                                               <&apss_tpda_in2>;
+                                       };
+                               };
+                       };
+               };
+
                usb_0_hsphy: phy@88e4000 {
                        compatible = "qcom,sa8775p-usb-hs-phy",
                                     "qcom,usb-snps-hs-5nm-phy";
                        status = "disabled";
                };
 
+               llcc: system-cache-controller@9200000 {
+                       compatible = "qcom,sa8775p-llcc";
+                       reg = <0x0 0x09200000 0x0 0x80000>,
+                             <0x0 0x09300000 0x0 0x80000>,
+                             <0x0 0x09400000 0x0 0x80000>,
+                             <0x0 0x09500000 0x0 0x80000>,
+                             <0x0 0x09600000 0x0 0x80000>,
+                             <0x0 0x09700000 0x0 0x80000>,
+                             <0x0 0x09a00000 0x0 0x80000>;
+                       reg-names = "llcc0_base",
+                                   "llcc1_base",
+                                   "llcc2_base",
+                                   "llcc3_base",
+                                   "llcc4_base",
+                                   "llcc5_base",
+                                   "llcc_broadcast_base";
+                       interrupts = <GIC_SPI 580 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                pdc: interrupt-controller@b220000 {
                        compatible = "qcom,sa8775p-pdc", "qcom,pdc";
                        reg = <0x0 0x0b220000 0x0 0x30000>,
                        wakeup-parent = <&pdc>;
                };
 
+               sram: sram@146d8000 {
+                       compatible = "qcom,sa8775p-imem", "syscon", "simple-mfd";
+                       reg = <0x0 0x146d8000 0x0 0x1000>;
+                       ranges = <0x0 0x0 0x146d8000 0x1000>;
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       pil-reloc@94c {
+                               compatible = "qcom,pil-reloc-info";
+                               reg = <0x94c 0xc8>;
+                       };
+               };
+
                apps_smmu: iommu@15000000 {
                        compatible = "qcom,sa8775p-smmu-500", "qcom,smmu-500", "arm,mmu-500";
                        reg = <0x0 0x15000000 0x0 0x100000>;
                        phy-names = "serdes";
 
                        iommus = <&apps_smmu 0x140 0xf>;
+                       dma-coherent;
 
                        snps,tso;
                        snps,pbl = <32>;
                        phy-names = "serdes";
 
                        iommus = <&apps_smmu 0x120 0xf>;
+                       dma-coherent;
 
                        snps,tso;
                        snps,pbl = <32>;
 
        thermal-zones {
                aoss-0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 0>;
 
                        trips {
 
                cpu-0-0-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 1>;
 
 
                cpu-0-1-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 2>;
 
 
                cpu-0-2-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 3>;
 
 
                cpu-0-3-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 4>;
 
 
                gpuss-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 5>;
 
 
                gpuss-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 6>;
 
 
                gpuss-2-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 7>;
 
                };
 
                audio-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 8>;
 
                        trips {
                };
 
                camss-0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 9>;
 
                        trips {
                };
 
                pcie-0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 10>;
 
                        trips {
                };
 
                cpuss-0-0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 11>;
 
                        trips {
                };
 
                aoss-1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 0>;
 
                        trips {
 
                cpu-0-0-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 1>;
 
 
                cpu-0-1-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 2>;
 
 
                cpu-0-2-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 3>;
 
 
                cpu-0-3-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 4>;
 
 
                gpuss-3-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 5>;
 
 
                gpuss-4-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 6>;
 
 
                gpuss-5-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 7>;
 
                };
 
                video-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 8>;
 
                        trips {
                };
 
                camss-1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 9>;
 
                        trips {
                };
 
                pcie-1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 10>;
 
                        trips {
                };
 
                cpuss-0-1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 11>;
 
                        trips {
                };
 
                aoss-2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens2 0>;
 
                        trips {
 
                cpu-1-0-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens2 1>;
 
 
                cpu-1-1-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens2 2>;
 
 
                cpu-1-2-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens2 3>;
 
 
                cpu-1-3-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens2 4>;
 
 
                nsp-0-0-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens2 5>;
 
 
                nsp-0-1-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens2 6>;
 
 
                nsp-0-2-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens2 7>;
 
 
                nsp-1-0-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens2 8>;
 
 
                nsp-1-1-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens2 9>;
 
 
                nsp-1-2-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens2 10>;
 
                };
 
                ddrss-0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens2 11>;
 
                        trips {
                };
 
                cpuss-1-0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens2 12>;
 
                        trips {
                };
 
                aoss-3-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens3 0>;
 
                        trips {
 
                cpu-1-0-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens3 1>;
 
 
                cpu-1-1-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens3 2>;
 
 
                cpu-1-2-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens3 3>;
 
 
                cpu-1-3-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens3 4>;
 
 
                nsp-0-0-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens3 5>;
 
 
                nsp-0-1-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens3 6>;
 
 
                nsp-0-2-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens3 7>;
 
 
                nsp-1-0-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens3 8>;
 
 
                nsp-1-1-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens3 9>;
 
 
                nsp-1-2-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens3 10>;
 
                };
 
                ddrss-1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens3 11>;
 
                        trips {
                };
 
                cpuss-1-1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens3 12>;
 
                        trips {
                };
        };
 
+       pcie0_ep: pcie-ep@1c00000 {
+               compatible = "qcom,sa8775p-pcie-ep";
+               reg = <0x0 0x01c00000 0x0 0x3000>,
+                     <0x0 0x40000000 0x0 0xf20>,
+                     <0x0 0x40000f20 0x0 0xa8>,
+                     <0x0 0x40001000 0x0 0x4000>,
+                     <0x0 0x40200000 0x0 0x100000>,
+                     <0x0 0x01c03000 0x0 0x1000>,
+                     <0x0 0x40005000 0x0 0x2000>;
+               reg-names = "parf", "dbi", "elbi", "atu", "addr_space",
+                           "mmio", "dma";
+
+               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";
+
+               interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 630 IRQ_TYPE_LEVEL_HIGH>;
+
+               interrupt-names = "global", "doorbell", "dma";
+
+               interconnects = <&pcie_anoc MASTER_PCIE_0 0 &mc_virt SLAVE_EBI1 0>,
+                               <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_PCIE_0 0>;
+               interconnect-names = "pcie-mem", "cpu-pcie";
+
+               dma-coherent;
+               iommus = <&pcie_smmu 0x0000 0x7f>;
+               resets = <&gcc GCC_PCIE_0_BCR>;
+               reset-names = "core";
+               power-domains = <&gcc PCIE_0_GDSC>;
+               phys = <&pcie0_phy>;
+               phy-names = "pciephy";
+               max-link-speed = <3>; /* FIXME: Limiting the Gen speed due to stability issues */
+               num-lanes = <2>;
+
+               status = "disabled";
+       };
+
        pcie0_phy: phy@1c04000 {
                compatible = "qcom,sa8775p-qmp-gen4x2-pcie-phy";
                reg = <0x0 0x1c04000 0x0 0x2000>;
                };
        };
 
+       pcie1_ep: pcie-ep@1c10000 {
+               compatible = "qcom,sa8775p-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";
+
+               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";
+
+               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";
+
+               interconnects = <&pcie_anoc MASTER_PCIE_1 0 &mc_virt SLAVE_EBI1 0>,
+                               <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_PCIE_1 0>;
+               interconnect-names = "pcie-mem", "cpu-pcie";
+
+               dma-coherent;
+               iommus = <&pcie_smmu 0x80 0x7f>;
+               resets = <&gcc GCC_PCIE_1_BCR>;
+               reset-names = "core";
+               power-domains = <&gcc PCIE_1_GDSC>;
+               phys = <&pcie1_phy>;
+               phy-names = "pciephy";
+               max-link-speed = <3>; /* FIXME: Limiting the Gen speed due to stability issues */
+               num-lanes = <4>;
+
+               status = "disabled";
+       };
+
        pcie1_phy: phy@1c14000 {
                compatible = "qcom,sa8775p-qmp-gen4x4-pcie-phy";
                reg = <0x0 0x1c14000 0x0 0x4000>;
diff --git a/src/arm64/qcom/sc7180-trogdor-clamshell.dtsi b/src/arm64/qcom/sc7180-trogdor-clamshell.dtsi
new file mode 100644 (file)
index 0000000..d91533b
--- /dev/null
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Google Trogdor dts fragment for clamshells
+ *
+ * Copyright 2024 Google LLC.
+ */
+
+/* This file must be included after sc7180-trogdor.dtsi to modify cros_ec */
+#include <arm/cros-ec-keyboard.dtsi>
index 7765c8f64905034d605e6eba894bc566c66e0825..3c124bbe2f4c94989157aaa7de2a0dc78356f3e3 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
+#include "sc7180-trogdor-detachable.dtsi"
 
 /* Deleted nodes from sc7180-trogdor.dtsi */
 
@@ -25,7 +26,6 @@
        thermal-zones {
                skin_temp_thermal: skin-temp-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm6150_adc_tm 1>;
                        sustainable-power = <965>;
 };
 
 &cros_ec {
-       keyboard-controller {
-               compatible = "google,cros-ec-keyb-switches";
-       };
-
        cros_ec_proximity: proximity {
                compatible = "google,cros-ec-mkbp-proximity";
                label = "proximity-wifi";
diff --git a/src/arm64/qcom/sc7180-trogdor-detachable.dtsi b/src/arm64/qcom/sc7180-trogdor-detachable.dtsi
new file mode 100644 (file)
index 0000000..7c5d8a5
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Google Trogdor dts fragment for detachables
+ *
+ * Copyright 2024 Google LLC.
+ */
+
+/* This file must be included after sc7180-trogdor.dtsi to modify cros_ec */
+&cros_ec {
+       keyboard-controller {
+               compatible = "google,cros-ec-keyb-switches";
+       };
+};
index 2ba3bbf3b9add2bea1d99cb70fe525a6fc511510..b2df22faafe8890da1fc9f234e3c17474a453f28 100644 (file)
@@ -5,9 +5,8 @@
  * Copyright 2021 Google LLC.
  */
 
-/* This file must be included after sc7180-trogdor.dtsi */
-
 #include "sc7180-trogdor-rt5682i-sku.dtsi"
+#include "sc7180-trogdor-detachable.dtsi"
 
 / {
        /* BOARD-SPECIFIC TOP LEVEL NODES */
@@ -45,7 +44,6 @@
        thermal-zones {
                skin_temp_thermal: skin-temp-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm6150_adc_tm 1>;
                        sustainable-power = <965>;
@@ -135,12 +133,6 @@ ap_ts_pen_1v8: &i2c4 {
        status = "okay";
 };
 
-&cros_ec {
-       keyboard-controller {
-               compatible = "google,cros-ec-keyb-switches";
-       };
-};
-
 &panel {
        compatible = "samsung,atna33xc20";
        enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
index d6db7d83adcf59431484b399dfd61ee11dae739d..655bea928e52a42498a3e7a5ce7a2774160f3b04 100644 (file)
@@ -9,7 +9,7 @@
 
 #include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-parade-ps8640.dtsi"
-#include <arm/cros-ec-keyboard.dtsi>
+#include "sc7180-trogdor-clamshell.dtsi"
 #include "sc7180-trogdor-lte-sku.dtsi"
 #include "sc7180-trogdor-rt5682s-sku.dtsi"
 
index 919bfaea6189c3f700813ce26b5d206e97fc4a95..340cb119d0a0d25b6fdb798cc85d26349c27aca4 100644 (file)
@@ -12,6 +12,6 @@
        compatible = "google,lazor-rev1-sku2", "google,lazor-rev2-sku2", "qcom,sc7180";
 };
 
-&keyboard_backlight {
+&pwmleds {
        status = "okay";
 };
index eb20157f6af98746fe84b70e9ddf406f296a13d3..d45e60e3eb9ebd248c38d14929730c40f4f2cfa6 100644 (file)
@@ -17,6 +17,6 @@
        status = "okay";
 };
 
-&keyboard_backlight {
+&pwmleds {
        status = "okay";
 };
index 45d34718a1bce351910a543ef0eed0228c10b9fe..e906ce877b8cd36599640a30a63000b948611a06 100644 (file)
@@ -18,6 +18,6 @@
        compatible = "google,lazor-sku2", "qcom,sc7180";
 };
 
-&keyboard_backlight {
+&pwmleds {
        status = "okay";
 };
index 79028d0dd1b0c15ec214b93c5370428c91cfc64a..4b9ee15b09f6b3d105bff6c44f6b43b04139642a 100644 (file)
@@ -22,6 +22,6 @@
        status = "okay";
 };
 
-&keyboard_backlight {
+&pwmleds {
        status = "okay";
 };
index 3459b81c56283f314e0ebf474eb0355c738c2a7a..a960553f3994627ab5ab5509198342a632ff5f0a 100644 (file)
@@ -21,6 +21,6 @@
                "qcom,sc7180";
 };
 
-&keyboard_backlight {
+&pwmleds {
        status = "okay";
 };
index ff8f47da109d817ca9f3b6b958f012de09f0364a..82bd9ed7e21a92be618b47d90351e8fb451fcb6b 100644 (file)
@@ -25,6 +25,6 @@
        status = "okay";
 };
 
-&keyboard_backlight {
+&pwmleds {
        status = "okay";
 };
index faf527972977a162300776e13829a7daa74c5306..6278c1715d3fde650512a7a472b2a7f912258a39 100644 (file)
@@ -18,6 +18,6 @@
        compatible = "google,lazor-rev9-sku2", "qcom,sc7180";
 };
 
-&keyboard_backlight {
+&pwmleds {
        status = "okay";
 };
index d737fd0637fbc556d3fd83e1ff1ff3b563ff2546..0ec1697ae2c97372b14a916bd6991964ad3d7856 100644 (file)
@@ -22,6 +22,6 @@
        status = "okay";
 };
 
-&keyboard_backlight {
+&pwmleds {
        status = "okay";
 };
index e9f213d2771184d04244837b007009eaaf62a861..c3fd6760de7a8ef0ff0e7d5cd793cac358aba798 100644 (file)
@@ -5,8 +5,7 @@
  * Copyright 2020 Google LLC.
  */
 
-/* This file must be included after sc7180-trogdor.dtsi */
-#include <arm/cros-ec-keyboard.dtsi>
+#include "sc7180-trogdor-clamshell.dtsi"
 
 &ap_sar_sensor {
        semtech,cs0-ground;
index 8823edbb4d6e2b819bc5959c751bf783747377e6..cc2c5610a2798669bc369d2f81bd162cbe8527b2 100644 (file)
@@ -5,8 +5,7 @@
  * Copyright 2021 Google LLC.
  */
 
-/* This file must be included after sc7180-trogdor.dtsi */
-#include <arm/cros-ec-keyboard.dtsi>
+#include "sc7180-trogdor-clamshell.dtsi"
 
 &ap_sar_sensor {
        compatible = "semtech,sx9324";
@@ -83,6 +82,8 @@
        gpio = <&tlmm 67 GPIO_ACTIVE_HIGH>;
 };
 
+/* PINCTRL - modifications to sc7180-trogdor.dtsi */
+
 &en_pp3300_dx_edp {
        pins = "gpio67";
 };
index 067813f5f437e676926f7d038916e425d4af0c2e..ac8d4589e3fb74b9d9105a8ca2b0cce72de22d86 100644 (file)
@@ -6,17 +6,13 @@
  */
 
 #include "sc7180-trogdor.dtsi"
-/* Must come after sc7180-trogdor.dtsi to modify cros_ec */
-#include <arm/cros-ec-keyboard.dtsi>
+#include "sc7180-trogdor-clamshell.dtsi"
 #include "sc7180-trogdor-rt5682i-sku.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 
 / {
        thermal-zones {
                5v-choke-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <250>;
-
                        thermal-sensors = <&pm6150_adc_tm 1>;
 
                        trips {
index 5f06842c683b5797ab06d34cf5a226169db3b89e..00229b1515e60505f15fd58c6e7f16dcbf9c661b 100644 (file)
@@ -9,9 +9,7 @@
 
 #include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-rt5682i-sku.dtsi"
-
-/* This board only has 1 USB Type-C port. */
-/delete-node/ &usb_c1;
+#include "sc7180-trogdor-detachable.dtsi"
 
 / {
        ppvar_lcd: ppvar-lcd-regulator {
        status = "okay";
 };
 
-&cros_ec {
-       keyboard-controller {
-               compatible = "google,cros-ec-keyb-switches";
-       };
-};
-
 &gpio_keys {
        status = "okay";
 };
@@ -136,6 +128,11 @@ pp3300_disp_on: &pp3300_dx_edp {
        gpio = <&tlmm 67 GPIO_ACTIVE_HIGH>;
 };
 
+/* This board only has 1 USB Type-C port. */
+&usb_c1 {
+       status = "disabled";
+};
+
 /* PINCTRL - modifications to sc7180-trogdor.dtsi */
 
 /*
index c9667751a99072b617e11c5c77b4a9329227c941..d393a2712ce68de6b68289f28dced0bfd2fcc9ce 100644 (file)
@@ -8,8 +8,7 @@
 /dts-v1/;
 
 #include "sc7180-trogdor.dtsi"
-/* Must come after sc7180-trogdor.dtsi to modify cros_ec */
-#include <arm/cros-ec-keyboard.dtsi>
+#include "sc7180-trogdor-clamshell.dtsi"
 #include "sc7180-trogdor-rt5682i-sku.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 
index 305ad127246e6a58be81b4eb57cf6027708f7929..af89d80426abbdcc702301ca84481202d0f2c60b 100644 (file)
@@ -8,6 +8,7 @@
 /dts-v1/;
 
 #include "sc7180-trogdor.dtsi"
+#include "sc7180-trogdor-detachable.dtsi"
 
 / {
        avdd_lcd: avdd-lcd-regulator {
@@ -50,7 +51,6 @@
        thermal-zones {
                skin_temp_thermal: skin-temp-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pm6150_adc_tm 1>;
                        sustainable-power = <574>;
        base_detection: cbas {
                compatible = "google,cros-cbas";
        };
-
-       keyboard-controller {
-               compatible = "google,cros-ec-keyb-switches";
-       };
 };
 
 &i2c4 {
index 8513be29712013fdbaa9cb125350af992b8773a4..74ab321d3333cf8fdca45c7cde2fcd9d34b264b2 100644 (file)
@@ -21,9 +21,6 @@
 / {
        thermal-zones {
                charger_thermal: charger-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&pm6150_adc_tm 0>;
 
                        trips {
                #sound-dai-cells = <0>;
        };
 
-       pwmleds {
+       pwmleds: pwmleds {
                compatible = "pwm-leds";
+               status = "disabled";
+
                keyboard_backlight: led-0 {
-                       status = "disabled";
                        label = "cros_ec::kbd_backlight";
                        function = LED_FUNCTION_KBD_BACKLIGHT;
                        pwms = <&cros_ec_pwm 0>;
index 4774a859bd7eace07b9cde6ea09ce7aac79931a8..b5ebf89803251203a8d38f6a4690aa052a9e8e61 100644 (file)
                };
 
                ufs_mem_phy: phy@1d87000 {
-                       compatible = "qcom,sc7180-qmp-ufs-phy",
-                                    "qcom,sm7150-qmp-ufs-phy";
+                       compatible = "qcom,sc7180-qmp-ufs-phy";
                        reg = <0 0x01d87000 0 0x1000>;
                        clocks = <&rpmhcc RPMH_CXO_CLK>,
                                 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
                                iommus = <&apps_smmu 0x540 0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
+                               snps,parkmode-disable-ss-quirk;
                                phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
                                phy-names = "usb2-phy", "usb3-phy";
                                maximum-speed = "super-speed";
        thermal-zones {
                cpu0_thermal: cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 1>;
                        sustainable-power = <1052>;
 
                cpu1_thermal: cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 2>;
                        sustainable-power = <1052>;
 
                cpu2_thermal: cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 3>;
                        sustainable-power = <1052>;
 
                cpu3_thermal: cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 4>;
                        sustainable-power = <1052>;
 
                cpu4_thermal: cpu4-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 5>;
                        sustainable-power = <1052>;
 
                cpu5_thermal: cpu5-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 6>;
                        sustainable-power = <1052>;
 
                cpu6_thermal: cpu6-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 9>;
                        sustainable-power = <1425>;
 
                cpu7_thermal: cpu7-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 10>;
                        sustainable-power = <1425>;
 
                cpu8_thermal: cpu8-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 11>;
                        sustainable-power = <1425>;
 
                cpu9_thermal: cpu9-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 12>;
                        sustainable-power = <1425>;
 
                aoss0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 0>;
 
 
                cpuss0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 7>;
 
 
                cpuss1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 8>;
 
 
                gpuss0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 13>;
 
 
                gpuss1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 14>;
 
 
                aoss1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 0>;
 
 
                cwlan-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 1>;
 
 
                audio-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 2>;
 
 
                ddr-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 3>;
 
 
                q6-hvx-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 4>;
 
 
                camera-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 5>;
 
 
                mdm-core-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 6>;
 
 
                mdm-dsp-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 7>;
 
 
                npu-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 8>;
 
 
                video-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 9>;
 
index a0059527d9e48a45e542010143740019cd612d44..7370aa0dbf0e3f9e7a3e38c3f00686e1d3dcbc9f 100644 (file)
 };
 
 &uart5 {
-       compatible = "qcom,geni-debug-uart";
        status = "okay";
 };
 
index f9b96bd2477ea60f94372924dd8823b5198ded65..7d1d5bbbbbd951345f54fb3181ee18821d2b9158 100644 (file)
 };
 
 uart_dbg: &uart5 {
-       compatible = "qcom,geni-debug-uart";
        status = "okay";
 };
 
index fc9ec367e3a5a7357236e0569aece65714fe9559..3d8410683402fd4c03c5c2951721938fff20fc77 100644 (file)
@@ -24,6 +24,7 @@
 #include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/reset/qcom,sdm845-aoss.h>
 #include <dt-bindings/reset/qcom,sdm845-pdc.h>
+#include <dt-bindings/soc/qcom,apr.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
 #include <dt-bindings/sound/qcom,lpass.h>
 #include <dt-bindings/thermal/thermal.h>
        firmware {
                scm: scm {
                        compatible = "qcom,scm-sc7280", "qcom,scm";
+                       qcom,dload-mode = <&tcsr_2 0x13000>;
                };
        };
 
                        };
 
                        uart5: serial@994000 {
-                               compatible = "qcom,geni-uart";
+                               compatible = "qcom,geni-debug-uart";
                                reg = <0 0x00994000 0 0x4000>;
                                clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
                                clock-names = "se";
                                pinctrl-names = "default";
-                               pinctrl-0 = <&qup_uart5_cts>, <&qup_uart5_rts>, <&qup_uart5_tx>, <&qup_uart5_rx>;
+                               pinctrl-0 = <&qup_uart5_tx>, <&qup_uart5_rx>;
                                interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SC7280_CX>;
                                operating-points-v2 = <&qup_opp_table>;
                        reg = <0 0x016e0000 0 0x1c080>;
                        #interconnect-cells = <2>;
                        qcom,bcm-voters = <&apps_bcm_voter>;
+                       clocks = <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>;
                };
 
                aggre2_noc: interconnect@1700000 {
                        compatible = "qcom,sc7280-aggre2-noc";
                        #interconnect-cells = <2>;
                        qcom,bcm-voters = <&apps_bcm_voter>;
+                       clocks = <&rpmhcc RPMH_IPA_CLK>;
                };
 
                mmss_noc: interconnect@1740000 {
                        dma-coherent;
                };
 
+               gfx_0_tbu: tbu@3dd9000 {
+                       compatible = "qcom,sc7280-tbu";
+                       reg = <0x0 0x3dd9000 0x0 0x1000>;
+                       qcom,stream-id-range = <&adreno_smmu 0x0 0x400>;
+               };
+
+               gfx_1_tbu: tbu@3ddd000 {
+                       compatible = "qcom,sc7280-tbu";
+                       reg = <0x0 0x3ddd000 0x0 0x1000>;
+                       qcom,stream-id-range = <&adreno_smmu 0x400 0x400>;
+               };
+
                remoteproc_mpss: remoteproc@4080000 {
                        compatible = "qcom,sc7280-mpss-pas";
                        reg = <0 0x04080000 0 0x10000>;
                                label = "lpass";
                                qcom,remote-pid = <2>;
 
+                               apr {
+                                       compatible = "qcom,apr-v2";
+                                       qcom,glink-channels = "apr_audio_svc";
+                                       qcom,domain = <APR_DOMAIN_ADSP>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       service@3 {
+                                               reg = <APR_SVC_ADSP_CORE>;
+                                               compatible = "qcom,q6core";
+                                               qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+                                       };
+
+                                       q6afe: service@4 {
+                                               compatible = "qcom,q6afe";
+                                               reg = <APR_SVC_AFE>;
+                                               qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+
+                                               q6afedai: dais {
+                                                       compatible = "qcom,q6afe-dais";
+                                                       #address-cells = <1>;
+                                                       #size-cells = <0>;
+                                                       #sound-dai-cells = <1>;
+                                               };
+
+                                               q6afecc: clock-controller {
+                                                       compatible = "qcom,q6afe-clocks";
+                                                       #clock-cells = <2>;
+                                               };
+                                       };
+
+                                       q6asm: service@7 {
+                                               compatible = "qcom,q6asm";
+                                               reg = <APR_SVC_ASM>;
+                                               qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+
+                                               q6asmdai: dais {
+                                                       compatible = "qcom,q6asm-dais";
+                                                       #address-cells = <1>;
+                                                       #size-cells = <0>;
+                                                       #sound-dai-cells = <1>;
+                                                       iommus = <&apps_smmu 0x1801 0x0>;
+
+                                                       dai@0 {
+                                                               reg = <0>;
+                                                       };
+
+                                                       dai@1 {
+                                                               reg = <1>;
+                                                       };
+
+                                                       dai@2 {
+                                                               reg = <2>;
+                                                       };
+                                               };
+                                       };
+
+                                       q6adm: service@8 {
+                                               compatible = "qcom,q6adm";
+                                               reg = <APR_SVC_ADM>;
+                                               qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
+
+                                               q6routing: routing {
+                                                       compatible = "qcom,q6adm-routing";
+                                                       #sound-dai-cells = <0>;
+                                               };
+                                       };
+                               };
+
                                fastrpc {
                                        compatible = "qcom,fastrpc";
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                iommus = <&apps_smmu 0xe0 0x0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
+                               snps,parkmode-disable-ss-quirk;
                                phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
                                phy-names = "usb2-phy", "usb3-phy";
                                maximum-speed = "super-speed";
                                function = "qup04";
                        };
 
-                       qup_uart5_cts: qup-uart5-cts-state {
-                               pins = "gpio20";
-                               function = "qup05";
-                       };
-
-                       qup_uart5_rts: qup-uart5-rts-state {
-                               pins = "gpio21";
-                               function = "qup05";
-                       };
-
                        qup_uart5_tx: qup-uart5-tx-state {
                                pins = "gpio22";
                                function = "qup05";
                                     <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               anoc_1_tbu: tbu@151dd000 {
+                       compatible = "qcom,sc7280-tbu";
+                       reg = <0x0 0x151dd000 0x0 0x1000>;
+                       interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &cnoc3 SLAVE_TCU QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       qcom,stream-id-range = <&apps_smmu 0x0 0x400>;
+               };
+
+               anoc_2_tbu: tbu@151e1000 {
+                       compatible = "qcom,sc7280-tbu";
+                       reg = <0x0 0x151e1000 0x0 0x1000>;
+                       interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &cnoc3 SLAVE_TCU QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       qcom,stream-id-range = <&apps_smmu 0x400 0x400>;
+               };
+
+               mnoc_hf_0_tbu: tbu@151e5000 {
+                       compatible = "qcom,sc7280-tbu";
+                       reg = <0x0 0x151e5000 0x0 0x1000>;
+                       interconnects = <&mmss_noc MASTER_MDP0 QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       power-domains = <&gcc HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC>;
+                       qcom,stream-id-range = <&apps_smmu 0x800 0x400>;
+               };
+
+               mnoc_hf_1_tbu: tbu@151e9000 {
+                       compatible = "qcom,sc7280-tbu";
+                       reg = <0x0 0x151e9000 0x0 0x1000>;
+                       interconnects = <&mmss_noc MASTER_MDP0 QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       power-domains = <&gcc HLOS1_VOTE_MMNOC_MMU_TBU_HF1_GDSC>;
+                       qcom,stream-id-range = <&apps_smmu 0xc00 0x400>;
+               };
+
+               compute_dsp_1_tbu: tbu@151ed000 {
+                       compatible = "qcom,sc7280-tbu";
+                       reg = <0x0 0x151ed000 0x0 0x1000>;
+                       interconnects = <&nsp_noc MASTER_CDSP_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       power-domains = <&gcc HLOS1_VOTE_TURING_MMU_TBU1_GDSC>;
+                       qcom,stream-id-range = <&apps_smmu 0x1000 0x400>;
+               };
+
+               compute_dsp_0_tbu: tbu@151f1000 {
+                       compatible = "qcom,sc7280-tbu";
+                       reg = <0x0 0x151f1000 0x0 0x1000>;
+                       interconnects = <&nsp_noc MASTER_CDSP_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       power-domains = <&gcc HLOS1_VOTE_TURING_MMU_TBU0_GDSC>;
+                       qcom,stream-id-range = <&apps_smmu 0x1400 0x400>;
+               };
+
+               adsp_tbu: tbu@151f5000 {
+                       compatible = "qcom,sc7280-tbu";
+                       reg = <0x0 0x151f5000 0x0 0x1000>;
+                       interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &lpass_ag_noc SLAVE_LPASS_CORE_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       qcom,stream-id-range = <&apps_smmu 0x1800 0x400>;
+               };
+
+               anoc_1_pcie_tbu: tbu@151f9000 {
+                       compatible = "qcom,sc7280-tbu";
+                       reg = <0x0 0x151f9000 0x0 0x1000>;
+                       interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &cnoc3 SLAVE_TCU QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       qcom,stream-id-range = <&apps_smmu 0x1c00 0x400>;
+               };
+
+               mnoc_sf_0_tbu: tbu@151fd000 {
+                       compatible = "qcom,sc7280-tbu";
+                       reg = <0x0 0x151fd000 0x0 0x1000>;
+                       interconnects = <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       power-domains = <&gcc HLOS1_VOTE_MMNOC_MMU_TBU_SF0_GDSC>;
+                       qcom,stream-id-range = <&apps_smmu 0x2000 0x400>;
+               };
+
                intc: interrupt-controller@17a00000 {
                        compatible = "arm,gic-v3";
                        reg = <0 0x17a00000 0 0x10000>,     /* GICD */
                };
        };
 
+       sound: sound {
+       };
+
        thermal_zones: thermal-zones {
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 1>;
 
 
                cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 2>;
 
 
                cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 3>;
 
 
                cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 4>;
 
 
                cpu4-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 7>;
 
 
                cpu5-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 8>;
 
 
                cpu6-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 9>;
 
 
                cpu7-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 10>;
 
 
                cpu8-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 11>;
 
 
                cpu9-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 12>;
 
 
                cpu10-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 13>;
 
 
                cpu11-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 14>;
 
 
                aoss0-thermal {
                        polling-delay-passive = <0>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 0>;
 
 
                aoss1-thermal {
                        polling-delay-passive = <0>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 0>;
 
 
                cpuss0-thermal {
                        polling-delay-passive = <0>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 5>;
 
 
                cpuss1-thermal {
                        polling-delay-passive = <0>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens0 6>;
 
 
                gpuss0-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 1>;
 
 
                gpuss1-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&tsens1 2>;
 
                };
 
                nspss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 3>;
 
                        trips {
                };
 
                nspss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 4>;
 
                        trips {
                };
 
                video-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 5>;
 
                        trips {
                };
 
                ddr-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 6>;
 
                        trips {
                };
 
                mdmss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 7>;
 
                        trips {
                };
 
                mdmss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 8>;
 
                        trips {
                };
 
                mdmss2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 9>;
 
                        trips {
                };
 
                mdmss3-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 10>;
 
                        trips {
                };
 
                camera0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 11>;
 
                        trips {
index 6af99116c7158d77e5d68ca2e9025d536afbe143..5b226577f9d8afccaf7f77fc40ec3dea8d96510d 100644 (file)
@@ -68,7 +68,7 @@
                                        reg = <0>;
 
                                        pmic_glink_con0_hs: endpoint {
-                                               remote-endpoint = <&usb_prim_role_switch>;
+                                               remote-endpoint = <&usb_prim_dwc3_hs>;
                                        };
                                };
 
                                        reg = <0>;
 
                                        pmic_glink_con1_hs: endpoint {
-                                               remote-endpoint = <&usb_sec_role_switch>;
+                                               remote-endpoint = <&usb_sec_dwc3_hs>;
                                        };
                                };
 
        dr_mode = "host";
 };
 
+&usb_prim_dwc3_hs {
+       remote-endpoint = <&pmic_glink_con0_hs>;
+};
+
 &usb_prim_qmpphy_dp_in {
        remote-endpoint = <&mdss_dp0_out>;
 };
        remote-endpoint = <&pmic_glink_con0_ss>;
 };
 
-&usb_prim_role_switch {
-       remote-endpoint = <&pmic_glink_con0_hs>;
+&usb_sec_dwc3_hs {
+       remote-endpoint = <&pmic_glink_con1_hs>;
 };
 
 &usb_sec_hsphy {
        remote-endpoint = <&pmic_glink_con1_ss>;
 };
 
-&usb_sec_role_switch {
-       remote-endpoint = <&pmic_glink_con1_hs>;
-};
-
 &usb_sec {
        status = "okay";
 };
index ddc84282f1428a58333340423a35bc8977f3e5db..1c6f12fafe1d402c068324ed4d5f9e29fc6f6f18 100644 (file)
@@ -13,7 +13,6 @@
        thermal-zones {
                pmc8180-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pmc8180_temp>;
 
@@ -40,7 +39,6 @@
 
                pmc8180c-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
 
                        thermal-sensors = <&pmc8180c_temp>;
 
index bfee60c93ccce8f1dd0fb0c7a7e09eed9a1ce54d..65d923497a057d94f2619a950435b1530466a376 100644 (file)
@@ -71,7 +71,7 @@
                                        reg = <0>;
 
                                        pmic_glink_con0_hs: endpoint {
-                                               remote-endpoint = <&usb_prim_role_switch>;
+                                               remote-endpoint = <&usb_prim_dwc3_hs>;
                                        };
                                };
 
                                        reg = <0>;
 
                                        pmic_glink_con1_hs: endpoint {
-                                               remote-endpoint = <&usb_sec_role_switch>;
+                                               remote-endpoint = <&usb_sec_dwc3_hs>;
                                        };
                                };
 
        dr_mode = "host";
 };
 
+&usb_prim_dwc3_hs {
+       remote-endpoint = <&pmic_glink_con0_hs>;
+};
+
 &usb_prim_qmpphy_dp_in {
        remote-endpoint = <&mdss_dp0_out>;
 };
        remote-endpoint = <&pmic_glink_con0_ss>;
 };
 
-&usb_prim_role_switch {
-       remote-endpoint = <&pmic_glink_con0_hs>;
-};
-
 &usb_sec_hsphy {
        vdda-pll-supply = <&vreg_l5e_0p88>;
        vdda18-supply = <&vreg_l12a_1p8>;
        remote-endpoint = <&pmic_glink_con1_ss>;
 };
 
-&usb_sec_role_switch {
-       remote-endpoint = <&pmic_glink_con1_hs>;
-};
-
 &usb_sec {
        status = "okay";
 };
        dr_mode = "host";
 };
 
+&usb_sec_dwc3_hs {
+       remote-endpoint = <&pmic_glink_con1_hs>;
+};
+
 &wifi {
        memory-region = <&wlan_mem>;
 
index 581a70c34fd29e029b48860ad5b4b35d84942a26..6e707d993aeb36425af18c818cb3baf6f144d37f 100644 (file)
@@ -12,6 +12,7 @@
 #include <dt-bindings/interconnect/qcom,osm-l3.h>
 #include <dt-bindings/interconnect/qcom,sc8180x.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/soc/qcom,rpmh-rsc.h>
 #include <dt-bindings/thermal/thermal.h>
                        power-domains = <&gcc PCIE_3_GDSC>;
 
                        interconnects = <&aggre2_noc MASTER_PCIE_3 0 &mc_virt SLAVE_EBI_CH0 0>,
-                                       <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_PCIE_0 0>;
+                                       <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_PCIE_3 0>;
                        interconnect-names = "pcie-mem", "cpu-pcie";
 
                        phys = <&pcie3_phy>;
                        power-domains = <&gcc PCIE_1_GDSC>;
 
                        interconnects = <&aggre2_noc MASTER_PCIE_1 0 &mc_virt SLAVE_EBI_CH0 0>,
-                                       <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_PCIE_0 0>;
+                                       <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_PCIE_1 0>;
                        interconnect-names = "pcie-mem", "cpu-pcie";
 
                        phys = <&pcie1_phy>;
                        power-domains = <&gcc PCIE_2_GDSC>;
 
                        interconnects = <&aggre2_noc MASTER_PCIE_2 0 &mc_virt SLAVE_EBI_CH0 0>,
-                                       <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_PCIE_0 0>;
+                                       <&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_PCIE_2 0>;
                        interconnect-names = "pcie-mem", "cpu-pcie";
 
                        phys = <&pcie2_phy>;
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
 
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+
                        #phy-cells = <0>;
 
                        status = "disabled";
                };
 
-               ipa_virt: interconnect@1e00000 {
-                       compatible = "qcom,sc8180x-ipa-virt";
-                       reg = <0 0x01e00000 0 0x1000>;
-                       #interconnect-cells = <2>;
-                       qcom,bcm-voters = <&apps_bcm_voter>;
-               };
-
                tcsr_mutex: hwlock@1f40000 {
                        compatible = "qcom,tcsr-mutex";
                        reg = <0x0 0x01f40000 0x0 0x40000>;
                        status = "disabled";
                };
 
-               usb_prim_qmpphy: phy@88e9000 {
+               usb_prim_qmpphy: phy@88e8000 {
                        compatible = "qcom,sc8180x-qmp-usb3-dp-phy";
-                       reg = <0 0x088e9000 0 0x18c>,
-                             <0 0x088e8000 0 0x38>,
-                             <0 0x088ea000 0 0x40>;
-                       reg-names = "reg-base", "dp_com";
+                       reg = <0 0x088e8000 0 0x3000>;
+
                        clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK>,
                                 <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
-                                <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
+                                <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
                        clock-names = "aux",
-                                     "ref_clk_src",
                                      "ref",
-                                     "com_aux";
+                                     "com_aux",
+                                     "usb3_pipe";
+
                        resets = <&gcc GCC_USB3_DP_PHY_PRIM_SP0_BCR>,
                                 <&gcc GCC_USB3_PHY_PRIM_SP0_BCR>;
                        reset-names = "phy", "common";
 
                        #clock-cells = <1>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       #phy-cells = <1>;
 
                        status = "disabled";
 
                                        usb_prim_qmpphy_out: endpoint {};
                                };
 
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_prim_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_prim_dwc3_ss>;
+                                       };
+                               };
+
                                port@2 {
                                        reg = <2>;
 
                                        usb_prim_qmpphy_dp_in: endpoint {};
                                };
                        };
-
-                       usb_prim_ssphy: usb3-phy@88e9200 {
-                               reg = <0 0x088e9200 0 0x200>,
-                                     <0 0x088e9400 0 0x200>,
-                                     <0 0x088e9c00 0 0x218>,
-                                     <0 0x088e9600 0 0x200>,
-                                     <0 0x088e9800 0 0x200>,
-                                     <0 0x088e9a00 0 0x100>;
-                               #phy-cells = <0>;
-                               clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
-                               clock-names = "pipe0";
-                               clock-output-names = "usb3_prim_phy_pipe_clk_src";
-                       };
-
-                       usb_prim_dpphy: dp-phy@88ea200 {
-                               reg = <0 0x088ea200 0 0x200>,
-                                     <0 0x088ea400 0 0x200>,
-                                     <0 0x088eaa00 0 0x200>,
-                                     <0 0x088ea600 0 0x200>,
-                                     <0 0x088ea800 0 0x200>;
-                               #clock-cells = <1>;
-                               #phy-cells = <0>;
-                       };
                };
 
                usb_sec_qmpphy: phy@88ee000 {
                        compatible = "qcom,sc8180x-qmp-usb3-dp-phy";
-                       reg = <0 0x088ee000 0 0x18c>,
-                             <0 0x088ed000 0 0x10>,
-                             <0 0x088ef000 0 0x40>;
-                       reg-names = "reg-base", "dp_com";
+                       reg = <0 0x088ed000 0 0x3000>;
+
                        clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK>,
                                 <&gcc GCC_USB3_SEC_CLKREF_CLK>,
-                                <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>;
+                                <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>,
+                                <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
                        clock-names = "aux",
-                                     "ref_clk_src",
                                      "ref",
-                                     "com_aux";
+                                     "com_aux",
+                                     "usb3_pipe";
                        resets = <&gcc GCC_USB3_DP_PHY_SEC_BCR>,
                                 <&gcc GCC_USB3_PHY_SEC_BCR>;
                        reset-names = "phy", "common";
 
                        #clock-cells = <1>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+                       #phy-cells = <1>;
 
                        status = "disabled";
 
                                        usb_sec_qmpphy_out: endpoint {};
                                };
 
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_sec_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_sec_dwc3_ss>;
+                                       };
+                               };
+
                                port@2 {
                                        reg = <2>;
 
                                        usb_sec_qmpphy_dp_in: endpoint {};
                                };
                        };
-
-                       usb_sec_ssphy: usb3-phy@88e9200 {
-                               reg = <0 0x088ee200 0 0x200>,
-                                     <0 0x088ee400 0 0x200>,
-                                     <0 0x088eec00 0 0x218>,
-                                     <0 0x088ee600 0 0x200>,
-                                     <0 0x088ee800 0 0x200>,
-                                     <0 0x088eea00 0 0x100>;
-                               #phy-cells = <0>;
-                               clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
-                               clock-names = "pipe0";
-                               clock-output-names = "usb3_sec_phy_pipe_clk_src";
-                       };
-
-                       usb_sec_dpphy: dp-phy@88ef200 {
-                               reg = <0 0x088ef200 0 0x200>,
-                                     <0 0x088ef400 0 0x200>,
-                                     <0 0x088efa00 0 0x200>,
-                                     <0 0x088ef600 0 0x200>,
-                                     <0 0x088ef800 0 0x200>;
-                               #clock-cells = <1>;
-                               #phy-cells = <0>;
-                               clock-output-names = "qmp_dptx1_phy_pll_link_clk",
-                                                    "qmp_dptx1_phy_pll_vco_div_clk";
-                       };
                };
 
                system-cache-controller@9200000 {
                                iommus = <&apps_smmu 0x140 0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
-                               phys = <&usb_prim_hsphy>, <&usb_prim_ssphy>;
+                               phys = <&usb_prim_hsphy>, <&usb_prim_qmpphy QMP_USB43DP_USB3_PHY>;
                                phy-names = "usb2-phy", "usb3-phy";
 
-                               port {
-                                       usb_prim_role_switch: endpoint {
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_prim_dwc3_hs: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_prim_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_prim_qmpphy_usb_ss_in>;
+                                               };
                                        };
                                };
                        };
                                iommus = <&apps_smmu 0x160 0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
-                               phys = <&usb_sec_hsphy>, <&usb_sec_ssphy>;
+                               phys = <&usb_sec_hsphy>, <&usb_sec_qmpphy QMP_USB43DP_USB3_PHY>;
                                phy-names = "usb2-phy", "usb3-phy";
 
-                               port {
-                                       usb_sec_role_switch: endpoint {
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_sec_dwc3_hs: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_sec_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_sec_qmpphy_usb_ss_in>;
+                                               };
                                        };
                                };
                        };
 
                                assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>,
                                                  <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>;
-                               assigned-clock-parents = <&usb_prim_dpphy 0>, <&usb_prim_dpphy 1>;
+                               assigned-clock-parents = <&usb_prim_qmpphy QMP_USB43DP_DP_LINK_CLK>,
+                                                        <&usb_prim_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
 
-                               phys = <&usb_prim_dpphy>;
+                               phys = <&usb_prim_qmpphy QMP_USB43DP_DP_PHY>;
                                phy-names = "dp";
 
                                #sound-dai-cells = <0>;
 
                                assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK1_CLK_SRC>,
                                                  <&dispcc DISP_CC_MDSS_DP_PIXEL2_CLK_SRC>;
-                               assigned-clock-parents = <&usb_sec_dpphy 0>, <&usb_sec_dpphy 1>;
+                               assigned-clock-parents = <&usb_sec_qmpphy QMP_USB43DP_DP_LINK_CLK>,
+                                                        <&usb_sec_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
 
-                               phys = <&usb_sec_dpphy>;
+                               phys = <&usb_sec_qmpphy QMP_USB43DP_DP_PHY>;
                                phy-names = "dp";
 
                                #sound-dai-cells = <0>;
                        compatible = "qcom,sc8180x-dispcc";
                        reg = <0 0x0af00000 0 0x20000>;
                        clocks = <&rpmhcc RPMH_CXO_CLK>,
-                                <&sleep_clk>,
-                                <&usb_prim_dpphy 0>,
-                                <&usb_prim_dpphy 1>,
-                                <&usb_sec_dpphy 0>,
-                                <&usb_sec_dpphy 1>,
+                                <&mdss_dsi0_phy 0>,
+                                <&mdss_dsi0_phy 1>,
+                                <&mdss_dsi1_phy 0>,
+                                <&mdss_dsi1_phy 1>,
+                                <&usb_prim_qmpphy QMP_USB43DP_DP_LINK_CLK>,
+                                <&usb_prim_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>,
                                 <&edp_phy 0>,
-                                <&edp_phy 1>;
+                                <&edp_phy 1>,
+                                <&usb_sec_qmpphy QMP_USB43DP_DP_LINK_CLK>,
+                                <&usb_sec_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
                        clock-names = "bi_tcxo",
-                                     "sleep_clk",
+                                     "dsi0_phy_pll_out_byteclk",
+                                     "dsi0_phy_pll_out_dsiclk",
+                                     "dsi1_phy_pll_out_byteclk",
+                                     "dsi1_phy_pll_out_dsiclk",
                                      "dp_phy_pll_link_clk",
                                      "dp_phy_pll_vco_div_clk",
-                                     "dptx1_phy_pll_link_clk",
-                                     "dptx1_phy_pll_vco_div_clk",
                                      "edp_phy_pll_link_clk",
-                                     "edp_phy_pll_vco_div_clk";
+                                     "edp_phy_pll_vco_div_clk",
+                                     "dptx1_phy_pll_link_clk",
+                                     "dptx1_phy_pll_vco_div_clk";
                        power-domains = <&rpmhpd SC8180X_MMCX>;
                        required-opps = <&rpmhpd_opp_low_svs>;
                        #clock-cells = <1>;
                        mboxes = <&apss_shared 0>;
 
                        #clock-cells = <0>;
-                       #power-domain-cells = <1>;
                };
 
                sram@c3f0000 {
        thermal-zones {
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 1>;
 
 
                cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 2>;
 
 
                cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 3>;
 
 
                cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 4>;
 
 
                cpu4-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 7>;
 
 
                cpu5-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 8>;
 
 
                cpu6-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 9>;
 
 
                cpu7-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 10>;
 
 
                cpu4-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 11>;
 
 
                cpu5-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 12>;
 
 
                cpu6-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 13>;
 
 
                cpu7-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 14>;
 
 
                aoss0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 0>;
 
 
                cluster0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 5>;
 
 
                cluster1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 6>;
 
 
                gpu-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 15>;
 
 
                        trips {
                                gpu_top_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
+
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                aoss1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 0>;
 
 
                wlan-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 1>;
 
 
                video-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 2>;
 
 
                mem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 3>;
 
 
                q6-hvx-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 4>;
 
 
                camera-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 5>;
 
 
                compute-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 6>;
 
 
                mdm-dsp-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 7>;
 
 
                npu-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 8>;
 
 
                gpu-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 11>;
 
 
                        trips {
                                gpu_bottom_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
+
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
                };
        };
index 372b35fb844f5de8790f8c6f6375470e63dfaa87..b98b2f7752b5b2c930b6bce4f53ebb00138600c1 100644 (file)
@@ -56,7 +56,7 @@
                                        reg = <0>;
 
                                        pmic_glink_con0_hs: endpoint {
-                                               remote-endpoint = <&usb_0_role_switch>;
+                                               remote-endpoint = <&usb_0_dwc3_hs>;
                                        };
                                };
 
@@ -91,7 +91,7 @@
                                        reg = <0>;
 
                                        pmic_glink_con1_hs: endpoint {
-                                               remote-endpoint = <&usb_1_role_switch>;
+                                               remote-endpoint = <&usb_1_dwc3_hs>;
                                        };
                                };
 
        dr_mode = "host";
 };
 
+&usb_0_dwc3_hs {
+       remote-endpoint = <&pmic_glink_con0_hs>;
+};
+
 &usb_0_hsphy {
        vdda-pll-supply = <&vreg_l9d>;
        vdda18-supply = <&vreg_l1c>;
        remote-endpoint = <&pmic_glink_con0_ss>;
 };
 
-&usb_0_role_switch {
-       remote-endpoint = <&pmic_glink_con0_hs>;
-};
-
 &usb_1 {
        status = "okay";
 };
        dr_mode = "host";
 };
 
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_con1_hs>;
+};
+
 &usb_1_hsphy {
        vdda-pll-supply = <&vreg_l4b>;
        vdda18-supply = <&vreg_l1c>;
        remote-endpoint = <&pmic_glink_con1_ss>;
 };
 
-&usb_1_role_switch {
-       remote-endpoint = <&pmic_glink_con1_hs>;
-};
-
 &xo_board_clk {
        clock-frequency = <38400000>;
 };
index 4bf99b6b6e5fb3c125361647779461dd87f67a43..b27143f81867ab874a9426bed472052d6901a38d 100644 (file)
                                        reg = <0>;
 
                                        pmic_glink_con0_hs: endpoint {
-                                               remote-endpoint = <&usb_0_role_switch>;
+                                               remote-endpoint = <&usb_0_dwc3_hs>;
                                        };
                                };
 
                                        reg = <0>;
 
                                        pmic_glink_con1_hs: endpoint {
-                                               remote-endpoint = <&usb_1_role_switch>;
+                                               remote-endpoint = <&usb_1_dwc3_hs>;
                                        };
                                };
 
        };
 
        thermal-zones {
+               pm8008-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&pm8008>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
                skin-temp-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmk8280_adc_tm 5>;
 
                        trips {
        };
 };
 
+&i2c11 {
+       clock-frequency = <400000>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c11_default>;
+
+       status = "okay";
+
+       pm8008: pmic@c {
+               compatible = "qcom,pm8008";
+               reg = <0xc>;
+
+               interrupts-extended = <&tlmm 41 IRQ_TYPE_EDGE_RISING>;
+               reset-gpios = <&tlmm 42 GPIO_ACTIVE_LOW>;
+
+               vdd-l1-l2-supply = <&vreg_s11b>;
+               vdd-l3-l4-supply = <&vreg_bob>;
+               vdd-l5-supply = <&vreg_bob>;
+               vdd-l6-supply = <&vreg_bob>;
+               vdd-l7-supply = <&vreg_bob>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pm8008_default>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-ranges = <&pm8008 0 0 2>;
+
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               #thermal-sensor-cells = <0>;
+
+               regulators {
+                       vreg_l1q: ldo1 {
+                               regulator-name = "vreg_l1q";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       vreg_l2q: ldo2 {
+                               regulator-name = "vreg_l2q";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       vreg_l3q: ldo3 {
+                               regulator-name = "vreg_l3q";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                       };
+
+                       vreg_l4q: ldo4 {
+                               regulator-name = "vreg_l4q";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                       };
+
+                       vreg_l5q: ldo5 {
+                               regulator-name = "vreg_l5q";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       vreg_l6q: ldo6 {
+                               regulator-name = "vreg_l6q";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       vreg_l7q: ldo7 {
+                               regulator-name = "vreg_l7q";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                       };
+               };
+       };
+};
+
 &i2c21 {
        clock-frequency = <400000>;
 
        dr_mode = "host";
 };
 
+&usb_0_dwc3_hs {
+       remote-endpoint = <&pmic_glink_con0_hs>;
+};
+
 &usb_0_hsphy {
        vdda-pll-supply = <&vreg_l9d>;
        vdda18-supply = <&vreg_l1c>;
        remote-endpoint = <&pmic_glink_con0_ss>;
 };
 
-&usb_0_role_switch {
-       remote-endpoint = <&pmic_glink_con0_hs>;
-};
-
 &usb_1 {
        status = "okay";
 };
        dr_mode = "host";
 };
 
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_con1_hs>;
+};
+
 &usb_1_hsphy {
        vdda-pll-supply = <&vreg_l4b>;
        vdda18-supply = <&vreg_l1c>;
        remote-endpoint = <&pmic_glink_con1_ss>;
 };
 
-&usb_1_role_switch {
-       remote-endpoint = <&pmic_glink_con1_hs>;
-};
-
 &usb_2 {
        status = "okay";
 };
                bias-disable;
        };
 
+       i2c11_default: i2c11-default-state {
+               pins = "gpio18", "gpio19";
+               function = "qup11";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
        i2c21_default: i2c21-default-state {
                pins = "gpio81", "gpio82";
                function = "qup21";
                };
        };
 
+       pm8008_default: pm8008-default-state {
+               int-pins {
+                       pins = "gpio41";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+
+               reset-n-pins {
+                       pins = "gpio42";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+
        spkr_1_sd_n_default: spkr-1-sd-n-default-state {
                perst-n-pins {
                        pins = "gpio178";
index 945de77911de1ce558c500a94de8f80b7ee05d20..1e3babf2e40d80dbe196f521b2de519354b0495f 100644 (file)
@@ -14,7 +14,7 @@
        thermal-zones {
                pm8280_1_thermal: pm8280-1-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pm8280_1_temp_alarm>;
 
                        trips {
@@ -34,7 +34,7 @@
 
                pm8280_2_thermal: pm8280-2-thermal {
                        polling-delay-passive = <100>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pm8280_2_temp_alarm>;
 
                        trips {
index 59f0a850671a31db49557bda0288f9ac04543480..80a57aa228397e23e3e2d5643c0b563a60d71170 100644 (file)
                                        usb_0_qmpphy_out: endpoint {};
                                };
 
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_0_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_0_dwc3_ss>;
+                                       };
+                               };
+
                                port@2 {
                                        reg = <2>;
 
                                        usb_1_qmpphy_out: endpoint {};
                                };
 
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_1_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_ss>;
+                                       };
+                               };
+
                                port@2 {
                                        reg = <2>;
 
                                phys = <&usb_0_hsphy>, <&usb_0_qmpphy QMP_USB43DP_USB3_PHY>;
                                phy-names = "usb2-phy", "usb3-phy";
 
-                               port {
-                                       usb_0_role_switch: endpoint {
+                               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 {
+                                                       remote-endpoint = <&usb_0_qmpphy_usb_ss_in>;
+                                               };
                                        };
                                };
                        };
                                phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
                                phy-names = "usb2-phy", "usb3-phy";
 
-                               port {
-                                       usb_1_role_switch: endpoint {
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_1_dwc3_hs: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_1_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
+                                               };
                                        };
                                };
                        };
        thermal-zones {
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 1>;
 
 
                cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 2>;
 
 
                cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 3>;
 
 
                cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 4>;
 
 
                cpu4-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 5>;
 
 
                cpu5-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 6>;
 
 
                cpu6-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 7>;
 
 
                cpu7-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 8>;
 
 
                cluster0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 9>;
 
                };
 
                gpu-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
+                       polling-delay-passive = <250>;
 
                        thermal-sensors = <&tsens2 2>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               gpu-crit {
+                               gpu_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <110000>;
                                        hysteresis = <1000>;
                                        type = "critical";
 
                mem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 15>;
 
index 702ab49bbc5949aa072f4cdec6c63f95e6eff9e9..60412281ab27de76aeab69b636be50b0f1454816 100644 (file)
 
                vin-supply = <&vph_pwr>;
        };
+
+       /*
+        * this is also used for APC1 CPU power, touching it resets the board
+        */
+       vreg_l10a_1p8: vreg-l10a-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_l10a_1p8";
+               regulator-min-microvolt = <1804000>;
+               regulator-max-microvolt = <1896000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
 };
 
 &adsp_pil {
        status = "okay";
 
        vdd-supply = <&vreg_l1b_0p925>;
+       vdda-pll-supply = <&vreg_l10a_1p8>;
        vdda-phy-dpdm-supply = <&vreg_l7b_3p125>;
 };
 
        status = "okay";
 
        vdd-supply = <&vreg_l1b_0p925>;
+       vdda-pll-supply = <&vreg_l10a_1p8>;
        vdda-phy-dpdm-supply = <&vreg_l7b_3p125>;
 };
 
 
 &usb3_qmpphy {
        vdda-phy-supply = <&vreg_l1b_0p925>;
+       vdda-pll-supply = <&vreg_l10a_1p8>;
        status = "okay";
 };
diff --git a/src/arm64/qcom/sdm450-lenovo-tbx605f.dts b/src/arm64/qcom/sdm450-lenovo-tbx605f.dts
new file mode 100644 (file)
index 0000000..175befc
--- /dev/null
@@ -0,0 +1,276 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024, Neil Armstrong <neil.armstrong@linaro.org>
+ */
+/dts-v1/;
+
+#include "sdm450.dtsi"
+#include "pm8953.dtsi"
+#include "pmi8950.dtsi"
+
+/ {
+       model = "Lenovo Smart Tab M10";
+       compatible = "lenovo,tbx605f", "qcom,sdm450";
+       chassis-type = "tablet";
+
+       chosen {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               framebuffer@90001000 {
+                       compatible = "simple-framebuffer";
+                       reg = <0 0x90001000 0 (1200 * 1920 * 3)>;
+
+                       width = <1200>;
+                       height = <1920>;
+                       stride = <(1200 * 3)>;
+                       format = "r8g8b8";
+
+                       power-domains = <&gcc MDSS_GDSC>;
+
+                       clocks = <&gcc GCC_MDSS_AHB_CLK>,
+                                <&gcc GCC_MDSS_AXI_CLK>,
+                                <&gcc GCC_MDSS_VSYNC_CLK>,
+                                <&gcc GCC_MDSS_MDP_CLK>,
+                                <&gcc GCC_MDSS_BYTE0_CLK>,
+                                <&gcc GCC_MDSS_PCLK0_CLK>,
+                                <&gcc GCC_MDSS_ESC0_CLK>;
+               };
+       };
+
+       reserved-memory {
+               other_ext_region@0 {
+                       no-map;
+                       reg = <0x00 0x84500000 0x00 0x2300000>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               key-volume-up {
+                       label = "volume_up";
+                       gpios = <&tlmm 85 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&hsusb_phy {
+       vdd-supply = <&pm8953_l3>;
+       vdda-pll-supply = <&pm8953_l7>;
+       vdda-phy-dpdm-supply = <&pm8953_l13>;
+
+       status = "okay";
+};
+
+&i2c_3 {
+       status = "okay";
+
+       touchscreen@38 {
+               compatible = "edt,edt-ft5506";
+               reg = <0x38>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <65 IRQ_TYPE_EDGE_FALLING>;
+               vcc-supply = <&pm8953_l10>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_int_active &ts_reset_active>;
+
+               reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
+               touchscreen-size-x = <1200>;
+               touchscreen-size-y = <1920>;
+       };
+};
+
+&pm8953_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators {
+               compatible = "qcom,rpm-pm8953-regulators";
+
+               vdd_s1-supply = <&vph_pwr>;
+               vdd_s2-supply = <&vph_pwr>;
+               vdd_s3-supply = <&vph_pwr>;
+               vdd_s4-supply = <&vph_pwr>;
+               vdd_s5-supply = <&vph_pwr>;
+               vdd_s6-supply = <&vph_pwr>;
+               vdd_s7-supply = <&vph_pwr>;
+               vdd_l1-supply = <&pm8953_s3>;
+               vdd_l2_l3-supply = <&pm8953_s3>;
+               vdd_l4_l5_l6_l7_l16_l19-supply = <&pm8953_s4>;
+               vdd_l8_l11_l12_l13_l14_l15-supply = <&vph_pwr>;
+               vdd_l9_l10_l17_l18_l22-supply = <&vph_pwr>;
+
+               pm8953_s1: s1 {
+                       regulator-min-microvolt = <870000>;
+                       regulator-max-microvolt = <1156000>;
+               };
+
+               pm8953_s3: s3 {
+                       regulator-min-microvolt = <1224000>;
+                       regulator-max-microvolt = <1224000>;
+               };
+
+               pm8953_s4: s4 {
+                       regulator-min-microvolt = <1900000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8953_l1: l1 {
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1100000>;
+               };
+
+               pm8953_l2: l2 {
+                       regulator-min-microvolt = <975000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8953_l3: l3 {
+                       regulator-min-microvolt = <925000>;
+                       regulator-max-microvolt = <925000>;
+               };
+
+               pm8953_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8953_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8953_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1900000>;
+               };
+
+               pm8953_l8: l8 {
+                       regulator-min-microvolt = <2900000>;
+                       regulator-max-microvolt = <2900000>;
+               };
+
+               pm8953_l9: l9 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pm8953_l10: l10 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8953_l11: l11 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pm8953_l12: l12 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8953_l13: l13 {
+                       regulator-min-microvolt = <3125000>;
+                       regulator-max-microvolt = <3125000>;
+               };
+
+               pm8953_l16: l16 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8953_l17: l17 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8953_l19: l19 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+
+               pm8953_l22: l22 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8953_l23: l23 {
+                       regulator-min-microvolt = <975000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+       };
+};
+
+&sdhc_1 {
+       vmmc-supply = <&pm8953_l8>;
+       vqmmc-supply = <&pm8953_l5>;
+
+       status = "okay";
+};
+
+&sdhc_2 {
+       vmmc-supply = <&pm8953_l11>;
+       vqmmc-supply = <&pm8953_l12>;
+
+       cd-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_off>;
+       pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
+
+       status = "okay";
+};
+
+&tlmm {
+       gpio-reserved-ranges = <0 4>, <135 4>;
+
+       ts_int_active: ts-int-active-state {
+               pins = "gpio65";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+
+       ts_reset_active: ts-reset-active-state {
+               pins = "gpio64";
+               function = "gpio";
+               drive-strength = <0x08>;
+               bias-pull-up;
+       };
+};
+
+&usb3 {
+       status = "okay";
+};
+
+&usb3_dwc3 {
+       dr_mode = "peripheral";
+};
+
+&wcnss {
+       vddpx-supply = <&pm8953_l5>;
+
+       status = "okay";
+};
+
+&wcnss_iris {
+       compatible = "qcom,wcn3660b";
+
+       vddxo-supply = <&pm8953_l7>;
+       vddrfa-supply = <&pm8953_l19>;
+       vddpa-supply = <&pm8953_l9>;
+       vdddig-supply = <&pm8953_l5>;
+};
index e27f3c5d5bba9a620156e2ae3137310c72920f11..a288d52fb6d7c80cf6a2c8520ae17078d1066ae6 100644 (file)
 };
 
 &usb3_dwc3 {
+       /delete-property/ usb-role-switch;
        dr_mode = "peripheral";
 };
index f5921b80ef943d3bab4a174e9e4250e2d66a807a..c7e3764a8cf321536c620617a1b97815eaa0c7d5 100644 (file)
                                interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
+                               snps,parkmode-disable-ss-quirk;
 
                                phys = <&qusb2phy0>, <&usb3_qmpphy>;
                                phy-names = "usb2-phy", "usb3-phy";
        thermal-zones {
                aoss-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 0>;
 
 
                cpuss0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 1>;
 
 
                cpuss1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 2>;
 
 
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 3>;
 
 
                cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 4>;
 
 
                cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 5>;
 
 
                cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 6>;
 
 
                pwr-cluster-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 7>;
 
 
                gpu-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens 8>;
 
 
                        trips {
                                gpu_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
                                        hysteresis = <1000>;
                                        type = "hot";
                                };
+
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
                };
        };
 
        timer {
                compatible = "arm,armv8-timer";
-               interrupts = <GIC_PPI 1 0xf08>,
-                                <GIC_PPI 2 0xf08>,
-                                <GIC_PPI 3 0xf08>,
-                                <GIC_PPI 0 0xf08>;
+               interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
        };
 };
 
index e2708c74e95afd2f199306a9e868f2bbd6f26de3..2c1172aa97e4bd1f4e905e9777e26672e8935d2f 100644 (file)
        status = "okay";
 };
 
+&pmi632_vib {
+       status = "okay";
+};
+
 &sdhc_1 {
        status = "okay";
        vmmc-supply = <&pm8953_l8>;
index c82d6e628d2cbae7dfd973f61a16414145710e0e..2f55db0c8ce35b21edbadacd5e081c0a3bf1bcc7 100644 (file)
 };
 
 &usb3_dwc3 {
+       /delete-property/ usb-role-switch;
        dr_mode = "peripheral";
 };
index 80e81c4233b3899955cf9fc8e60684ebd9fa1018..187c6698835d34e617aeb83309b6d5926eb57198 100644 (file)
                        no-map;
                };
 
+               smem@86000000 {
+                       compatible = "qcom,smem";
+                       reg = <0 0x86000000 0 0x200000>;
+                       no-map;
+                       hwlocks = <&tcsr_mutex 3>;
+               };
+
+               tz_mem: tz@86200000 {
+                       reg = <0 0x86200000 0 0x2d00000>;
+                       no-map;
+               };
+
                camera_mem: camera-mem@8ab00000 {
                        reg = <0 0x8ab00000 0 0x500000>;
                        no-map;
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
+               tcsr_mutex: hwlock@1f40000 {
+                       compatible = "qcom,tcsr-mutex";
+                       reg = <0 0x01f40000 0 0x20000>;
+                       #hwlock-cells = <1>;
+               };
+
                tlmm: pinctrl@3400000 {
                        compatible = "qcom,sdm670-tlmm";
                        reg = <0 0x03400000 0 0xc00000>;
index 76bfa786612c7e72fd7da3bdecd2237df18577ad..2391f842c9038a3030511a1c9c8edd31bbacf2b0 100644 (file)
@@ -51,9 +51,6 @@
 
        thermal-zones {
                xo_thermal: xo-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&pm8998_adc_tm 1>;
 
                        trips {
@@ -66,9 +63,6 @@
                };
 
                msm_thermal: msm-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&pm8998_adc_tm 2>;
 
                        trips {
@@ -81,9 +75,6 @@
                };
 
                pa_thermal: pa-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&pm8998_adc_tm 3>;
 
                        trips {
@@ -96,9 +87,6 @@
                };
 
                quiet_thermal: quiet-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&pm8998_adc_tm 4>;
 
                        trips {
index 10de2bd46ffcc659198ad3e70badd82a3a89ad3d..54077549b9da7f0ece69a01d370692d9d716bbb5 100644 (file)
@@ -15,6 +15,7 @@
 #include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/firmware/qcom,scm.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interconnect/qcom,icc.h>
 #include <dt-bindings/interconnect/qcom,osm-l3.h>
 #include <dt-bindings/interconnect/qcom,sdm845.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
                                      "ref_aux",
                                      "qref";
 
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
 
 
                        #clock-cells = <1>;
                        #phy-cells = <1>;
+                       orientation-switch;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_1_qmpphy_out: endpoint {
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_1_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_ss>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       usb_1_qmpphy_dp_in: endpoint {
+                                               remote-endpoint = <&dp_out>;
+                                       };
+                               };
+                       };
                };
 
                usb_2_qmpphy: phy@88eb000 {
                                iommus = <&apps_smmu 0x740 0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
+                               snps,parkmode-disable-ss-quirk;
                                phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
                                phy-names = "usb2-phy", "usb3-phy";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_1_dwc3_hs: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_1_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
+                                               };
+                                       };
+                               };
                        };
                };
 
                                iommus = <&apps_smmu 0x760 0>;
                                snps,dis_u2_susphy_quirk;
                                snps,dis_enblslpm_quirk;
+                               snps,parkmode-disable-ss-quirk;
                                phys = <&usb_2_hsphy>, <&usb_2_qmpphy>;
                                phy-names = "usb2-phy", "usb3-phy";
                        };
 
                                        port@1 {
                                                reg = <1>;
-                                               dp_out: endpoint { };
+                                               dp_out: endpoint {
+                                                       remote-endpoint = <&usb_1_qmpphy_dp_in>;
+                                               };
                                        };
                                };
 
                                     <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               anoc_1_tbu: tbu@150c5000 {
+                       compatible = "qcom,sdm845-tbu";
+                       reg = <0x0 0x150c5000 0x0 0x1000>;
+                       interconnects = <&system_noc MASTER_GNOC_SNOC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_IMEM_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       power-domains = <&gcc HLOS1_VOTE_AGGRE_NOC_MMU_TBU1_GDSC>;
+                       qcom,stream-id-range = <&apps_smmu 0x0 0x400>;
+               };
+
+               anoc_2_tbu: tbu@150c9000 {
+                       compatible = "qcom,sdm845-tbu";
+                       reg = <0x0 0x150c9000 0x0 0x1000>;
+                       interconnects = <&system_noc MASTER_GNOC_SNOC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_IMEM_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       power-domains = <&gcc HLOS1_VOTE_AGGRE_NOC_MMU_TBU2_GDSC>;
+                       qcom,stream-id-range = <&apps_smmu 0x400 0x400>;
+               };
+
+               mnoc_hf_0_tbu: tbu@150cd000 {
+                       compatible = "qcom,sdm845-tbu";
+                       reg = <0x0 0x150cd000 0x0 0x1000>;
+                       interconnects = <&mmss_noc MASTER_MDP0 QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &mmss_noc SLAVE_MNOC_HF_MEM_NOC QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       power-domains = <&gcc HLOS1_VOTE_MMNOC_MMU_TBU_HF0_GDSC>;
+                       qcom,stream-id-range = <&apps_smmu 0x800 0x400>;
+               };
+
+               mnoc_hf_1_tbu: tbu@150d1000 {
+                       compatible = "qcom,sdm845-tbu";
+                       reg = <0x0 0x150d1000 0x0 0x1000>;
+                       interconnects = <&mmss_noc MASTER_MDP0 QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &mmss_noc SLAVE_MNOC_HF_MEM_NOC QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       power-domains = <&gcc HLOS1_VOTE_MMNOC_MMU_TBU_HF1_GDSC>;
+                       qcom,stream-id-range = <&apps_smmu 0xc00 0x400>;
+               };
+
+               mnoc_sf_0_tbu: tbu@150d5000 {
+                       compatible = "qcom,sdm845-tbu";
+                       reg = <0x0 0x150d5000 0x0 0x1000>;
+                       interconnects = <&mmss_noc MASTER_CAMNOC_SF QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &mmss_noc SLAVE_MNOC_SF_MEM_NOC QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       power-domains = <&gcc HLOS1_VOTE_MMNOC_MMU_TBU_SF_GDSC>;
+                       qcom,stream-id-range = <&apps_smmu 0x1000 0x400>;
+               };
+
+               compute_dsp_tbu: tbu@150d9000 {
+                       compatible = "qcom,sdm845-tbu";
+                       reg = <0x0 0x150d9000 0x0 0x1000>;
+                       interconnects = <&system_noc MASTER_GNOC_SNOC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_IMEM_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       qcom,stream-id-range = <&apps_smmu 0x1400 0x400>;
+               };
+
+               adsp_tbu: tbu@150dd000 {
+                       compatible = "qcom,sdm845-tbu";
+                       reg = <0x0 0x150dd000 0x0 0x1000>;
+                       interconnects = <&system_noc MASTER_GNOC_SNOC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_IMEM_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       power-domains = <&gcc HLOS1_VOTE_AGGRE_NOC_MMU_AUDIO_TBU_GDSC>;
+                       qcom,stream-id-range = <&apps_smmu 0x1800 0x400>;
+               };
+
+               anoc_1_pcie_tbu: tbu@150e1000 {
+                       compatible = "qcom,sdm845-tbu";
+                       reg = <0x0 0x150e1000 0x0 0x1000>;
+                       clocks = <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>;
+                       interconnects = <&system_noc MASTER_GNOC_SNOC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &config_noc SLAVE_IMEM_CFG QCOM_ICC_TAG_ACTIVE_ONLY>;
+                       power-domains = <&gcc HLOS1_VOTE_AGGRE_NOC_MMU_PCIE_TBU_GDSC>;
+                       qcom,stream-id-range = <&apps_smmu 0x1c00 0x400>;
+               };
+
                lpasscc: clock-controller@17014000 {
                        compatible = "qcom,sdm845-lpasscc";
                        reg = <0 0x17014000 0 0x1f004>, <0 0x17300000 0 0x200>;
        thermal-zones {
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 1>;
 
 
                cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 2>;
 
 
                cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 3>;
 
 
                cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 4>;
 
 
                cpu4-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 7>;
 
 
                cpu5-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 8>;
 
 
                cpu6-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 9>;
 
 
                cpu7-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 10>;
 
 
                aoss0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 0>;
 
 
                cluster0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 5>;
 
 
                cluster1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 6>;
 
 
                gpu-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 11>;
 
 
                        trips {
                                gpu_top_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
+
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                gpu-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 12>;
 
 
                        trips {
                                gpu_bottom_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
+
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                aoss1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 0>;
 
 
                q6-modem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 1>;
 
 
                mem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 2>;
 
 
                wlan-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 3>;
 
 
                q6-hvx-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 4>;
 
 
                camera-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 5>;
 
 
                video-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 6>;
 
 
                modem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 7>;
 
index 47dc42f6e936cd9999a5e1f15890ba25da945e79..f18050848cd8892666015c8182971ff0567747b7 100644 (file)
 &i2c1 {
        status = "okay";
        clock-frequency = <400000>;
+
+       embedded-controller@70 {
+               compatible = "lenovo,yoga-c630-ec";
+               reg = <0x70>;
+
+               interrupts-extended = <&tlmm 20 IRQ_TYPE_LEVEL_HIGH>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&ec_int_state>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               connector@0 {
+                       compatible = "usb-c-connector";
+                       reg = <0>;
+                       power-role = "dual";
+                       data-role = "host";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       ucsi0_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       ucsi0_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_qmpphy_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       ucsi0_sbu: endpoint {
+                                       };
+                               };
+                       };
+               };
+
+               connector@1 {
+                       compatible = "usb-c-connector";
+                       reg = <1>;
+                       power-role = "dual";
+                       data-role = "host";
+
+                       /*
+                        * connected to the onboard USB hub, orientation is
+                        * handled by the controller
+                        */
+               };
+       };
 };
 
 &i2c3 {
 &ipa {
        qcom,gsi-loader = "self";
        memory-region = <&ipa_fw_mem>;
+       firmware-name = "qcom/sdm850/LENOVO/81JL/ipa_fws.elf";
        status = "okay";
 };
 
 
                bias-disable;
        };
+
+       ec_int_state: ec-int-state {
+               pins = "gpio20";
+               function = "gpio";
+
+               bias-disable;
+       };
 };
 
 &uart6 {
        dr_mode = "host";
 };
 
+&usb_1_dwc3_hs {
+       remote-endpoint = <&ucsi0_hs_in>;
+};
+
 &usb_1_hsphy {
        status = "okay";
 
        vdda-pll-supply = <&vdda_usb1_ss_core>;
 };
 
+&usb_1_qmpphy_out {
+       remote-endpoint = <&ucsi0_ss_in>;
+};
+
 &usb_2 {
        status = "okay";
 };
        vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
 
        qcom,snoc-host-cap-8bit-quirk;
+       qcom,ath10k-calibration-variant = "Lenovo_C630";
 };
 
 &crypto {
index f76e72fb2072ffbe51747352e702600b95cadb3c..fde16308c7e24e2704e5d52890e48a6a45c99a69 100644 (file)
 
                vin-supply = <&vph_ext>;
        };
+
+       reg_2v952_vcc: regulator-2v952-vcc {
+               compatible = "regulator-gpio";
+               regulator-name = "2v952_vcc";
+               regulator-min-microvolt = <1650000>;
+               regulator-max-microvolt = <3600000>;
+               enable-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
+               gpios = <&tlmm 84 GPIO_ACTIVE_HIGH>;
+               states = <1650000 0>, <3600000 1>;
+               startup-delay-us = <5000>;
+               enable-active-high;
+               regulator-boot-on;
+
+               vin-supply = <&vph_ext>;
+       };
+
+       reg_2v95_vdd: regulator-2v95-vdd {
+               compatible = "regulator-fixed";
+               regulator-name = "2v95_vdd";
+               regulator-min-microvolt = <2950000>;
+               regulator-max-microvolt = <2950000>;
+               vin-supply = <&reg_2v952_vcc>;
+       };
 };
 
 &apps_rsc {
        status = "okay";
 };
 
+&sdhc {
+       cd-gpios = <&tlmm 103 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&reg_2v95_vdd>;
+       vqmmc-supply = <&reg_2v952_vcc>;
+       bus-width = <4>;
+       no-sdio;
+       no-mmc;
+
+       pinctrl-0 = <&sdc1_default &sd_cd>;
+       pinctrl-1 = <&sdc1_sleep &sd_cd>;
+       pinctrl-names = "default", "sleep";
+
+       status = "okay";
+};
+
 &tlmm {
        gpio-reserved-ranges = <110 6>;
+
+       sd_cd: sd-cd-state {
+               pins = "gpio103";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
 };
 
 &uart1 {
index da1704061d58c7440ba13460fdef58aa3b2f4afb..9b93f6501d55c7e5d74075fbdcbf09bb47ac260e 100644 (file)
@@ -8,9 +8,12 @@
 
 #include <dt-bindings/clock/qcom,rpmh.h>
 #include <dt-bindings/clock/qcom,sdx75-gcc.h>
+#include <dt-bindings/dma/qcom-gpi.h>
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interconnect/qcom,icc.h>
 #include <dt-bindings/interconnect/qcom,sdx75.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/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>
                };
        };
 
-       smem: qcom,smem {
+       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>;
+               };
+
+               ipa_smp2p_out: ipa-ap-to-modem {
+                       qcom,entry-name = "ipa";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               ipa_smp2p_in: ipa-modem-to-ap {
+                       qcom,entry-name = "ipa";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       smem: smem {
                compatible = "qcom,smem";
                memory-region = <&smem_mem>;
                hwlocks = <&tcsr_mutex 3>;
                        #power-domain-cells = <1>;
                };
 
+               ipcc: mailbox@408000 {
+                       compatible = "qcom,sdx75-ipcc", "qcom,ipcc";
+                       reg = <0 0x00408000 0 0x1000>;
+                       interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       #mbox-cells = <2>;
+               };
+
+               gpi_dma: dma-controller@900000 {
+                       compatible = "qcom,sdx75-gpi-dma", "qcom,sm6350-gpi-dma";
+                       reg = <0x0 0x00900000 0x0 0x60000>;
+                       #dma-cells = <3>;
+                       interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-channels = <12>;
+                       dma-channel-mask = <0x7f>;
+                       iommus = <&apps_smmu 0xf6 0x0>;
+                       status = "disabled";
+               };
+
                qupv3_id_0: geniqup@9c0000 {
                        compatible = "qcom,geni-se-qup";
                        reg = <0x0 0x009c0000 0x0 0x2000>;
                        ranges;
                        status = "disabled";
 
+                       i2c0: i2c@980000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00980000 0x0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pinctrl-0 = <&qup_i2c0_data_clk>;
+                               pinctrl-names = "default";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&system_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_dma 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       spi0: spi@980000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00980000 0x0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pinctrl-0 = <&qup_spi0_data_clk>, <&qup_spi0_cs>;
+                               pinctrl-names = "default";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&system_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_dma 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
                        uart1: serial@984000 {
                                compatible = "qcom,geni-debug-uart";
                                reg = <0x0 0x00984000 0x0 0x4000>;
                                                "sleep";
                                status = "disabled";
                        };
+
+                       i2c2: i2c@988000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00988000 0x0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pinctrl-0 = <&qup_i2c2_data_clk>;
+                               pinctrl-names = "default";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&system_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_dma 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       spi2: spi@988000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00988000 0x0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pinctrl-0 = <&qup_spi2_data_clk>, <&qup_spi2_cs>;
+                               pinctrl-names = "default";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&system_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_dma 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@98c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x0098c000 0x0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pinctrl-0 = <&qup_i2c3_data_clk>;
+                               pinctrl-names = "default";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&system_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_dma 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       spi3: spi@98c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x0098c000 0x0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pinctrl-0 = <&qup_spi3_data_clk>, <&qup_spi3_cs>;
+                               pinctrl-names = "default";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&system_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_dma 0 3 QCOM_GPI_SPI>,
+                                      <&gpi_dma 1 3 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       uart4: serial@990000 {
+                               compatible = "qcom,geni-uart";
+                               reg = <0x0 0x00990000 0x0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-0 = <&qup_uart4_default>, <&qup_uart4_cts_rts>;
+                               pinctrl-names = "default";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>;
+                               interconnect-names = "qup-core", "qup-config";
+                               status = "disabled";
+                       };
+
+                       i2c5: i2c@994000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00994000 0x0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pinctrl-0 = <&qup_i2c5_data_clk>;
+                               pinctrl-names = "default";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&system_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_dma 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       i2c6: i2c@998000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00998000 0x0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pinctrl-0 = <&qup_i2c6_data_clk>;
+                               pinctrl-names = "default";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&system_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_dma 0 6 QCOM_GPI_I2C>,
+                                      <&gpi_dma 1 6 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       spi6: spi@998000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00998000 0x0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pinctrl-0 = <&qup_spi6_data_clk>, <&qup_spi6_cs>;
+                               pinctrl-names = "default";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&system_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_dma 0 6 QCOM_GPI_SPI>,
+                                      <&gpi_dma 1 6 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       i2c7: i2c@99c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x0099c000 0x0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pinctrl-0 = <&qup_i2c7_data_clk>;
+                               pinctrl-names = "default";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&system_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_dma 0 7 QCOM_GPI_I2C>,
+                                      <&gpi_dma 1 7 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
+
+                       spi7: spi@99c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x0099c000 0x0 0x4000>;
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
+                               clock-names = "se";
+                               interrupts = <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               pinctrl-0 = <&qup_spi7_data_clk>, <&qup_spi7_cs>;
+                               pinctrl-names = "default";
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                                &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                                &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
+                                               <&system_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_dma 0 7 QCOM_GPI_SPI>,
+                                      <&gpi_dma 1 7 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
                };
 
                usb_hsphy: phy@ff4000 {
                        #hwlock-cells = <1>;
                };
 
+               tcsr: syscon@1fc0000 {
+                       compatible = "qcom,sdx75-tcsr", "syscon";
+                       reg = <0x0 0x01fc0000 0x0 0x30000>;
+               };
+
+               sdhc: mmc@8804000 {
+                       compatible = "qcom,sdx75-sdhci", "qcom,sdhci-msm-v5";
+                       reg = <0x0 0x08804000 0x0 0x1000>;
+
+                       interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq",
+                                         "pwr_irq";
+
+                       clocks = <&gcc GCC_SDCC1_AHB_CLK>,
+                                <&gcc GCC_SDCC1_APPS_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "iface",
+                                     "core",
+                                     "xo";
+                       iommus = <&apps_smmu 0x00a0 0x0>;
+                       qcom,dll-config = <0x0007442c>;
+                       qcom,ddr-config = <0x80040868>;
+                       power-domains = <&rpmhpd RPMHPD_CX>;
+                       operating-points-v2 = <&sdhc1_opp_table>;
+
+                       interconnects = <&system_noc MASTER_SDCC_1 &mc_virt SLAVE_EBI1>,
+                                       <&gem_noc MASTER_APPSS_PROC &system_noc SLAVE_SDCC_1>;
+                       interconnect-names = "sdhc-ddr",
+                                            "cpu-sdhc";
+                       bus-width = <4>;
+                       dma-coherent;
+
+                       /* Forbid SDR104/SDR50 - broken hw! */
+                       sdhci-caps-mask = <0x3 0>;
+
+                       status = "disabled";
+
+                       sdhc1_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-100000000 {
+                                       opp-hz = /bits/ 64 <100000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                               };
+
+                               opp-384000000 {
+                                       opp-hz = /bits/ 64 <384000000>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                               };
+                       };
+               };
+
                usb: usb@a6f8800 {
                        compatible = "qcom,sdx75-dwc3", "qcom,dwc3";
                        reg = <0x0 0x0a6f8800 0x0 0x400>;
                        interrupt-controller;
                };
 
+               aoss_qmp: power-controller@c310000 {
+                       compatible = "qcom,sdx75-aoss-qmp", "qcom,aoss-qmp";
+                       reg = <0 0x0c310000 0 0x1000>;
+                       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>;
+               };
+
                spmi_bus: spmi@c400000 {
                        compatible = "qcom,spmi-pmic-arb";
                        reg = <0x0 0x0c400000 0x0 0x3000>,
                        #interrupt-cells = <2>;
                        wakeup-parent = <&pdc>;
 
+                       qup_i2c0_data_clk: qup-i2c0-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio8", "gpio9";
+                               function = "qup_se0";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c2_data_clk: qup-i2c2-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio14", "gpio15";
+                               function = "qup_se2";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c3_data_clk: qup-i2c3-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio52", "gpio53";
+                               function = "qup_se3";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c5_data_clk: qup-i2c5-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio110", "gpio111";
+                               function = "qup_se5";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c6_data_clk: qup-i2c6-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio112", "gpio113";
+                               function = "qup_se6";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c7_data_clk: qup-i2c7-data-clk-state {
+                               /* SDA, SCL */
+                               pins = "gpio116", "gpio117";
+                               function = "qup_se7";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_spi0_cs: qup-spi0-cs-state {
+                               pins = "gpio11";
+                               function = "qup_se0";
+                               drive-strength = <6>;
+                               bias-pull-down;
+                       };
+
+                       qup_spi0_data_clk: qup-spi0-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio8", "gpio9", "gpio10";
+                               function = "qup_se0";
+                               drive-strength = <6>;
+                               bias-pull-down;
+                       };
+
+                       qup_spi2_cs: qup-spi2-cs-state {
+                               pins = "gpio17";
+                               function = "qup_se2";
+                               drive-strength = <6>;
+                               bias-pull-down;
+                       };
+
+                       qup_spi2_data_clk: qup-spi2-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio14", "gpio15", "gpio16";
+                               function = "qup_se2";
+                               drive-strength = <6>;
+                               bias-pull-down;
+                       };
+
+                       qup_spi3_cs: qup-spi3-cs-state {
+                               pins = "gpio55";
+                               function = "qup_se3";
+                               drive-strength = <6>;
+                               bias-pull-down;
+                       };
+
+                       qup_spi3_data_clk: qup-spi3-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio52", "gpio53", "gpio54";
+                               function = "qup_se3";
+                               drive-strength = <6>;
+                               bias-pull-down;
+                       };
+
+                       qup_spi6_cs: qup-spi6-cs-state {
+                               pins = "gpio115";
+                               function = "qup_se6";
+                               drive-strength = <6>;
+                               bias-pull-down;
+                       };
+
+                       qup_spi6_data_clk: qup-spi6-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio112", "gpio113", "gpio114";
+                               function = "qup_se6";
+                               drive-strength = <6>;
+                               bias-pull-down;
+                       };
+
+                       qup_spi7_cs: qup-spi7-cs-state {
+                               pins = "gpio119";
+                               function = "qup_se7";
+                               drive-strength = <6>;
+                               bias-pull-down;
+                       };
+
+                       qup_spi7_data_clk: qup-spi7-data-clk-state {
+                               /* MISO, MOSI, CLK */
+                               pins = "gpio116", "gpio117", "gpio118";
+                               function = "qup_se7";
+                               drive-strength = <6>;
+                               bias-pull-down;
+                       };
+
+                       qup_uart4_cts_rts: qup-uart4-cts-rts-state {
+                               /* CTS, RTS */
+                               pins = "gpio52", "gpio53";
+                               function = "qup_se3";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       qup_uart4_default: qup-uart4-default-state {
+                               /* TX, RX */
+                               pins = "gpio54", "gpio55";
+                               function = "qup_se3";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
                        qupv3_se1_2uart_active: qupv3-se1-2uart-active-state {
                                tx-pins {
                                        pins = "gpio12";
                                drive-strength = <2>;
                                bias-pull-down;
                        };
+
+                       sdc1_default: sdc1-default-state {
+                               clk-pins {
+                                       pins = "sdc1_clk";
+                                       drive-strength = <16>;
+                                       bias-disable;
+                               };
+
+                               cmd-pins {
+                                       pins = "sdc1_cmd";
+                                       drive-strength = <10>;
+                                       bias-pull-up;
+                               };
+
+                               data-pins {
+                                       pins = "sdc1_data";
+                                       drive-strength = <10>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       sdc1_sleep: sdc1-sleep-state {
+                               clk-pins {
+                                       pins = "sdc1_clk";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+
+                               cmd-pins {
+                                       pins = "sdc1_cmd";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+
+                               data-pins {
+                                       pins = "sdc1_data";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
                };
 
                apps_smmu: iommu@15000000 {
index 2c7a12983dae05ceb16d0b4fbb78bd8c88b6476c..9153a5a55ed9fe82ea6771ef87dae5620a4fbf2f 100644 (file)
 };
 
 &usb_dwc3 {
+       /delete-property/ usb-role-switch;
        maximum-speed = "high-speed";
        dr_mode = "peripheral";
 
index 603c962661ccfc86551504fa7b4b59e27ab7125f..9c9919e78fbdbf4dab77e0bd5b611804de178439 100644 (file)
                        clock-frequency = <32000>;
                        #clock-cells = <0>;
                };
+
+               bi_tcxo_div2: bi-tcxo-div2-clk {
+                       #clock-cells = <0>;
+                       compatible = "fixed-factor-clock";
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-mult = <1>;
+                       clock-div = <2>;
+               };
        };
 
        cpus {
                        device_type = "cpu";
                        compatible = "arm,cortex-a55";
                        reg = <0x0 0x0>;
+                       clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
                        next-level-cache = <&L2_0>;
                        power-domains = <&CPU_PD0>;
                        power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 0>;
                        #cooling-cells = <2>;
 
                        L2_0: l2-cache {
                        device_type = "cpu";
                        compatible = "arm,cortex-a55";
                        reg = <0x0 0x100>;
+                       clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
                        next-level-cache = <&L2_100>;
                        power-domains = <&CPU_PD0>;
                        power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 0>;
                        #cooling-cells = <2>;
 
                        L2_100: l2-cache {
                        device_type = "cpu";
                        compatible = "arm,cortex-a55";
                        reg = <0x0 0x200>;
+                       clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
                        next-level-cache = <&L2_200>;
                        power-domains = <&CPU_PD0>;
                        power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 0>;
                        #cooling-cells = <2>;
 
                        L2_200: l2-cache {
                        device_type = "cpu";
                        compatible = "arm,cortex-a55";
                        reg = <0x0 0x300>;
+                       clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
                        next-level-cache = <&L2_300>;
                        power-domains = <&CPU_PD0>;
                        power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 0>;
                        #cooling-cells = <2>;
 
                        L2_300: l2-cache {
                        device_type = "cpu";
                        compatible = "arm,cortex-a55";
                        reg = <0x0 0x400>;
+                       clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
                        next-level-cache = <&L2_400>;
                        power-domains = <&CPU_PD0>;
                        power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 0>;
                        #cooling-cells = <2>;
 
                        L2_400: l2-cache {
                        device_type = "cpu";
                        compatible = "arm,cortex-a55";
                        reg = <0x0 0x500>;
+                       clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
                        next-level-cache = <&L2_500>;
                        power-domains = <&CPU_PD0>;
                        power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 0>;
                        #cooling-cells = <2>;
 
                        L2_500: l2-cache {
                        device_type = "cpu";
                        compatible = "arm,cortex-a78";
                        reg = <0x0 0x600>;
+                       clocks = <&cpufreq_hw 1>;
                        enable-method = "psci";
                        next-level-cache = <&L2_600>;
                        power-domains = <&CPU_PD0>;
                        power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 1>;
                        #cooling-cells = <2>;
 
                        L2_600: l2-cache {
                        device_type = "cpu";
                        compatible = "arm,cortex-a78";
                        reg = <0x0 0x700>;
+                       clocks = <&cpufreq_hw 1>;
                        enable-method = "psci";
                        next-level-cache = <&L2_700>;
                        power-domains = <&CPU_PD0>;
                        power-domain-names = "psci";
+                       qcom,freq-domain = <&cpufreq_hw 1>;
                        #cooling-cells = <2>;
 
                        L2_700: l2-cache {
                reg = <0x0 0xa0000000 0x0 0x0>;
        };
 
-       pmu {
-               compatible = "arm,armv8-pmuv3";
-               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
+       pmu-a55 {
+               compatible = "arm,cortex-a55-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       pmu-a78 {
+               compatible = "arm,cortex-a78-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
        };
 
        psci {
                        };
                };
 
+               cpufreq_hw: cpufreq@17d91000 {
+                       compatible = "qcom,sm4450-cpufreq-epss", "qcom,cpufreq-epss";
+                       reg = <0 0x17d91000 0 0x1000>,
+                             <0 0x17d92000 0 0x1000>;
+                       reg-names = "freq-domain0", "freq-domain1";
+                       clocks = <&bi_tcxo_div2>, <&gcc GCC_GPLL0>;
+                       clock-names = "xo", "alternate";
+                       interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "dcvsh-irq-0", "dcvsh-irq-1";
+                       #freq-domain-cells = <1>;
+                       #clock-cells = <1>;
+               };
        };
 
        timer {
index 98eb072fa912e4e2196a1a3f203835731ce68415..4a30024aa48fb47822c24f91e2dabb49d5bf3308 100644 (file)
 };
 
 &usb_dwc3 {
+       /delete-property/ usb-role-switch;
        maximum-speed = "high-speed";
        dr_mode = "peripheral";
 };
index 9ed062150aaf20dd0a32d049035301f767fb59d0..e374733f3b856eacdc22efd2f698e37d041f5390 100644 (file)
                                 <&gcc GCC_SDCC1_ICE_CORE_CLK>;
                        clock-names = "iface", "core", "xo", "ice";
 
+                       resets = <&gcc GCC_SDCC1_BCR>;
+
                        power-domains = <&rpmpd SM6115_VDDCX>;
                        operating-points-v2 = <&sdhc1_opp_table>;
                        iommus = <&apps_smmu 0x00c0 0x0>;
                                      "ref_aux",
                                      "qref";
 
+                       power-domains = <&gcc GCC_UFS_PHY_GDSC>;
+
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
 
                                snps,has-lpm-erratum;
                                snps,hird-threshold = /bits/ 8 <0x10>;
                                snps,usb3_lpm_capable;
+                               snps,parkmode-disable-ss-quirk;
 
                                usb-role-switch;
 
 
        thermal-zones {
                mapss-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 0>;
 
                        trips {
                };
 
                cdsp-hvx-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 1>;
 
                        trips {
                };
 
                wlan-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 2>;
 
                        trips {
                };
 
                camera-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 3>;
 
                        trips {
                };
 
                video-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 4>;
 
                        trips {
                };
 
                modem1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 5>;
 
                        trips {
                };
 
                cpu4-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 6>;
 
                        trips {
                };
 
                cpu5-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 7>;
 
                        trips {
                };
 
                cpu6-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 8>;
 
                        trips {
                };
 
                cpu7-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 9>;
 
                        trips {
                };
 
                cpu45-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 10>;
 
                        trips {
                };
 
                cpu67-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 11>;
 
                        trips {
                };
 
                cpu0123-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 12>;
 
                        trips {
                };
 
                modem0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 13>;
 
                        trips {
                };
 
                display-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 14>;
 
                        trips {
                };
 
                gpu-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
+                       polling-delay-passive = <250>;
+
                        thermal-sensors = <&tsens0 15>;
 
                        cooling-maps {
 
                        trips {
                                gpu_alert0: trip-point0 {
-                                       temperature = <115000>;
-                                       hysteresis = <5000>;
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
                                        type = "passive";
                                };
 
                                trip-point1 {
-                                       temperature = <125000>;
+                                       temperature = <110000>;
                                        hysteresis = <1000>;
                                        type = "critical";
                                };
index 54da053a80423ef85433040b4933131302da0f78..9d78bb3f71901705fd22d88b472f6fc1d0c0fffb 100644 (file)
 };
 
 &usb_dwc3 {
+       /delete-property/ usb-role-switch;
        maximum-speed = "high-speed";
        dr_mode = "peripheral";
 
index 08046f866f60f0bff88d2e7044f80d76a7068555..dcd05f303b785f281423760121b537fb4a5c6353 100644 (file)
@@ -90,8 +90,6 @@
 
        thermal-zones {
                rf-pa0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm6125_adc_tm 0>;
 
                        trips {
                };
 
                quiet-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <5000>;
                        thermal-sensors = <&pm6125_adc_tm 1>;
 
                        trips {
                };
 
                xo-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm6125_adc_tm 2>;
 
                        trips {
                };
 
                rf-pa1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm6125_adc_tm 3>;
 
                        trips {
index a49d3ebb19315a0959a74742046507ba23e93266..994fb0412fcbdf5466f87a325c48b697a37b514b 100644 (file)
@@ -84,8 +84,6 @@
 
        thermal-zones {
                rf-pa0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm6125_adc_tm 0>;
 
                        trips {
@@ -98,8 +96,6 @@
                };
 
                quiet-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <5000>;
                        thermal-sensors = <&pm6125_adc_tm 1>;
 
                        trips {
                };
 
                xo-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm6125_adc_tm 2>;
 
                        trips {
index 98ab083560887ce2c89ca7e4cc63a134ae42a790..777c380c2fa044bb9e713de5bbfc98f700c80c6f 100644 (file)
 
        timer {
                compatible = "arm,armv8-timer";
-               interrupts = <GIC_PPI 1 0xf08
-                             GIC_PPI 2 0xf08
-                             GIC_PPI 3 0xf08
-                             GIC_PPI 0 0xf08>;
+               interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
                clock-frequency = <19200000>;
        };
 };
index dddd6e44d280ca21213ac2bffb9fa8ee045fd108..bf23033a294e3f6e5f248d1d8114e52a70d17094 100644 (file)
                compatible = "samsung,s6sy761";
                reg = <0x48>;
                interrupt-parent = <&tlmm>;
-               interrupts = <22 0x2008>;
+               interrupts = <22 IRQ_TYPE_LEVEL_LOW>;
                vdd-supply = <&pm6350_l11>;
                avdd-supply = <&touch_en_vreg>;
 
 };
 
 &usb_1_dwc3 {
+       /delete-property/ usb-role-switch;
        maximum-speed = "super-speed";
        dr_mode = "peripheral";
 };
index 84ff20a96c838b52d8e5d54f97e3792de3f8fd99..7986ddb30f6e8ce6ceeb0f90772b0243aed6bffe 100644 (file)
                                      "ref_aux",
                                      "qref";
 
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
 
                                        compatible = "qcom,fastrpc";
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                        label = "adsp";
+                                       qcom,non-secure-domain;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
                                        compatible = "qcom,fastrpc";
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                        label = "cdsp";
+                                       qcom,non-secure-domain;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
                                 <&gcc GCC_USB3_DP_PHY_PRIM_BCR>;
                        reset-names = "phy", "common";
 
+                       orientation-switch;
+
                        #clock-cells = <1>;
                        #phy-cells = <1>;
 
                        status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_1_qmpphy_out: endpoint {
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_1_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_ss_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       usb_1_qmpphy_dp_in: endpoint {
+                                       };
+                               };
+                       };
                };
 
                dc_noc: interconnect@9160000 {
                                snps,dis_enblslpm_quirk;
                                snps,has-lpm-erratum;
                                snps,hird-threshold = /bits/ 8 <0x10>;
+                               snps,parkmode-disable-ss-quirk;
                                phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
                                phy-names = "usb2-phy", "usb3-phy";
+                               usb-role-switch;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_1_dwc3_hs_out: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_1_dwc3_ss_out: endpoint {
+                                                       remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
+                                               };
+                                       };
+                               };
                        };
                };
 
 
        thermal-zones {
                aoss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 0>;
 
                        trips {
                };
 
                aoss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 0>;
 
                        trips {
                };
 
                audio-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 2>;
 
                        trips {
                };
 
                camera-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 5>;
 
                        trips {
                };
 
                cpu0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 1>;
 
                        trips {
                };
 
                cpu1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 2>;
 
                        trips {
                };
 
                cpu2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 3>;
 
                        trips {
                };
 
                cpu3-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 4>;
 
                        trips {
                };
 
                cpu4-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 5>;
 
                        trips {
                };
 
                cpu5-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 6>;
 
                        trips {
                };
 
                cpu6-left-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 9>;
 
                        trips {
                };
 
                cpu6-right-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 10>;
 
                        trips {
                };
 
                cpu7-left-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 11>;
 
                        trips {
                };
 
                cpu7-right-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 12>;
 
                        trips {
                };
 
                cpuss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 7>;
 
                        trips {
                };
 
                cpuss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 8>;
 
                        trips {
                };
 
                cwlan-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 1>;
 
                        trips {
                };
 
                ddr-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 3>;
 
                        trips {
                };
 
                gpuss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
+                       polling-delay-passive = <250>;
 
                        thermal-sensors = <&tsens0 13>;
 
                        trips {
                                gpuss0_alert0: trip-point0 {
-                                       temperature = <95000>;
+                                       temperature = <85000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
                                gpuss0-crit {
-                                       temperature = <115000>;
-                                       hysteresis = <0>;
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
                };
 
                gpuss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
+                       polling-delay-passive = <250>;
 
                        thermal-sensors = <&tsens0 14>;
 
                        trips {
                                gpuss1_alert0: trip-point0 {
-                                       temperature = <95000>;
+                                       temperature = <85000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
                                gpuss1-crit {
-                                       temperature = <115000>;
-                                       hysteresis = <0>;
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
                };
 
                modem-core0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 6>;
 
                        trips {
                };
 
                modem-core1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 7>;
 
                        trips {
                };
 
                modem-scl-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 9>;
 
                        trips {
                };
 
                modem-vec-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 8>;
 
                        trips {
                };
 
                npu-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 10>;
 
                        trips {
                };
 
                q6-hvx-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 4>;
 
                        trips {
                };
 
                video-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 11>;
 
                        trips {
index cca2c2eb88ade75066cbef3837dbb6bd2a0865b5..e04a3b8f81c556713550cd22feb2d0f282564baa 100644 (file)
                compatible = "samsung,s6sy761";
                reg = <0x48>;
                interrupt-parent = <&tlmm>;
-               interrupts = <22 0x2008>;
+               interrupts = <22 IRQ_TYPE_LEVEL_LOW>;
 
                vdd-supply = <&pm6125_l13>;
                avdd-supply = <&touch_avdd>;
index f40509d91bbda8a73d9624ca78fcb3b03e2bf60c..ddea681b536db0f0fcb76cd8320edce0a50e40ad 100644 (file)
 
        thermal-zones {
                mapss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 0>;
 
                        trips {
                };
 
                cpu0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 1>;
 
                        trips {
                };
 
                cpu1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 2>;
 
                        trips {
                };
 
                cpu2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 3>;
 
                        trips {
                };
 
                cpu3-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 4>;
 
                        trips {
                };
 
                cpu4-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 5>;
 
                        trips {
                };
 
                cpu5-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 6>;
 
                        trips {
                };
 
                cluster0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 7>;
 
                        trips {
                };
 
                cluster1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 8>;
 
                        trips {
                };
 
                cpu6-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 9>;
 
                        trips {
                };
 
                cpu7-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 10>;
 
                        trips {
                };
 
                cpu-unk0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 11>;
 
                        trips {
                };
 
                cpu-unk1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 12>;
 
                        trips {
                };
 
                gpuss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 13>;
 
                        trips {
                };
 
                gpuss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens0 14>;
 
                        trips {
                };
 
                mapss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 0>;
 
                        trips {
                };
 
                cwlan-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 1>;
 
                        trips {
                };
 
                audio-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 2>;
 
                        trips {
                };
 
                ddr-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 3>;
 
                        trips {
                };
 
                q6hvx-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 4>;
 
                        trips {
                };
 
                camera-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 5>;
 
                        trips {
                };
 
                mdm-core0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 6>;
 
                        trips {
                };
 
                mdm-core1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 7>;
 
                        trips {
                };
 
                mdm-vec-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 8>;
 
                        trips {
                };
 
                msm-scl-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 9>;
 
                        trips {
                };
 
                video-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
-
                        thermal-sensors = <&tsens1 10>;
 
                        trips {
index bc67e8c1fe4d15f58de781404d0432e3bd69d311..2ee2561b57b1d6c7b0f40c93de62df47faaf95ca 100644 (file)
@@ -19,6 +19,7 @@
 #include <dt-bindings/leds/common.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/usb/pd.h>
 #include "sm7225.dtsi"
 #include "pm6150l.dtsi"
 #include "pm6350.dtsi"
                };
        };
 
+       msm_therm_sensor: thermal-sensor-msm {
+               compatible = "generic-adc-thermal";
+               #thermal-sensor-cells = <0>;
+               io-channels = <&pm6150l_adc ADC5_AMUX_THM2_100K_PU>;
+               io-channel-names = "sensor-channel";
+       };
+
+       rear_cam_sensor: thermal-sensor-rear-cam {
+               compatible = "generic-adc-thermal";
+               #thermal-sensor-cells = <0>;
+               io-channels = <&pm6150l_adc ADC5_GPIO2_100K_PU>;
+               io-channel-names = "sensor-channel";
+       };
+
        thermal-zones {
                chg-skin-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm7250b_adc_tm 0>;
 
                        trips {
                };
 
                conn-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm7250b_adc_tm 1>;
 
                        trips {
                                };
                        };
                };
+
+               pa0-thermal {
+                       thermal-sensors = <&pm6150l_adc_tm 1>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               pa1-thermal {
+                       thermal-sensors = <&pm6150l_adc_tm 0>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               pm8008-thermal {
+                       polling-delay-passive = <100>;
+                       thermal-sensors = <&pm8008>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               quiet-thermal {
+                       thermal-sensors = <&pm6150l_adc_tm 3>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               rear-cam-thermal {
+                       polling-delay-passive = <1000>;
+                       polling-delay = <5000>;
+                       thermal-sensors = <&rear_cam_sensor>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               rfc-flash-thermal {
+                       thermal-sensors = <&pm6150l_adc_tm 2>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               sdm-skin-thermal {
+                       polling-delay-passive = <1000>;
+                       polling-delay = <5000>;
+                       thermal-sensors = <&msm_therm_sensor>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <45000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <55000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               xo-thermal {
+                       thermal-sensors = <&pmk8350_adc_tm 0>;
+
+                       trips {
+                               active-config0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
        };
 };
 
                qcom,pmic-id = "a";
 
                vreg_s1a: smps1 {
+                       regulator-name = "vreg_s1a";
                        regulator-min-microvolt = <1000000>;
                        regulator-max-microvolt = <1200000>;
                };
 
                vreg_s2a: smps2 {
+                       regulator-name = "vreg_s2a";
                        regulator-min-microvolt = <1503000>;
                        regulator-max-microvolt = <2048000>;
                };
 
                vreg_l2a: ldo2 {
+                       regulator-name = "vreg_l2a";
                        regulator-min-microvolt = <1503000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l3a: ldo3 {
+                       regulator-name = "vreg_l3a";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l4a: ldo4 {
+                       regulator-name = "vreg_l4a";
                        regulator-min-microvolt = <352000>;
                        regulator-max-microvolt = <801000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l5a: ldo5 {
+                       regulator-name = "vreg_l5a";
                        regulator-min-microvolt = <1503000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l6a: ldo6 {
+                       regulator-name = "vreg_l6a";
                        regulator-min-microvolt = <1710000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l7a: ldo7 {
+                       regulator-name = "vreg_l7a";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l8a: ldo8 {
+                       regulator-name = "vreg_l8a";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l9a: ldo9 {
+                       regulator-name = "vreg_l9a";
                        regulator-min-microvolt = <1650000>;
                        regulator-max-microvolt = <3401000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l11a: ldo11 {
+                       regulator-name = "vreg_l11a";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l12a: ldo12 {
+                       regulator-name = "vreg_l12a";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l13a: ldo13 {
+                       regulator-name = "vreg_l13a";
                        regulator-min-microvolt = <570000>;
                        regulator-max-microvolt = <650000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l14a: ldo14 {
+                       regulator-name = "vreg_l14a";
                        regulator-min-microvolt = <1700000>;
                        regulator-max-microvolt = <1900000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l15a: ldo15 {
+                       regulator-name = "vreg_l15a";
                        regulator-min-microvolt = <1100000>;
                        regulator-max-microvolt = <1305000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l16a: ldo16 {
+                       regulator-name = "vreg_l16a";
                        regulator-min-microvolt = <830000>;
                        regulator-max-microvolt = <921000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l18a: ldo18 {
+                       regulator-name = "vreg_l18a";
                        regulator-min-microvolt = <788000>;
                        regulator-max-microvolt = <1049000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l19a: ldo19 {
+                       regulator-name = "vreg_l19a";
                        regulator-min-microvolt = <1080000>;
                        regulator-max-microvolt = <1305000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l20a: ldo20 {
+                       regulator-name = "vreg_l20a";
                        regulator-min-microvolt = <530000>;
                        regulator-max-microvolt = <801000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l21a: ldo21 {
+                       regulator-name = "vreg_l21a";
                        regulator-min-microvolt = <751000>;
                        regulator-max-microvolt = <825000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l22a: ldo22 {
+                       regulator-name = "vreg_l22a";
                        regulator-min-microvolt = <1080000>;
                        regulator-max-microvolt = <1305000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                qcom,pmic-id = "e";
 
                vreg_s8e: smps8 {
+                       regulator-name = "vreg_s8e";
                        regulator-min-microvolt = <313000>;
                        regulator-max-microvolt = <1395000>;
                };
 
                vreg_l1e: ldo1 {
+                       regulator-name = "vreg_l1e";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l2e: ldo2 {
+                       regulator-name = "vreg_l2e";
                        regulator-min-microvolt = <1170000>;
                        regulator-max-microvolt = <1305000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l3e: ldo3 {
+                       regulator-name = "vreg_l3e";
                        regulator-min-microvolt = <1100000>;
                        regulator-max-microvolt = <1299000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l4e: ldo4 {
+                       regulator-name = "vreg_l4e";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l5e: ldo5 {
+                       regulator-name = "vreg_l5e";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l6e: ldo6 {
+                       regulator-name = "vreg_l6e";
                        regulator-min-microvolt = <1700000>;
                        regulator-max-microvolt = <2950000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l7e: ldo7 {
+                       regulator-name = "vreg_l7e";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l8e: ldo8 {
+                       regulator-name = "vreg_l8e";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l9e: ldo9 {
+                       regulator-name = "vreg_l9e";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <2960000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l10e: ldo10 {
+                       regulator-name = "vreg_l10e";
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3401000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l11e: ldo11 {
+                       regulator-name = "vreg_l11e";
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3401000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_bob: bob {
+                       regulator-name = "vreg_bob";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <5492000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
 };
 
 &i2c10 {
-       /* PM8008 PMIC @ 8 and 9 */
+       clock-frequency = <400000>;
+       status = "okay";
+
+       pm8008: pmic@8 {
+               compatible = "qcom,pm8008";
+               reg = <0x8>;
+
+               interrupts-extended = <&tlmm 59 IRQ_TYPE_EDGE_RISING>;
+               reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
+
+               vdd-l1-l2-supply = <&vreg_s8e>;
+               vdd-l3-l4-supply = <&vreg_bob>;
+               vdd-l5-supply = <&vreg_bob>;
+               vdd-l6-supply = <&vreg_s2a>;
+               vdd-l7-supply = <&vreg_bob>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pm8008_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 = <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 = <2800000>;
+                       };
+
+                       vreg_l4p: ldo4 {
+                               regulator-name = "vreg_l4p";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <2904000>;
+                       };
+
+                       vreg_l5p: ldo5 {
+                               regulator-name = "vreg_l5p";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <2900000>;
+                       };
+
+                       vreg_l6p: ldo6 {
+                               regulator-name = "vreg_l6p";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       vreg_l7p: ldo7 {
+                               regulator-name = "vreg_l7p";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <3140000>;
+                       };
+               };
+       };
+
        /* PX8618 @ 26 */
        /* SMB1395 PMIC @ 34 */
        /* awinic,aw8695 @ 5a */
        status = "okay";
 };
 
+&pm6150l_adc {
+       pinctrl-0 = <&pm6150l_adc_default>;
+       pinctrl-names = "default";
+
+       channel@4d {
+               reg = <ADC5_AMUX_THM1_100K_PU>;
+               label = "pa_therm1";
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               qcom,ratiometric;
+       };
+
+       channel@4e {
+               reg = <ADC5_AMUX_THM2_100K_PU>;
+               label = "msm_therm";
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               qcom,ratiometric;
+       };
+
+       channel@4f {
+               reg = <ADC5_AMUX_THM3_100K_PU>;
+               label = "pa_therm0";
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               qcom,ratiometric;
+       };
+
+       channel@53 {
+               reg = <ADC5_GPIO2_100K_PU>;
+               label = "rear_cam_therm";
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               qcom,ratiometric;
+       };
+
+       channel@54 {
+               reg = <ADC5_GPIO3_100K_PU>;
+               label = "rear_cam_flash_therm";
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               qcom,ratiometric;
+       };
+
+       channel@55 {
+               reg = <ADC5_GPIO4_100K_PU>;
+               label = "quiet_therm";
+               qcom,hw-settle-time = <200>;
+               qcom,pre-scaling = <1 1>;
+               qcom,ratiometric;
+       };
+};
+
+&pm6150l_adc_tm {
+       status = "okay";
+
+       pa-therm1@0 {
+               reg = <0>;
+               io-channels = <&pm6150l_adc ADC5_AMUX_THM1_100K_PU>;
+               qcom,hw-settle-time-us = <200>;
+               qcom,ratiometric;
+       };
+
+       pa-therm0@1 {
+               reg = <1>;
+               io-channels = <&pm6150l_adc ADC5_AMUX_THM3_100K_PU>;
+               qcom,hw-settle-time-us = <200>;
+               qcom,ratiometric;
+       };
+
+       rear-cam-flash-therm@2 {
+               reg = <2>;
+               io-channels = <&pm6150l_adc ADC5_GPIO3_100K_PU>;
+               qcom,hw-settle-time-us = <200>;
+               qcom,ratiometric;
+       };
+
+       quiet-therm@3 {
+               reg = <3>;
+               io-channels = <&pm6150l_adc ADC5_GPIO4_100K_PU>;
+               qcom,hw-settle-time-us = <200>;
+               qcom,ratiometric;
+       };
+};
+
 &pm6150l_flash {
        status = "okay";
 
        };
 };
 
+&pm6150l_gpios {
+       pm6150l_adc_default: adc-default-state {
+               pins = "gpio6", "gpio7", "gpio10";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               bias-high-impedance;
+       };
+};
+
 &pm6150l_wled {
        qcom,switching-freq = <800>;
        qcom,current-limit-microamp = <20000>;
        };
 };
 
+&pm7250b_typec {
+       vdd-pdphy-supply = <&vreg_l3a>;
+
+       status = "okay";
+
+       connector {
+               compatible = "usb-c-connector";
+
+               power-role = "dual";
+               data-role = "dual";
+               self-powered;
+
+               /*
+                * Disable USB Power Delivery for now, seems to need extra work
+                * to support role switching while also letting the battery
+                * charge still - without charger driver
+                */
+               typec-power-opmode = "default";
+               pd-disable;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               pm7250b_hs_in: endpoint {
+                                       remote-endpoint = <&usb_1_dwc3_hs_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               pm7250b_ss_in: endpoint {
+                                       remote-endpoint = <&usb_1_qmpphy_out>;
+                               };
+                       };
+               };
+       };
+};
+
+&pm7250b_vbus {
+       regulator-min-microamp = <500000>;
+       regulator-max-microamp = <1500000>;
+       status = "okay";
+};
+
+&pmk8350_adc_tm {
+       status = "okay";
+
+       xo-therm@0 {
+               reg = <0>;
+               io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
+               qcom,hw-settle-time-us = <200>;
+               qcom,ratiometric;
+       };
+};
+
 &pmk8350_rtc {
        status = "okay";
 };
                 */
                bias-pull-up;
        };
+
+       pm8008_default: pm8008-default-state {
+               int-pins {
+                       pins = "gpio59";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+
+               reset-n-pins {
+                       pins = "gpio58";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
 };
 
 &uart1 {
 
 &usb_1_dwc3 {
        maximum-speed = "super-speed";
-       dr_mode = "peripheral";
+       dr_mode = "otg";
+};
+
+&usb_1_dwc3_hs_out {
+       remote-endpoint = <&pm7250b_hs_in>;
 };
 
 &usb_1_hsphy {
        status = "okay";
 };
 
+&usb_1_qmpphy_out {
+       remote-endpoint = <&pm7250b_ss_in>;
+};
+
 &wifi {
        vdd-0.8-cx-mx-supply = <&vreg_l4a>;
        vdd-1.8-xo-supply = <&vreg_l7a>;
index 6cb6f503fdac95c7b0ff902c7662830b9d27efd8..bac08f00b303ff6e6d47697f1cd9bff53efaf27b 100644 (file)
 
 &mdss_dp_out {
        data-lanes = <0 1>;
-       remote-endpoint = <&usb_1_qmpphy_dp_in>;
 };
 
 &mdss_dsi0 {
 
                        port@0 {
                                reg = <0>;
-                               pm8150b_role_switch_in: endpoint {
+                               pm8150b_hs_in: endpoint {
                                        remote-endpoint = <&usb_1_dwc3_hs>;
                                };
                        };
        orientation-switch;
 };
 
-&usb_1_qmpphy_dp_in {
-       remote-endpoint = <&mdss_dp_out>;
-};
-
 &usb_1_qmpphy_out {
        remote-endpoint = <&pm8150b_typec_mux_in>;
 };
 
-&usb_1_qmpphy_usb_ss_in {
-       remote-endpoint = <&usb_1_dwc3_ss>;
-};
-
 &usb_2_qmpphy {
        status = "okay";
        vdda-phy-supply = <&vreg_l3c_1p2>;
 };
 
 &usb_1_dwc3_hs {
-       remote-endpoint = <&pm8150b_role_switch_in>;
-};
-
-&usb_1_dwc3_ss {
-       remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
+       remote-endpoint = <&pm8150b_hs_in>;
 };
 
 &usb_2_dwc3 {
index ff22e434666023492f7528cc716f707ffcd91517..3e236adb9397b6d364fa6a1dc1bf0eabb5983342 100644 (file)
@@ -14,6 +14,7 @@
 #include <dt-bindings/clock/qcom,dispcc-sm8150.h>
 #include <dt-bindings/clock/qcom,gcc-sm8150.h>
 #include <dt-bindings/clock/qcom,gpucc-sm8150.h>
+#include <dt-bindings/clock/qcom,videocc-sm8150.h>
 #include <dt-bindings/interconnect/qcom,osm-l3.h>
 #include <dt-bindings/interconnect/qcom,sm8150.h>
 #include <dt-bindings/thermal/thermal.h>
                                        reg = <1>;
 
                                        usb_1_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_ss>;
                                        };
                                };
 
                                        reg = <2>;
 
                                        usb_1_qmpphy_dp_in: endpoint {
+                                               remote-endpoint = <&mdss_dp_out>;
                                        };
                                };
                        };
                                                reg = <1>;
 
                                                usb_1_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
                                                };
                                        };
                                };
                        };
                };
 
+               videocc: clock-controller@ab00000 {
+                       compatible = "qcom,sm8150-videocc";
+                       reg = <0 0x0ab00000 0 0x10000>;
+                       clocks = <&gcc GCC_VIDEO_AHB_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "iface", "bi_tcxo";
+                       power-domains = <&rpmhpd SM8150_MMCX>;
+                       required-opps = <&rpmhpd_opp_low_svs>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
                camnoc_virt: interconnect@ac00000 {
                        compatible = "qcom,sm8150-camnoc-virt";
                        reg = <0 0x0ac00000 0 0x1000>;
                                                reg = <1>;
 
                                                mdss_dp_out: endpoint {
+                                                       remote-endpoint = <&usb_1_qmpphy_dp_in>;
                                                };
                                        };
                                };
        thermal-zones {
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 1>;
 
 
                cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 2>;
 
 
                cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 3>;
 
 
                cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 4>;
 
 
                cpu4-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 7>;
 
 
                cpu5-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 8>;
 
 
                cpu6-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 9>;
 
 
                cpu7-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 10>;
 
 
                cpu4-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 11>;
 
 
                cpu5-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 12>;
 
 
                cpu6-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 13>;
 
 
                cpu7-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 14>;
 
 
                aoss0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 0>;
 
 
                cluster0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 5>;
 
 
                cluster1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 6>;
 
 
                gpu-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 15>;
 
 
                        trips {
                                gpu_top_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
+
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                aoss1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 0>;
 
 
                wlan-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 1>;
 
 
                video-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 2>;
 
 
                mem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 3>;
 
 
                q6-hvx-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 4>;
 
 
                camera-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 5>;
 
 
                compute-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 6>;
 
 
                modem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 7>;
 
 
                npu-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 8>;
 
 
                modem-vec-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 9>;
 
 
                modem-scl-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 10>;
 
 
                gpu-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 11>;
 
 
                        trips {
                                gpu_bottom_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
+
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
                };
        };
index 7ef99038cb37ba44b1e7f94397e551450331ad85..21b2ca1def8363cbaf7857215f42ff8492a8f7fa 100644 (file)
@@ -53,8 +53,6 @@
 
        thermal-zones {
                camera-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm8150l_adc_tm 0>;
 
                        trips {
@@ -67,8 +65,6 @@
                };
 
                conn-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm8150b_adc_tm 0>;
 
                        trips {
@@ -81,8 +77,6 @@
                };
 
                mmw-pa1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm8150_adc_tm 2>;
 
                        trips {
@@ -95,8 +89,6 @@
                };
 
                mmw-pa2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm8150l_adc_tm 2>;
 
                        trips {
                };
 
                skin-msm-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm8150l_adc_tm 1>;
 
                        trips {
                };
 
                skin-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm8150_adc_tm 1>;
 
                        trips {
                };
 
                xo-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pm8150_adc_tm 0>;
 
                        trips {
index e07d0311ecb5c92fbada36a8f9313aa99edc8142..f6870d3f2886fc68aaf914caecdd3a22ba249c5a 100644 (file)
                compatible = "samsung,s6sy761";
                reg = <0x48>;
                interrupt-parent = <&tlmm>;
-               interrupts = <39 0x2008>;
+               interrupts = <39 IRQ_TYPE_LEVEL_LOW>;
                /* It's "vddio" downstream but it works anyway! */
                vdd-supply = <&vreg_l1c_1p8>;
                avdd-supply = <&vreg_l10c_3p3>;
index 41f117474872898aaeaab698ace0749f06f8743c..3596dd328c31d6f0430fed343c7e2307147d21f3 100644 (file)
                        port@0 {
                                reg = <0>;
 
-                               pm8150b_role_switch_in: endpoint {
-                                       remote-endpoint = <&usb_1_role_switch_out>;
+                               pm8150b_hs_in: endpoint {
+                                       remote-endpoint = <&usb_1_dwc3_hs_out>;
                                };
                        };
                };
        status = "okay";
 };
 
-&usb_1_role_switch_out {
-       remote-endpoint = <&pm8150b_role_switch_in>;
+&usb_1_dwc3_hs_out {
+       remote-endpoint = <&pm8150b_hs_in>;
 };
 
 &ufs_mem_hc {
index 8ccade628f1f471bb41495b55b4708aae76d75b2..9d6c97d1fd9d6e12e4f88900bd04555ac244b0db 100644 (file)
 
                        status = "disabled";
 
-                       pcie@0 {
+                       pcieport0: pcie@0 {
                                device_type = "pci";
                                reg = <0x0 0x0 0x0 0x0 0x0>;
                                bus-range = <0x01 0xff>;
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
 
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+
                        #phy-cells = <0>;
 
                        status = "disabled";
                        #clock-cells = <1>;
                        #phy-cells = <1>;
 
+                       orientation-switch;
+
                        ports {
                                #address-cells = <1>;
                                #size-cells = <0>;
 
                                port@1 {
                                        reg = <1>;
+
+                                       usb_1_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_ss_out>;
+                                       };
                                };
 
                                port@2 {
                                phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
                                phy-names = "usb2-phy", "usb3-phy";
 
-                               port {
-                                       usb_1_role_switch_out: endpoint {};
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_1_dwc3_hs_out: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_1_dwc3_ss_out: endpoint {
+                                                       remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
+                                               };
+                                       };
                                };
                        };
                };
        thermal-zones {
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 1>;
 
 
                cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 2>;
 
 
                cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 3>;
 
 
                cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 4>;
 
 
                cpu4-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 7>;
 
 
                cpu5-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 8>;
 
 
                cpu6-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 9>;
 
 
                cpu7-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 10>;
 
 
                cpu4-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 11>;
 
 
                cpu5-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 12>;
 
 
                cpu6-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 13>;
 
 
                cpu7-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 14>;
 
 
                aoss0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 0>;
 
 
                cluster0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 5>;
 
 
                cluster1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 6>;
 
 
                gpu-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 15>;
 
 
                        trips {
                                gpu_top_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
+
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                aoss1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 0>;
 
 
                wlan-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 1>;
 
 
                video-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 2>;
 
 
                mem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 3>;
 
 
                q6-hvx-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 4>;
 
 
                camera-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 5>;
 
 
                compute-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 6>;
 
 
                npu-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 7>;
 
 
                gpu-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 8>;
 
 
                        trips {
                                gpu_bottom_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
+
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
                };
        };
index 4c25ab2f5670ef51f212280bb7a503aae9803a78..895adce59e758c3a810f37d703ff71da30d0a3db 100644 (file)
 
 &mdss_dp {
        status = "okay";
+};
 
-       ports {
-               port@1 {
-                       reg = <1>;
-
-                       mdss_dp0_out: endpoint {
-                               data-lanes = <0 1>;
-                               remote-endpoint = <&usb_1_qmpphy_dp_in>;
-                       };
-               };
-       };
+&mdss_dp_out {
+       data-lanes = <0 1>;
 };
 
 &mpss {
        remote-endpoint = <&pmic_glink_hs_in>;
 };
 
-&usb_1_dwc3_ss {
-       remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
-};
-
 &usb_1_hsphy {
        status = "okay";
 
 
        vdda-phy-supply = <&vreg_l6b_1p2>;
        vdda-pll-supply = <&vreg_l1b_0p88>;
-
-       orientation-switch;
-};
-
-&usb_1_qmpphy_dp_in {
-       remote-endpoint = <&mdss_dp0_out>;
 };
 
 &usb_1_qmpphy_out {
        remote-endpoint = <&pmic_glink_ss_in>;
 };
 
-&usb_1_qmpphy_usb_ss_in {
-       remote-endpoint = <&usb_1_dwc3_ss>;
-};
-
 &usb_2 {
        status = "okay";
 };
index f7c4700f00c36c19ed287eaa2c6ee1188ca57121..38ee0850c33582e690b9a575356d3b22151f489e 100644 (file)
                reg = <0x0 0x80000000 0x0 0x0>;
        };
 
-       pmu {
-               compatible = "arm,armv8-pmuv3";
+       pmu-a55 {
+               compatible = "arm,cortex-a55-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       pmu-a78 {
+               compatible = "arm,cortex-a78-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       pmu-x1 {
+               compatible = "arm,cortex-x1-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
        };
 
                                      "ref_aux",
                                      "qref";
 
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
 
                        #clock-cells = <1>;
                        #phy-cells = <1>;
 
+                       orientation-switch;
+
                        status = "disabled";
 
                        ports {
                                        reg = <1>;
 
                                        usb_1_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_ss>;
                                        };
                                };
 
                                        reg = <2>;
 
                                        usb_1_qmpphy_dp_in: endpoint {
+                                               remote-endpoint = <&mdss_dp_out>;
                                        };
                                };
                        };
                                                reg = <1>;
 
                                                usb_1_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
                                                };
                                        };
                                };
                                                        remote-endpoint = <&dpu_intf0_out>;
                                                };
                                        };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mdss_dp_out: endpoint {
+                                                       remote-endpoint = <&usb_1_qmpphy_dp_in>;
+                                               };
+                                       };
                                };
 
                                dp_opp_table: opp-table {
        thermal_zones: thermal-zones {
                cpu0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 1>;
 
 
                cpu1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 2>;
 
 
                cpu2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 3>;
 
 
                cpu3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 4>;
 
 
                cpu4-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 7>;
 
 
                cpu5-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 8>;
 
 
                cpu6-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 9>;
 
 
                cpu7-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 10>;
 
 
                cpu4-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 11>;
 
 
                cpu5-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 12>;
 
 
                cpu6-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 13>;
 
 
                cpu7-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 14>;
 
 
                aoss0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 0>;
 
 
                cluster0-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 5>;
 
 
                cluster1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens0 6>;
 
 
                aoss1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 0>;
 
 
                gpu-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 1>;
 
 
                        trips {
                                gpu_top_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
                                        hysteresis = <1000>;
                                        type = "hot";
                                };
+
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                gpu-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 2>;
 
 
                        trips {
                                gpu_bottom_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
                                        hysteresis = <1000>;
                                        type = "hot";
                                };
+
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
                };
 
                nspss1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 3>;
 
 
                nspss2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 4>;
 
 
                nspss3-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 5>;
 
 
                video-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 6>;
 
 
                mem-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 7>;
 
 
                modem1-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 8>;
 
 
                modem2-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 9>;
 
 
                modem3-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 10>;
 
 
                modem4-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 11>;
 
 
                camera-top-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 12>;
 
 
                cam-bottom-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <1000>;
 
                        thermal-sensors = <&tsens1 13>;
 
index 3be46b56c723d4e743a27bda3ac834efdd75f01f..a754b8fe916756ac297258bb2c4c64b9a5e525ef 100644 (file)
        thermal-zones {
                camera-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmk8350_adc_tm 2>;
 
                        trips {
 
                rear-tof-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmk8350_adc_tm 5>;
 
                        trips {
 
                skin-msm-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmk8350_adc_tm 1>;
 
                        trips {
 
                therm1-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmk8350_adc_tm 3>;
 
                        trips {
 
                therm2-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmk8350_adc_tm 6>;
 
                        trips {
 
                usb-conn-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmk8350_adc_tm 7>;
 
                        trips {
 
                wide-rfc-thermal {
                        polling-delay-passive = <250>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&pmk8350_adc_tm 4>;
 
                        trips {
                };
 
                xo-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&pmk8350_adc_tm 0>;
 
                        trips {
 
 &mdss_dp0 {
        status = "okay";
+};
 
-       ports {
-               port@1 {
-                       reg = <1>;
-
-                       mdss_dp0_out: endpoint {
-                               data-lanes = <0 1>;
-                               remote-endpoint = <&usb_1_qmpphy_dp_in>;
-                       };
-               };
-       };
+&mdss_dp0_out {
+       data-lanes = <0 1>;
 };
 
 &pcie0 {
        remote-endpoint = <&pmic_glink_hs_in>;
 };
 
-&usb_1_dwc3_ss {
-       remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
-};
-
 &usb_1_hsphy {
        status = "okay";
 
 
        vdda-phy-supply = <&vreg_l6b_1p2>;
        vdda-pll-supply = <&vreg_l1b_0p91>;
-
-       orientation-switch;
-};
-
-&usb_1_qmpphy_dp_in {
-       remote-endpoint = <&mdss_dp0_out>;
 };
 
 &usb_1_qmpphy_out {
        remote-endpoint = <&pmic_glink_ss_in>;
 };
 
-&usb_1_qmpphy_usb_ss_in {
-       remote-endpoint = <&usb_1_dwc3_ss>;
-};
-
 &vamacro {
        pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
        pinctrl-names = "default";
index 8b29fcf483a334452fac69817939323db84ff48e..17dbb67868aed30c363d0d10392a3d7dceb8ac45 100644 (file)
                compatible = "samsung,s6sy761";
                reg = <0x48>;
                interrupt-parent = <&tlmm>;
-               interrupts = <21 0x2008>;
+               interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
                vdd-supply = <&pm8350c_l2>;
                avdd-supply = <&pm8350c_l3>;
 
index 616461fcbab99f264f05be9cd7cdee789809d15e..9bafb3b350ff627277514be83910b72a283c1935 100644 (file)
                        clocks = <&rpmhcc RPMH_CXO_CLK>,
                                 <&sleep_clk>,
                                 <&pcie0_phy>,
-                                <&pcie1_phy>,
-                                <0>,
+                                <&pcie1_phy QMP_PCIE_PIPE_CLK>,
+                                <&pcie1_phy QMP_PCIE_PHY_AUX_CLK>,
                                 <&ufs_mem_phy 0>,
                                 <&ufs_mem_phy 1>,
                                 <&ufs_mem_phy 2>,
                                        <0 0 0 3 &intc 0 0 0 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
                                        <0 0 0 4 &intc 0 0 0 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
 
+                       interconnects = <&pcie_noc MASTER_PCIE_0 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &config_noc SLAVE_PCIE_0 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "pcie-mem", "cpu-pcie";
+
                        clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
                                 <&gcc GCC_PCIE_0_PIPE_CLK_SRC>,
                                 <&pcie0_phy>,
                        pinctrl-names = "default";
                        pinctrl-0 = <&pcie0_default_state>;
 
+                       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_low_svs>;
+                                       opp-peak-kBps = <250000 1>;
+                               };
+
+                               /* GEN 2 x1 */
+                               opp-5000000 {
+                                       opp-hz = /bits/ 64 <5000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                                       opp-peak-kBps = <500000 1>;
+                               };
+
+                               /* GEN 3 x1 */
+                               opp-8000000 {
+                                       opp-hz = /bits/ 64 <8000000>;
+                                       required-opps = <&rpmhpd_opp_nom>;
+                                       opp-peak-kBps = <984500 1>;
+                               };
+                       };
+
                        pcie@0 {
                                device_type = "pci";
                                reg = <0x0 0x0 0x0 0x0 0x0>;
                                        <0 0 0 3 &intc 0 0 0 438 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
                                        <0 0 0 4 &intc 0 0 0 439 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
 
+                       interconnects = <&pcie_noc MASTER_PCIE_1 QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &config_noc SLAVE_PCIE_1 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "pcie-mem", "cpu-pcie";
+
                        clocks = <&gcc GCC_PCIE_1_PIPE_CLK>,
                                 <&gcc GCC_PCIE_1_PIPE_CLK_SRC>,
                                 <&pcie1_phy>,
                        pinctrl-names = "default";
                        pinctrl-0 = <&pcie1_default_state>;
 
+                       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_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 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>;
+                               };
+                       };
+
                        pcie@0 {
                                device_type = "pci";
                                reg = <0x0 0x0 0x0 0x0 0x0>;
                                      "pipe";
 
                        clock-output-names = "pcie_1_pipe_clk";
-                       #clock-cells = <0>;
+                       #clock-cells = <1>;
 
                        #phy-cells = <0>;
 
                        #clock-cells = <1>;
                        #phy-cells = <1>;
 
+                       orientation-switch;
+
                        status = "disabled";
 
                        ports {
                                        reg = <1>;
 
                                        usb_1_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_ss>;
                                        };
                                };
 
                                        reg = <2>;
 
                                        usb_1_qmpphy_dp_in: endpoint {
+                                               remote-endpoint = <&mdss_dp0_out>;
                                        };
                                };
                        };
                                                        remote-endpoint = <&dpu_intf0_out>;
                                                };
                                        };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mdss_dp0_out: endpoint {
+                                                       remote-endpoint = <&usb_1_qmpphy_dp_in>;
+                                               };
+               };
                                };
 
                                dp_opp_table: opp-table {
                        compatible = "qcom,sm8450-llcc";
                        reg = <0 0x19200000 0 0x80000>, <0 0x19600000 0 0x80000>,
                              <0 0x19300000 0 0x80000>, <0 0x19700000 0 0x80000>,
-                             <0 0x19a00000 0 0x80000>;
+                             <0 0x19a00000 0 0x80000>, <0 0x19c00000 0 0x80000>;
                        reg-names = "llcc0_base", "llcc1_base", "llcc2_base",
-                                   "llcc3_base", "llcc_broadcast_base";
+                                   "llcc3_base", "llcc_broadcast_base",
+                                   "llcc_broadcast_and_base";
                        interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                                 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
                                 <&gcc GCC_UFS_0_CLKREF_EN>;
 
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
 
                                                reg = <1>;
 
                                                usb_1_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_1_qmpphy_usb_ss_in>;
                                                };
                                        };
                                };
 
        thermal-zones {
                aoss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 0>;
 
                        trips {
                };
 
                cpuss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 1>;
 
                        trips {
                };
 
                cpuss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 2>;
 
                        trips {
                };
 
                cpuss3-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 3>;
 
                        trips {
                };
 
                cpuss4-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 4>;
 
                        trips {
                };
 
                cpu4-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 5>;
 
                        trips {
                };
 
                cpu4-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 6>;
 
                        trips {
                };
 
                cpu5-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 7>;
 
                        trips {
                };
 
                cpu5-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 8>;
 
                        trips {
                };
 
                cpu6-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 9>;
 
                        trips {
                };
 
                cpu6-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 10>;
 
                        trips {
                };
 
                cpu7-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 11>;
 
                        trips {
                };
 
                cpu7-middle-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 12>;
 
                        trips {
                };
 
                cpu7-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 13>;
 
                        trips {
 
                gpu-top-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens0 14>;
 
                        cooling-maps {
                        };
 
                        trips {
-                               thermal-engine-config {
-                                       temperature = <125000>;
+                               gpu_top_alert0: trip-point0 {
+                                       temperature = <85000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
-                               thermal-hal-config {
-                                       temperature = <125000>;
+                               trip-point1 {
+                                       temperature = <90000>;
                                        hysteresis = <1000>;
-                                       type = "passive";
+                                       type = "hot";
                                };
 
-                               reset-mon-cfg {
-                                       temperature = <115000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
-                               };
-
-                               gpu_top_alert0: trip-point0 {
-                                       temperature = <95000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
                                };
                        };
                };
 
                gpu-bottom-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens0 15>;
 
                        cooling-maps {
                        };
 
                        trips {
-                               thermal-engine-config {
-                                       temperature = <125000>;
+                               gpu_bottom_alert0: trip-point0 {
+                                       temperature = <85000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
-                               thermal-hal-config {
-                                       temperature = <125000>;
+                               trip-point1 {
+                                       temperature = <90000>;
                                        hysteresis = <1000>;
-                                       type = "passive";
-                               };
-
-                               reset-mon-cfg {
-                                       temperature = <115000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                                       type = "hot";
                                };
 
-                               gpu_bottom_alert0: trip-point0 {
-                                       temperature = <95000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
                                };
                        };
                };
 
                aoss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 0>;
 
                        trips {
                };
 
                cpu0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 1>;
 
                        trips {
                };
 
                cpu1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 2>;
 
                        trips {
                };
 
                cpu2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 3>;
 
                        trips {
                };
 
                cpu3-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 4>;
 
                        trips {
 
                cdsp0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens1 5>;
 
                        trips {
 
                cdsp1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens1 6>;
 
                        trips {
 
                cdsp2-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens1 7>;
 
                        trips {
                };
 
                video-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 8>;
 
                        trips {
 
                mem-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens1 9>;
 
                        trips {
                };
 
                modem0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 10>;
 
                        trips {
                };
 
                modem1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 11>;
 
                        trips {
                };
 
                modem2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 12>;
 
                        trips {
                };
 
                modem3-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 13>;
 
                        trips {
                };
 
                camera0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 14>;
 
                        trips {
                };
 
                camera1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 15>;
 
                        trips {
index 12d60a0ee095ee1ca4cbffdc9cfbd19d4ea015f3..2e12219006c92243d40217d822ad7eda98fba6c9 100644 (file)
 };
 
 &mdss_dp0_out {
-       remote-endpoint = <&usb_dp_qmpphy_dp_in>;
        data-lanes = <0 1>;
 };
 
        status = "okay";
 };
 
-&pcie_1_phy_aux_clk {
-       clock-frequency = <1000>;
-};
-
 &pm8550_gpios {
        sdc2_card_det_n: sdc2-card-det-state {
                pins = "gpio12";
 
                #sound-dai-cells = <0>;
                sound-name-prefix = "SpkrLeft";
+               qcom,port-mapping = <1 2 3 7 10 13>;
        };
 
        /* WSA8845, Speaker South */
 
                #sound-dai-cells = <0>;
                sound-name-prefix = "SpkrRight";
+               qcom,port-mapping = <4 5 6 7 11 13>;
        };
 };
 
        status = "okay";
 };
 
-&usb_1_dwc3 {
-       dr_mode = "otg";
-       usb-role-switch;
-};
-
 &usb_1_dwc3_hs {
        remote-endpoint = <&pmic_glink_hs_in>;
 };
 
-&usb_1_dwc3_ss {
-       remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
-};
-
 &usb_1_hsphy {
        vdd-supply = <&vreg_l1e_0p88>;
        vdda12-supply = <&vreg_l3e_1p2>;
        vdda-phy-supply = <&vreg_l3e_1p2>;
        vdda-pll-supply = <&vreg_l3f_0p88>;
 
-       orientation-switch;
-
        status = "okay";
 };
 
-&usb_dp_qmpphy_dp_in {
-       remote-endpoint = <&mdss_dp0_out>;
-};
-
 &usb_dp_qmpphy_out {
        remote-endpoint = <&pmic_glink_ss_in>;
 };
 
-&usb_dp_qmpphy_usb_ss_in {
-       remote-endpoint = <&usb_1_dwc3_ss>;
-};
-
 &xo_board {
        clock-frequency = <76800000>;
 };
index 3d4ad5aac70fa5e74aad9830be6131332c5f629a..ab447fc252f7dd705fbe29725805bc1c146c10f9 100644 (file)
 
 &mdss_dp0_out {
        data-lanes = <0 1>;
-       remote-endpoint = <&usb_dp_qmpphy_dp_in>;
-};
-
-&pcie_1_phy_aux_clk {
-       clock-frequency = <1000>;
 };
 
 &pcie0 {
                sound-name-prefix = "SpkrLeft";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
                vdd-io-supply = <&vreg_l3g_1p2>;
+               qcom,port-mapping = <1 2 3 7 10 13>;
        };
 
        /* WSA8845 */
                sound-name-prefix = "SpkrRight";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
                vdd-io-supply = <&vreg_l3g_1p2>;
+               qcom,port-mapping = <4 5 6 7 11 13>;
        };
 };
 
        status = "okay";
 };
 
-&usb_1_dwc3 {
-       dr_mode = "otg";
-       usb-role-switch;
-};
-
 &usb_1_dwc3_hs {
        remote-endpoint = <&pmic_glink_hs_in>;
 };
 
-&usb_1_dwc3_ss {
-       remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
-};
-
 &usb_1_hsphy {
        vdd-supply = <&vreg_l1e_0p88>;
        vdda12-supply = <&vreg_l3e_1p2>;
        vdda-phy-supply = <&vreg_l3e_1p2>;
        vdda-pll-supply = <&vreg_l3f_0p91>;
 
-       orientation-switch;
-
        status = "okay";
 };
 
-&usb_dp_qmpphy_dp_in {
-       remote-endpoint = <&mdss_dp0_out>;
-};
-
 &usb_dp_qmpphy_out {
        remote-endpoint = <&pmic_glink_ss_in>;
 };
 
-&usb_dp_qmpphy_usb_ss_in {
-       remote-endpoint = <&usb_1_dwc3_ss>;
-};
-
 &xo_board {
        clock-frequency = <76800000>;
 };
index 92f0150174187dab2d5194041838b4c4eac49e90..774bdfcffec3247eca42d97ee5ca8d7cd627f1b9 100644 (file)
                regulator-always-on;
                regulator-boot-on;
        };
+
+       wcn7850-pmu {
+               compatible = "qcom,wcn7850-pmu";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_en>, <&pmk8550_sleep_clk>;
+
+               wlan-enable-gpios = <&tlmm 80 GPIO_ACTIVE_HIGH>;
+               /*
+                * TODO Add bt-enable-gpios once the Bluetooth driver is
+                * converted to using the power sequencer.
+                */
+
+               vdd-supply = <&vreg_s5g_0p85>;
+               vddio-supply = <&vreg_l15b_1p8>;
+               vddaon-supply = <&vreg_s2g_0p85>;
+               vdddig-supply = <&vreg_s4e_0p95>;
+               vddrfa1p2-supply = <&vreg_s4g_1p25>;
+               vddrfa1p8-supply = <&vreg_s6g_1p86>;
+
+               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 {
        status = "okay";
 };
 
-&gcc {
-       clocks = <&bi_tcxo_div2>, <&sleep_clk>,
-                <&pcie0_phy>,
-                <&pcie1_phy>,
-                <0>,
-                <&ufs_mem_phy 0>,
-                <&ufs_mem_phy 1>,
-                <&ufs_mem_phy 2>,
-                <&usb_dp_qmpphy QMP_USB43DP_USB3_PIPE_CLK>;
-};
-
 &gpi_dma1 {
        status = "okay";
 };
 
 &mdss_dp0_out {
        data-lanes = <0 1>;
-       remote-endpoint = <&usb_dp_qmpphy_dp_in>;
-};
-
-&pcie_1_phy_aux_clk {
-       status = "disabled";
 };
 
 &pcie0 {
        status = "okay";
 };
 
+&pcieport0 {
+       wifi@0 {
+               compatible = "pci17cb,1107";
+               reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+               vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+               vddaon-supply = <&vreg_pmu_aon_0p59>;
+               vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+               vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+               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>;
+       };
+};
+
 &pcie0_phy {
        vdda-phy-supply = <&vreg_l1e_0p88>;
        vdda-pll-supply = <&vreg_l3e_1p2>;
        status = "okay";
 };
 
-&pcie_1_phy_aux_clk {
-       clock-frequency = <1000>;
+&pmk8550_gpios {
+       pmk8550_sleep_clk: sleep-clk-state {
+               pins = "gpio3";
+               function = "func1";
+               input-disable;
+               output-enable;
+               bias-disable;
+               power-source = <0>;
+       };
 };
 
 &qupv3_id_0 {
                sound-name-prefix = "SpkrLeft";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
                vdd-io-supply = <&vreg_l3g_1p2>;
+               qcom,port-mapping = <1 2 3 7 10 13>;
        };
 
        /* WSA8845, Speaker South */
                sound-name-prefix = "SpkrRight";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
                vdd-io-supply = <&vreg_l3g_1p2>;
+               qcom,port-mapping = <4 5 6 7 11 13>;
        };
 };
 
                bias-disable;
                output-low;
        };
+
+       wlan_en: wlan-en-state {
+               pins = "gpio80";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-down;
+       };
 };
 
 &uart7 {
        status = "okay";
 };
 
-&usb_1_dwc3 {
-       dr_mode = "otg";
-       usb-role-switch;
-};
-
 &usb_1_dwc3_hs {
        remote-endpoint = <&pmic_glink_hs_in>;
 };
 
-&usb_1_dwc3_ss {
-       remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
-};
-
 &usb_1_hsphy {
        vdd-supply = <&vreg_l1e_0p88>;
        vdda12-supply = <&vreg_l3e_1p2>;
        vdda-phy-supply = <&vreg_l3e_1p2>;
        vdda-pll-supply = <&vreg_l3f_0p88>;
 
-       orientation-switch;
-
        status = "okay";
 };
 
-&usb_dp_qmpphy_dp_in {
-       remote-endpoint = <&mdss_dp0_out>;
-};
-
 &usb_dp_qmpphy_out {
        remote-endpoint = <&redriver_ss_in>;
 };
 
-&usb_dp_qmpphy_usb_ss_in {
-       remote-endpoint = <&usb_1_dwc3_ss>;
-};
-
 &xo_board {
        clock-frequency = <76800000>;
 };
diff --git a/src/arm64/qcom/sm8550-samsung-q5q.dts b/src/arm64/qcom/sm8550-samsung-q5q.dts
new file mode 100644 (file)
index 0000000..3d351e9
--- /dev/null
@@ -0,0 +1,593 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024, Alexandru Marc Serdeliuc <serdeliuk@yahoo.com>
+ * Copyright (c) 2024, David Wronek <david@mainlining.org>
+ * Copyright (c) 2022, Linaro Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sm8550.dtsi"
+#include "pm8550.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmk8550.dtsi"
+
+/delete-node/ &adspslpi_mem;
+/delete-node/ &cdsp_mem;
+/delete-node/ &mpss_dsm_mem;
+/delete-node/ &mpss_mem;
+/delete-node/ &rmtfs_mem;
+
+/ {
+       model = "Samsung Galaxy Z Fold5";
+       compatible = "samsung,q5q", "qcom,sm8550";
+       chassis-type = "handset";
+
+       aliases {
+               serial0 = &uart7;
+       };
+
+       chosen {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               framebuffer: framebuffer@b8000000 {
+                       compatible = "simple-framebuffer";
+                       reg = <0x0 0xb8000000 0x0 0x2b00000>;
+                       width = <2176>;
+                       height = <1812>;
+                       stride = <(2176 * 4)>;
+                       format = "a8r8g8b8";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&volume_up_n>;
+               pinctrl-names = "default";
+
+               key-volume-up {
+                       label = "Volume Up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       reserved-memory {
+               adspslpi_mem: adspslpi@9ea00000 {
+                       reg = <0x0 0x9ea00000 0x0 0x59b4000>;
+                       no-map;
+               };
+
+               cdsp_mem: cdsp-region@9c900000 {
+                       reg = <0 0x9c900000 0 0x2000000>;
+                       no-map;
+               };
+
+               mpss_dsm_mem: mpss-dsm@d4d00000 {
+                       reg = <0x0 0xd4d00000 0x0 0x3300000>;
+                       no-map;
+               };
+
+               mpss_mem: mpss@8b400000 {
+                       reg = <0x0 0x8b400000 0x0 0xfc00000>;
+                       no-map;
+               };
+
+               rmtfs_mem: rmtfs-region@d4a80000 {
+                       reg = <0x0 0xd4a80000 0x0 0x280000>;
+                       no-map;
+               };
+
+               /*
+                * The bootloader will only keep display hardware enabled
+                * if this memory region is named exactly 'splash_region'
+                */
+               splash_region@b8000000 {
+                       reg = <0x0 0xb8000000 0x0 0x2b00000>;
+                       no-map;
+               };
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pm8550-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               vreg_bob1: bob1 {
+                       regulator-name = "vreg_bob1";
+                       regulator-min-microvolt = <3296000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob2: bob2 {
+                       regulator-name = "vreg_bob2";
+                       regulator-min-microvolt = <2720000>;
+                       regulator-max-microvolt = <3960000>;
+                       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 = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5b_3p1: ldo5 {
+                       regulator-name = "vreg_l5b_3p1";
+                       regulator-min-microvolt = <3104000>;
+                       regulator-max-microvolt = <3104000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p8: ldo6 {
+                       regulator-name = "vreg_l6b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b_1p8: ldo7 {
+                       regulator-name = "vreg_l7b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b_1p8: ldo8 {
+                       regulator-name = "vreg_l8b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_2p9: ldo9 {
+                       regulator-name = "vreg_l9b_2p9";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11b_1p2: ldo11 {
+                       regulator-name = "vreg_l11b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b_1p8: ldo12 {
+                       regulator-name = "vreg_l12b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b_3p0: ldo13 {
+                       regulator-name = "vreg_l13b_3p0";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b_3p2: ldo14 {
+                       regulator-name = "vreg_l14b_3p2";
+                       regulator-min-microvolt = <3200000>;
+                       regulator-max-microvolt = <3200000>;
+                       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>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+                       regulator-always-on;
+               };
+
+               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,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vreg_l3c_0p91: ldo3 {
+                       regulator-name = "vreg_l3c_0p9";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "d";
+
+               vreg_l1d_0p88: ldo1 {
+                       regulator-name = "vreg_l1d_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-3 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "e";
+
+               vreg_s4e_0p9: smps4 {
+                       regulator-name = "vreg_s4e_0p9";
+                       regulator-min-microvolt = <904000>;
+                       regulator-max-microvolt = <984000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s5e_1p1: smps5 {
+                       regulator-name = "vreg_s5e_1p1";
+                       regulator-min-microvolt = <1080000>;
+                       regulator-max-microvolt = <1120000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1e_0p88: ldo1 {
+                       regulator-name = "vreg_l1e_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <880000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2e_0p9: ldo2 {
+                       regulator-name = "vreg_l2e_0p9";
+                       regulator-min-microvolt = <904000>;
+                       regulator-max-microvolt = <970000>;
+                       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,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "f";
+
+               vreg_s4f_0p5: smps4 {
+                       regulator-name = "vreg_s4f_0p5";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <700000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1f_0p9: ldo1 {
+                       regulator-name = "vreg_l1f_0p9";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2f_0p88: ldo2 {
+                       regulator-name = "vreg_l2f_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3f_0p91: ldo3 {
+                       regulator-name = "vreg_l3f_0p91";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-5 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "g";
+
+               vreg_s1g_1p2: smps1 {
+                       regulator-name = "vreg_s1g_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s2g_0p8: smps2 {
+                       regulator-name = "vreg_s2g_0p8";
+                       regulator-min-microvolt = <800000>;
+                       regulator-max-microvolt = <1000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s3g_0p7: smps3 {
+                       regulator-name = "vreg_s3g_0p7";
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <1004000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s4g_1p3: smps4 {
+                       regulator-name = "vreg_s4g_1p3";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1352000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s5g_0p8: smps5 {
+                       regulator-name = "vreg_s5g_0p8";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1004000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s6g_1p8: smps6 {
+                       regulator-name = "vreg_s6g_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       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_HPM>;
+               };
+
+               vreg_l2g_1p2: ldo2 {
+                       regulator-name = "vreg_l2g_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3g_1p2: ldo3 {
+                       regulator-name = "vreg_l3g_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-6 {
+               compatible = "qcom,pm8010-rpmh-regulators";
+               qcom,pmic-id = "m";
+
+               vreg_l1m_1p056: ldo1 {
+                       regulator-name = "vreg_l1m_1p056";
+                       regulator-min-microvolt = <1056000>;
+                       regulator-max-microvolt = <1056000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2m_1p056: ldo2 {
+                       regulator-name = "vreg_l2m_1p056";
+                       regulator-min-microvolt = <1056000>;
+                       regulator-max-microvolt = <1056000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3m_2p8: ldo3 {
+                       regulator-name = "vreg_l3m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4m_2p8: ldo4 {
+                       regulator-name = "vreg_l4m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5m_1p8: ldo5 {
+                       regulator-name = "vreg_l5m_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6m_1p8: ldo6 {
+                       regulator-name = "vreg_l6m_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7m_2p9: ldo7 {
+                       regulator-name = "vreg_l7m_2p9";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2904000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-7 {
+               compatible = "qcom,pm8010-rpmh-regulators";
+               qcom,pmic-id = "n";
+
+               vreg_l1n_1p1: ldo1 {
+                       regulator-name = "vreg_l1n_1p1";
+                       regulator-min-microvolt = <1104000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2n_1p1: ldo2 {
+                       regulator-name = "vreg_l2n_1p1";
+                       regulator-min-microvolt = <1104000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3n_2p8: ldo3 {
+                       regulator-name = "vreg_l3n_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4n_2p8: ldo4 {
+                       regulator-name = "vreg_l4n_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5n_1p8: ldo5 {
+                       regulator-name = "vreg_l5n_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6n_3p3: ldo6 {
+                       regulator-name = "vreg_l6n_3p3";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7n_2p96: ldo7 {
+                       regulator-name = "vreg_l7n_2p96";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&dispcc {
+       status = "disabled";
+};
+
+&i2c_master_hub_0 {
+       status = "okay";
+};
+
+&pcie0 {
+       wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+       perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
+       pinctrl-0 = <&pcie0_default_state>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&pcie0_phy {
+       vdda-phy-supply = <&vreg_l1e_0p88>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
+       status = "okay";
+};
+
+&pm8550_gpios {
+       volume_up_n: volume-up-n-state {
+               pins = "gpio6";
+               function = "normal";
+               power-source = <1>;
+               bias-pull-up;
+               input-enable;
+       };
+};
+
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       status = "okay";
+       linux,code = <KEY_VOLUMEDOWN>;
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/sm8550/adsp.mdt",
+                       "qcom/sm8550/adsp_dtb.mdt";
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/sm8550/cdsp.mdt",
+                       "qcom/sm8550/cdsp_dtb.mdt";
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/sm8550/modem.mdt",
+                       "qcom/sm8550/modem_dtb.mdt";
+       status = "okay";
+};
+
+&sleep_clk {
+       clock-frequency = <32000>;
+};
+
+&tlmm {
+       gpio-reserved-ranges = <36 4>, <50 2>;
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
+       vcc-supply = <&vreg_l17b_2p5>;
+       vcc-max-microamp = <1300000>;
+       vccq-supply = <&vreg_l1g_1p2>;
+       vccq-max-microamp = <1200000>;
+       vdd-hba-supply = <&vreg_l3g_1p2>;
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l1d_0p88>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
+       status = "okay";
+};
+
+&xo_board {
+       clock-frequency = <76800000>;
+};
index 85e0d3d66e16a76d0ad2474d3dfe5166b2509b57..85d487ef80a0be5c3586d9de69327abd2b64209b 100644 (file)
        status = "okay";
 };
 
-&usb_1_dwc3 {
-       dr_mode = "otg";
-       usb-role-switch;
-};
-
 &usb_1_dwc3_hs {
        remote-endpoint = <&pmic_glink_hs_in>;
 };
 
-&usb_1_dwc3_ss {
-       remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
-};
-
 &usb_1_hsphy {
        vdd-supply = <&pm8550vs_2_l1>;
        vdda12-supply = <&pm8550vs_2_l3>;
 &usb_dp_qmpphy {
        vdda-phy-supply = <&pm8550vs_2_l3>;
        vdda-pll-supply = <&pm8550ve_l3>;
-       orientation-switch;
 
        status = "okay";
 };
        remote-endpoint = <&pmic_glink_ss_in>;
 };
 
-&usb_dp_qmpphy_usb_ss_in {
-       remote-endpoint = <&usb_1_dwc3_ss>;
-};
-
 &xo_board {
        clock-frequency = <76800000>;
 };
index bc5aeb05ffc3dbb0887a95b693a501896523790f..4c9820adcf52d496cbca4a6bd4042f458f837c83 100644 (file)
                        clock-mult = <1>;
                        clock-div = <2>;
                };
-
-               pcie_1_phy_aux_clk: pcie-1-phy-aux-clk {
-                       compatible = "fixed-clock";
-                       #clock-cells = <0>;
-               };
        };
 
        cpus {
                reg = <0 0xa0000000 0 0>;
        };
 
-       pmu {
-               compatible = "arm,armv8-pmuv3";
+       pmu-a510 {
+               compatible = "arm,cortex-a510-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       pmu-a710 {
+               compatible = "arm,cortex-a710-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       pmu-a715 {
+               compatible = "arm,cortex-a715-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       pmu-x3 {
+               compatible = "arm,cortex-x3-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
        };
 
                        #power-domain-cells = <1>;
                        clocks = <&bi_tcxo_div2>, <&sleep_clk>,
                                 <&pcie0_phy>,
-                                <&pcie1_phy>,
-                                <&pcie_1_phy_aux_clk>,
+                                <&pcie1_phy QMP_PCIE_PIPE_CLK>,
+                                <&pcie1_phy QMP_PCIE_PHY_AUX_CLK>,
                                 <&ufs_mem_phy 0>,
                                 <&ufs_mem_phy 1>,
                                 <&ufs_mem_phy 2>,
 
                        status = "disabled";
 
-                       pcie@0 {
+                       pcieport0: pcie@0 {
                                device_type = "pci";
                                reg = <0x0 0x0 0x0 0x0 0x0>;
                                bus-range = <0x01 0xff>;
 
                        power-domains = <&gcc PCIE_1_PHY_GDSC>;
 
-                       #clock-cells = <0>;
+                       #clock-cells = <1>;
                        clock-output-names = "pcie1_pipe_clk";
 
                        #phy-cells = <0>;
                                        port@1 {
                                                reg = <1>;
                                                mdss_dp0_out: endpoint {
+                                                       remote-endpoint = <&usb_dp_qmpphy_dp_in>;
                                                };
                                        };
                                };
                        #clock-cells = <1>;
                        #phy-cells = <1>;
 
+                       orientation-switch;
+
                        status = "disabled";
 
                        ports {
                                        reg = <1>;
 
                                        usb_dp_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_ss>;
                                        };
                                };
 
                                        reg = <2>;
 
                                        usb_dp_qmpphy_dp_in: endpoint {
+                                               remote-endpoint = <&mdss_dp0_out>;
                                        };
                                };
                        };
                                snps,has-lpm-erratum;
                                tx-fifo-resize;
                                dma-coherent;
+                               usb-role-switch;
 
                                ports {
                                        #address-cells = <1>;
                                                reg = <1>;
 
                                                usb_1_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
                                                };
                                        };
                                };
                              <0 0x25200000 0 0x200000>,
                              <0 0x25400000 0 0x200000>,
                              <0 0x25600000 0 0x200000>,
-                             <0 0x25800000 0 0x200000>;
+                             <0 0x25800000 0 0x200000>,
+                             <0 0x25a00000 0 0x200000>;
                        reg-names = "llcc0_base",
                                    "llcc1_base",
                                    "llcc2_base",
                                    "llcc3_base",
-                                   "llcc_broadcast_base";
+                                   "llcc_broadcast_base",
+                                   "llcc_broadcast_and_base";
                        interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
                };
 
 
        thermal-zones {
                aoss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 0>;
 
                        trips {
                };
 
                cpuss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 1>;
 
                        trips {
                };
 
                cpuss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 2>;
 
                        trips {
                };
 
                cpuss2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 3>;
 
                        trips {
                };
 
                cpuss3-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 4>;
 
                        trips {
                };
 
                cpu3-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 5>;
 
                        trips {
                };
 
                cpu3-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 6>;
 
                        trips {
                };
 
                cpu4-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 7>;
 
                        trips {
                };
 
                cpu4-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 8>;
 
                        trips {
                };
 
                cpu5-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 9>;
 
                        trips {
                };
 
                cpu5-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 10>;
 
                        trips {
                };
 
                cpu6-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 11>;
 
                        trips {
                };
 
                cpu6-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 12>;
 
                        trips {
                };
 
                cpu7-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 13>;
 
                        trips {
                };
 
                cpu7-middle-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 14>;
 
                        trips {
                };
 
                cpu7-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 15>;
 
                        trips {
                };
 
                aoss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 0>;
 
                        trips {
                };
 
                cpu0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 1>;
 
                        trips {
                };
 
                cpu1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 2>;
 
                        trips {
                };
 
                cpu2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 3>;
 
                        trips {
 
                cdsp0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 4>;
 
                        trips {
 
                cdsp1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 5>;
 
                        trips {
 
                cdsp2-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 6>;
 
                        trips {
 
                cdsp3-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 7>;
 
                        trips {
                };
 
                video-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 8>;
 
                        trips {
 
                mem-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens1 9>;
 
                        trips {
                };
 
                modem0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 10>;
 
                        trips {
                };
 
                modem1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 11>;
 
                        trips {
                };
 
                modem2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 12>;
 
                        trips {
                };
 
                modem3-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 13>;
 
                        trips {
                };
 
                camera0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 14>;
 
                        trips {
                };
 
                camera1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 15>;
 
                        trips {
                };
 
                aoss2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens2 0>;
 
                        trips {
 
                gpuss-0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 1>;
 
                        cooling-maps {
                                map0 {
-                                       trip = <&gpu0_junction_config>;
+                                       trip = <&gpu0_alert0>;
                                        cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
                                };
                        };
 
                        trips {
-                               thermal-engine-config {
-                                       temperature = <125000>;
+                               gpu0_alert0: trip-point0 {
+                                       temperature = <85000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
-                               thermal-hal-config {
-                                       temperature = <125000>;
+                               trip-point1 {
+                                       temperature = <90000>;
                                        hysteresis = <1000>;
-                                       type = "passive";
-                               };
-
-                               reset-mon-config {
-                                       temperature = <115000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                                       type = "hot";
                                };
 
-                               gpu0_junction_config: junction-config {
-                                       temperature = <95000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
                                };
                        };
                };
 
                gpuss-1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 2>;
 
                        cooling-maps {
                                map0 {
-                                       trip = <&gpu1_junction_config>;
+                                       trip = <&gpu1_alert0>;
                                        cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
                                };
                        };
 
                        trips {
-                               thermal-engine-config {
-                                       temperature = <125000>;
+                               gpu1_alert0: trip-point0 {
+                                       temperature = <85000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
-                               thermal-hal-config {
-                                       temperature = <125000>;
+                               trip-point1 {
+                                       temperature = <90000>;
                                        hysteresis = <1000>;
-                                       type = "passive";
+                                       type = "hot";
                                };
 
-                               reset-mon-config {
-                                       temperature = <115000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
-                               };
-
-                               gpu1_junction_config: junction-config {
-                                       temperature = <95000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
                                };
                        };
                };
 
                gpuss-2-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 3>;
 
                        cooling-maps {
                                map0 {
-                                       trip = <&gpu2_junction_config>;
+                                       trip = <&gpu2_alert0>;
                                        cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
                                };
                        };
 
                        trips {
-                               thermal-engine-config {
-                                       temperature = <125000>;
+                               gpu2_alert0: trip-point0 {
+                                       temperature = <85000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
-                               thermal-hal-config {
-                                       temperature = <125000>;
+                               trip-point1 {
+                                       temperature = <90000>;
                                        hysteresis = <1000>;
-                                       type = "passive";
+                                       type = "hot";
                                };
 
-                               reset-mon-config {
-                                       temperature = <115000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
-                               };
-
-                               gpu2_junction_config: junction-config {
-                                       temperature = <95000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
                                };
                        };
                };
 
                gpuss-3-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 4>;
 
                        cooling-maps {
                                map0 {
-                                       trip = <&gpu3_junction_config>;
+                                       trip = <&gpu3_alert0>;
                                        cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
                                };
                        };
 
                        trips {
-                               thermal-engine-config {
-                                       temperature = <125000>;
+                               gpu3_alert0: trip-point0 {
+                                       temperature = <85000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
-                               thermal-hal-config {
-                                       temperature = <125000>;
+                               trip-point1 {
+                                       temperature = <90000>;
                                        hysteresis = <1000>;
-                                       type = "passive";
-                               };
-
-                               reset-mon-config {
-                                       temperature = <115000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                                       type = "hot";
                                };
 
-                               gpu3_junction_config: junction-config {
-                                       temperature = <95000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
                                };
                        };
                };
 
                gpuss-4-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 5>;
 
                        cooling-maps {
                                map0 {
-                                       trip = <&gpu4_junction_config>;
+                                       trip = <&gpu4_alert0>;
                                        cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
                                };
                        };
 
                        trips {
-                               thermal-engine-config {
-                                       temperature = <125000>;
+                               gpu4_alert0: trip-point0 {
+                                       temperature = <85000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
-                               thermal-hal-config {
-                                       temperature = <125000>;
+                               trip-point1 {
+                                       temperature = <90000>;
                                        hysteresis = <1000>;
-                                       type = "passive";
-                               };
-
-                               reset-mon-config {
-                                       temperature = <115000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                                       type = "hot";
                                };
 
-                               gpu4_junction_config: junction-config {
-                                       temperature = <95000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
                                };
                        };
                };
 
                gpuss-5-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 6>;
 
                        cooling-maps {
                                map0 {
-                                       trip = <&gpu5_junction_config>;
+                                       trip = <&gpu5_alert0>;
                                        cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
                                };
                        };
 
                        trips {
-                               thermal-engine-config {
-                                       temperature = <125000>;
+                               gpu5_alert0: trip-point0 {
+                                       temperature = <85000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
-                               thermal-hal-config {
-                                       temperature = <125000>;
+                               trip-point1 {
+                                       temperature = <90000>;
                                        hysteresis = <1000>;
-                                       type = "passive";
+                                       type = "hot";
                                };
 
-                               reset-mon-config {
-                                       temperature = <115000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
-                               };
-
-                               gpu5_junction_config: junction-config {
-                                       temperature = <95000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
                                };
                        };
                };
 
                gpuss-6-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 7>;
 
                        cooling-maps {
                                map0 {
-                                       trip = <&gpu6_junction_config>;
+                                       trip = <&gpu6_alert0>;
                                        cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
                                };
                        };
 
                        trips {
-                               thermal-engine-config {
-                                       temperature = <125000>;
+                               gpu6_alert0: trip-point0 {
+                                       temperature = <85000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
-                               thermal-hal-config {
-                                       temperature = <125000>;
+                               trip-point1 {
+                                       temperature = <90000>;
                                        hysteresis = <1000>;
-                                       type = "passive";
+                                       type = "hot";
                                };
 
-                               reset-mon-config {
-                                       temperature = <115000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
-                               };
-
-                               gpu6_junction_config: junction-config {
-                                       temperature = <95000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
                                };
                        };
                };
 
                gpuss-7-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 8>;
 
                        cooling-maps {
                                map0 {
-                                       trip = <&gpu7_junction_config>;
+                                       trip = <&gpu7_alert0>;
                                        cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
                                };
                        };
 
                        trips {
-                               thermal-engine-config {
-                                       temperature = <125000>;
+                               gpu7_alert0: trip-point0 {
+                                       temperature = <85000>;
                                        hysteresis = <1000>;
                                        type = "passive";
                                };
 
-                               thermal-hal-config {
-                                       temperature = <125000>;
+                               trip-point1 {
+                                       temperature = <90000>;
                                        hysteresis = <1000>;
-                                       type = "passive";
+                                       type = "hot";
                                };
 
-                               reset-mon-config {
-                                       temperature = <115000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
-                               };
-
-                               gpu7_junction_config: junction-config {
-                                       temperature = <95000>;
-                                       hysteresis = <5000>;
-                                       type = "passive";
+                               trip-point2 {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
                                };
                        };
                };
diff --git a/src/arm64/qcom/sm8650-hdk-display-card.dtso b/src/arm64/qcom/sm8650-hdk-display-card.dtso
new file mode 100644 (file)
index 0000000..cb10253
--- /dev/null
@@ -0,0 +1,141 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024, Linaro Limited
+ */
+
+/*
+ * Display Card kit overlay
+ * This requires S5702 Switch 7 to be turned to OFF to route DSI0 to the display panel
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/dts-v1/;
+/plugin/;
+
+/* Disable HDMI bridge related nodes (mutually exclusive with the display card) */
+
+&i2c6 {
+       status = "disabled";
+};
+
+&lt9611_1v2 {
+       status = "disabled";
+};
+
+&lt9611_3v3 {
+       status = "disabled";
+};
+
+&vreg_bob_3v3 {
+       status = "disabled";
+};
+
+&lt9611_codec {
+       status = "disabled";
+};
+
+&mdss_dsi0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       panel@0 {
+               compatible = "visionox,vtdr6130";
+               reg = <0>;
+
+               reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+
+               vddio-supply = <&vreg_l12b_1p8>;
+               vci-supply = <&vreg_l13b_3p0>;
+               vdd-supply = <&vreg_l11b_1p2>;
+
+               pinctrl-0 = <&disp0_reset_n_active>, <&mdp_vsync>;
+               pinctrl-1 = <&disp0_reset_n_suspend>, <&mdp_vsync>;
+               pinctrl-names = "default", "sleep";
+
+               port {
+                       panel0_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@1 {
+                       reg = <1>;
+
+                       mdss_dsi0_out: endpoint {
+                               remote-endpoint = <&panel0_in>;
+                       };
+               };
+       };
+};
+
+&spi4 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       status = "okay";
+
+       touchscreen@0 {
+               compatible = "goodix,gt9916";
+               reg = <0>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <162 IRQ_TYPE_LEVEL_LOW>;
+
+               reset-gpios = <&tlmm 161 GPIO_ACTIVE_LOW>;
+
+               avdd-supply = <&vreg_l14b_3p2>;
+
+               spi-max-frequency = <1000000>;
+
+               touchscreen-size-x = <1080>;
+               touchscreen-size-y = <2400>;
+
+               pinctrl-0 = <&ts_irq>, <&ts_reset>;
+               pinctrl-names = "default";
+       };
+};
+
+&tlmm {
+       disp0_reset_n_active: disp0-reset-n-active-state {
+               pins = "gpio133";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       disp0_reset_n_suspend: disp0-reset-n-suspend-state {
+               pins = "gpio133";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       mdp_vsync: mdp-vsync-state {
+               pins = "gpio86";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       ts_irq: ts-irq-state {
+               pins = "gpio161";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+               output-disable;
+       };
+
+       ts_reset: ts-reset-state {
+               pins = "gpio162";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-up;
+       };
+};
diff --git a/src/arm64/qcom/sm8650-hdk.dts b/src/arm64/qcom/sm8650-hdk.dts
new file mode 100644 (file)
index 0000000..591e6ab
--- /dev/null
@@ -0,0 +1,1355 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024, Linaro Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sm8650.dtsi"
+#include "pm8010.dtsi"
+#include "pm8550.dtsi"
+#include "pm8550b.dtsi"
+#define PMK8550VE_SID 8
+#include "pm8550ve.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmk8550.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. SM8650 HDK";
+       compatible = "qcom,sm8650-hdk", "qcom,sm8650";
+       chassis-type = "embedded";
+
+       aliases {
+               serial0 = &uart15;
+               serial1 = &uart14;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       hdmi-out {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_connector_out: endpoint {
+                               remote-endpoint = <&lt9611_out>;
+                       };
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&volume_up_n>;
+               pinctrl-names = "default";
+
+               key-volume-up {
+                       label = "Volume Up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       function = LED_FUNCTION_BLUETOOTH;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "bluetooth-power";
+                       default-state = "off";
+               };
+
+               led-1 {
+                       function = LED_FUNCTION_INDICATOR;
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&pm8550b_gpios 9 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+                       panic-indicator;
+               };
+
+               led-2 {
+                       function = LED_FUNCTION_WLAN;
+                       color = <LED_COLOR_ID_ORANGE>;
+                       gpios = <&pm8550b_gpios 10 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "phy0tx";
+                       default-state = "off";
+               };
+       };
+
+       pmic-glink {
+               compatible = "qcom,sm8650-pmic-glink",
+                            "qcom,sm8550-pmic-glink",
+                            "qcom,pmic-glink";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               orientation-gpios = <&tlmm 29 GPIO_ACTIVE_HIGH>;
+
+               connector@0 {
+                       compatible = "usb-c-connector";
+                       reg = <0>;
+
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       pmic_glink_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss_in: endpoint {
+                                               remote-endpoint = <&usb_dp_qmpphy_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_sbu: endpoint {
+                                               remote-endpoint = <&wcd_usbss_sbu_mux>;
+                                   };
+                               };
+                       };
+               };
+       };
+
+       lt9611_1v2: regulator-lt9611-1v2 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "LT9611_1V2";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+
+               vin-supply = <&vph_pwr>;
+               gpio = <&tlmm 79 GPIO_ACTIVE_HIGH>;
+
+               enable-active-high;
+       };
+
+       lt9611_3v3: regulator-lt9611-3v3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "LT9611_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               vin-supply = <&vreg_bob_3v3>;
+               gpio = <&tlmm 78 GPIO_ACTIVE_HIGH>;
+
+               enable-active-high;
+       };
+
+       sound {
+               compatible = "qcom,sm8650-sndcard", "qcom,sm8450-sndcard";
+               model = "SM8650-HDK";
+               audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT",
+                               "SpkrRight IN", "WSA_SPK2 OUT",
+                               "IN1_HPHL", "HPHL_OUT",
+                               "IN2_HPHR", "HPHR_OUT",
+                               "AMIC1", "MIC BIAS1",
+                               "AMIC2", "MIC BIAS2",
+                               "AMIC5", "MIC BIAS4",
+                               "TX SWR_INPUT0", "ADC1_OUTPUT",
+                               "TX SWR_INPUT1", "ADC2_OUTPUT",
+                               "TX SWR_INPUT3", "ADC4_OUTPUT";
+
+               wcd-playback-dai-link {
+                       link-name = "WCD Playback";
+
+                       cpu {
+                               sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
+                       };
+
+                       codec {
+                               sound-dai = <&wcd939x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               wcd-capture-dai-link {
+                       link-name = "WCD Capture";
+
+                       cpu {
+                               sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
+                       };
+
+                       codec {
+                               sound-dai = <&wcd939x 1>, <&swr2 0>, <&lpass_txmacro 0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               wsa-dai-link {
+                       link-name = "WSA Playback";
+
+                       cpu {
+                               sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+                       };
+
+                       codec {
+                               sound-dai = <&north_spkr>, <&south_spkr>, <&swr0 0>, <&lpass_wsamacro 0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+       };
+
+       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_bob_3v3: regulator-vreg-bob-3v3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_BOB_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               vin-supply = <&vph_pwr>;
+       };
+
+       wcd939x: audio-codec {
+               compatible = "qcom,wcd9395-codec", "qcom,wcd9390-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 107 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>;
+       };
+
+       wcn7850-pmu {
+               compatible = "qcom,wcn7850-pmu";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_en>;
+
+               wlan-enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
+               /*
+                * TODO Add bt-enable-gpios once the Bluetooth driver is
+                * converted to using the power sequencer.
+                */
+
+               vdd-supply = <&vreg_s4i_0p85>;
+               vddio-supply = <&vreg_l15b_1p8>;
+               vddio1p2-supply = <&vreg_l3c_1p2>;
+               vddaon-supply = <&vreg_s2c_0p8>;
+               vdddig-supply = <&vreg_s3c_0p9>;
+               vddrfa1p2-supply = <&vreg_s1c_1p2>;
+               vddrfa1p8-supply = <&vreg_s6c_1p8>;
+
+               clocks = <&rpmhcc RPMH_RF_CLK1>;
+
+               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";
+
+               vdd-bob1-supply = <&vph_pwr>;
+               vdd-bob2-supply = <&vph_pwr>;
+               vdd-l2-l13-l14-supply = <&vreg_bob1>;
+               vdd-l3-supply = <&vreg_s1c_1p2>;
+               vdd-l5-l16-supply = <&vreg_bob1>;
+               vdd-l6-l7-supply = <&vreg_bob1>;
+               vdd-l8-l9-supply = <&vreg_bob1>;
+               vdd-l11-supply = <&vreg_s1c_1p2>;
+               vdd-l12-supply = <&vreg_s6c_1p8>;
+               vdd-l15-supply = <&vreg_s6c_1p8>;
+               vdd-l17-supply = <&vreg_bob2>;
+
+               qcom,pmic-id = "b";
+
+               vreg_bob1: bob1 {
+                       regulator-name = "vreg_bob1";
+                       regulator-min-microvolt = <3296000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob2: bob2 {
+                       regulator-name = "vreg_bob2";
+                       regulator-min-microvolt = <2720000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b_3p0: ldo2 {
+                       regulator-name = "vreg_l2b_3p0";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5b_3p1: ldo5 {
+                       regulator-name = "vreg_l5b_3p1";
+                       regulator-min-microvolt = <3104000>;
+                       regulator-max-microvolt = <3104000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6b_1p8: ldo6 {
+                       regulator-name = "vreg_l6b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7b_1p8: ldo7 {
+                       regulator-name = "vreg_l7b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b_1p8: ldo8 {
+                       regulator-name = "vreg_l8b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l9b_2p9: ldo9 {
+                       regulator-name = "vreg_l9b_2p9";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l11b_1p2: ldo11 {
+                       regulator-name = "vreg_l11b_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l12b_1p8: ldo12 {
+                       regulator-name = "vreg_l12b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l13b_3p0: ldo13 {
+                       regulator-name = "vreg_l13b_3p0";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b_3p2: ldo14 {
+                       regulator-name = "vreg_l14b_3p2";
+                       regulator-min-microvolt = <3200000>;
+                       regulator-max-microvolt = <3200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l15b_1p8: ldo15 {
+                       regulator-name = "vreg_l15b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l16b_2p8: ldo16 {
+                       regulator-name = "vreg_l16b_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l17b_2p5: ldo17 {
+                       regulator-name = "vreg_l17b_2p5";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <2504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s1c_1p2>;
+               vdd-l2-supply = <&vreg_s1c_1p2>;
+               vdd-l3-supply = <&vreg_s1c_1p2>;
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+
+               qcom,pmic-id = "c";
+
+               vreg_s1c_1p2: smps1 {
+                       regulator-name = "vreg_s1c_1p2";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1348000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s2c_0p8: smps2 {
+                       regulator-name = "vreg_s2c_0p8";
+                       regulator-min-microvolt = <852000>;
+                       regulator-max-microvolt = <1036000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s3c_0p9: smps3 {
+                       regulator-name = "vreg_s3c_0p9";
+                       regulator-min-microvolt = <976000>;
+                       regulator-max-microvolt = <1064000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s4c_1p2: smps4 {
+                       regulator-name = "vreg_s4c_1p2";
+                       regulator-min-microvolt = <1224000>;
+                       regulator-max-microvolt = <1280000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s5c_0p7: smps5 {
+                       regulator-name = "vreg_s5c_0p7";
+                       regulator-min-microvolt = <752000>;
+                       regulator-max-microvolt = <900000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s6c_1p8: smps6 {
+                       regulator-name = "vreg_s6c_1p8";
+                       regulator-min-microvolt = <1856000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1c_1p2: ldo1 {
+                       regulator-name = "vreg_l1c_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_1p2: ldo3 {
+                       regulator-name = "vreg_l3c_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s3c_0p9>;
+
+               qcom,pmic-id = "d";
+
+               vreg_l1d_0p88: ldo1 {
+                       regulator-name = "vreg_l1d_0p88";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-3 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+
+               vdd-l3-supply = <&vreg_s3c_0p9>;
+
+               qcom,pmic-id = "e";
+
+               vreg_l3e_0p9: ldo3 {
+                       regulator-name = "vreg_l3e_0p9";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-4 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s3c_0p9>;
+               vdd-l3-supply = <&vreg_s3c_0p9>;
+
+               qcom,pmic-id = "g";
+
+               vreg_l1g_0p91: ldo1 {
+                       regulator-name = "vreg_l1g_0p91";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3g_0p91: ldo3 {
+                       regulator-name = "vreg_l3g_0p91";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-5 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+
+               vdd-l1-supply = <&vreg_s3c_0p9>;
+               vdd-l2-supply = <&vreg_s3c_0p9>;
+               vdd-l3-supply = <&vreg_s1c_1p2>;
+               vdd-s4-supply = <&vph_pwr>;
+
+               qcom,pmic-id = "i";
+
+               vreg_s4i_0p85: smps4 {
+                       regulator-name = "vreg_s4i_0p85";
+                       regulator-min-microvolt = <852000>;
+                       regulator-max-microvolt = <1004000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1i_0p88: ldo1 {
+                       regulator-name = "vreg_l1i_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2i_0p88: ldo2 {
+                       regulator-name = "vreg_l2i_0p88";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3i_1p2: ldo3 {
+                       regulator-name = "vreg_l3i_0p91";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-6 {
+               compatible = "qcom,pm8010-rpmh-regulators";
+               qcom,pmic-id = "m";
+
+               vdd-l1-l2-supply = <&vreg_s1c_1p2>;
+               vdd-l3-l4-supply = <&vreg_bob2>;
+               vdd-l5-supply = <&vreg_s6c_1p8>;
+               vdd-l6-supply = <&vreg_bob1>;
+               vdd-l7-supply = <&vreg_bob1>;
+
+               vreg_l1m_1p1: ldo1 {
+                       regulator-name = "vreg_l1m_1p1";
+                       regulator-min-microvolt = <1104000>;
+                       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_l2m_1p056: ldo2 {
+                       regulator-name = "vreg_l2m_1p056";
+                       regulator-min-microvolt = <1056000>;
+                       regulator-max-microvolt = <1056000>;
+                       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 = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l4m_2p8: ldo4 {
+                       regulator-name = "vreg_l4m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l5m_1p8: ldo5 {
+                       regulator-name = "vreg_l5m_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l6m_2p8: ldo6 {
+                       regulator-name = "vreg_l6m_2p8";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l7m_2p96: ldo7 {
+                       regulator-name = "vreg_l7m_2p96";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <2960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-7 {
+               compatible = "qcom,pm8010-rpmh-regulators";
+               qcom,pmic-id = "n";
+
+               vdd-l1-l2-supply = <&vreg_s1c_1p2>;
+               vdd-l3-l4-supply = <&vreg_s6c_1p8>;
+               vdd-l5-supply = <&vreg_bob2>;
+               vdd-l6-supply = <&vreg_bob2>;
+               vdd-l7-supply = <&vreg_bob1>;
+
+               vreg_l1n_1p1: ldo1 {
+                       regulator-name = "vreg_l1n_1p1";
+                       regulator-min-microvolt = <1104000>;
+                       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_1p056: ldo2 {
+                       regulator-name = "vreg_l2n_1p056";
+                       regulator-min-microvolt = <1056000>;
+                       regulator-max-microvolt = <1056000>;
+                       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>;
+               };
+       };
+};
+
+&dispcc {
+       status = "okay";
+};
+
+&gpi_dma1 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+
+       wcd_usbss: typec-mux@e {
+               compatible = "qcom,wcd9395-usbss", "qcom,wcd9390-usbss";
+               reg = <0xe>;
+
+               vdd-supply = <&vreg_l15b_1p8>;
+               reset-gpios = <&tlmm 152 GPIO_ACTIVE_HIGH>;
+
+               mode-switch;
+               orientation-switch;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               wcd_usbss_sbu_mux: endpoint {
+                                       remote-endpoint = <&pmic_glink_sbu>;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c6 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       lt9611_codec: hdmi-bridge@2b {
+               compatible = "lontium,lt9611uxc";
+               reg = <0x2b>;
+
+               interrupts-extended = <&tlmm 85 IRQ_TYPE_EDGE_FALLING>;
+
+               reset-gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>;
+
+               vdd-supply = <&lt9611_1v2>;
+               vcc-supply = <&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_connector_out>;
+                               };
+                       };
+               };
+       };
+};
+
+&ipa {
+       qcom,gsi-loader = "self";
+       memory-region = <&ipa_fw_mem>;
+       firmware-name = "qcom/sm8650/ipa_fws.mbn";
+       status = "okay";
+};
+
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               firmware-name = "qcom/sm8650/gen70900_zap.mbn";
+       };
+};
+
+&lpass_tlmm {
+       spkr_1_sd_n_active: spkr-1-sd-n-active-state {
+               pins = "gpio21";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-low;
+       };
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi0 {
+       vdda-supply = <&vreg_l3i_1p2>;
+
+       status = "okay";
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&lt9611_a>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+       vdds-supply = <&vreg_l1i_0p88>;
+
+       status = "okay";
+};
+
+&mdss_dp0 {
+       status = "okay";
+};
+
+&mdss_dp0_out {
+       data-lanes = <0 1>;
+};
+
+&pcie0 {
+       wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+       perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
+
+       pinctrl-0 = <&pcie0_default_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcieport0 {
+       wifi@0 {
+               compatible = "pci17cb,1107";
+               reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+               vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+               vddaon-supply = <&vreg_pmu_aon_0p59>;
+               vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+               vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+               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>;
+       };
+};
+
+&pcie0_phy {
+       vdda-phy-supply = <&vreg_l1i_0p88>;
+       vdda-pll-supply = <&vreg_l3i_1p2>;
+
+       status = "okay";
+};
+
+&pcie1 {
+       wake-gpios = <&tlmm 99 GPIO_ACTIVE_HIGH>;
+       perst-gpios = <&tlmm 97 GPIO_ACTIVE_LOW>;
+
+       pinctrl-0 = <&pcie1_default_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie1_phy {
+       vdda-phy-supply = <&vreg_l3e_0p9>;
+       vdda-pll-supply = <&vreg_l3i_1p2>;
+       vdda-qref-supply = <&vreg_l1i_0p88>;
+
+       status = "okay";
+};
+
+&pm8550_gpios {
+       sdc2_card_det_n: sdc2-card-det-state {
+               pins = "gpio12";
+               function = "normal";
+               bias-pull-up;
+               input-enable;
+               output-disable;
+               power-source = <1>; /* 1.8 V */
+       };
+
+       volume_up_n: volume-up-n-state {
+               pins = "gpio6";
+               function = "normal";
+               bias-pull-up;
+               input-enable;
+               power-source = <1>;
+       };
+};
+
+/* The RGB signals are routed to 3 separate LEDs on the HDK8650 */
+&pm8550_pwm {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       status = "okay";
+
+       led@1 {
+               reg = <1>;
+               function = LED_FUNCTION_STATUS;
+               color = <LED_COLOR_ID_RED>;
+               default-state = "off";
+       };
+
+       led@2 {
+               reg = <2>;
+               function = LED_FUNCTION_STATUS;
+               color = <LED_COLOR_ID_GREEN>;
+               default-state = "off";
+       };
+
+       led@3 {
+               reg = <3>;
+               function = LED_FUNCTION_STATUS;
+               color = <LED_COLOR_ID_BLUE>;
+               default-state = "off";
+       };
+};
+
+&pm8550b_eusb2_repeater {
+       vdd18-supply = <&vreg_l15b_1p8>;
+       vdd3-supply = <&vreg_l5b_3p1>;
+};
+
+&pmk8550_rtc {
+       status = "okay";
+};
+
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+
+       status = "okay";
+};
+
+&qup_i2c3_data_clk {
+       /* Use internal I2C pull-up */
+       bias-pull-up = <2200>;
+};
+
+&qupv3_id_0 {
+       iommus = <&apps_smmu 0xa3 0x3>;
+
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/sm8650/adsp.mbn",
+                       "qcom/sm8650/adsp_dtb.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/sm8650/cdsp.mbn",
+                       "qcom/sm8650/cdsp_dtb.mbn";
+
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/sm8650/modem.mbn",
+                       "qcom/sm8650/modem_dtb.mbn";
+
+       status = "okay";
+};
+
+&sdhc_2 {
+       cd-gpios = <&pm8550_gpios 12 GPIO_ACTIVE_HIGH>;
+
+       vmmc-supply = <&vreg_l9b_2p9>;
+       vqmmc-supply = <&vreg_l8b_1p8>;
+       bus-width = <4>;
+       no-sdio;
+       no-mmc;
+
+       pinctrl-0 = <&sdc2_default>, <&sdc2_card_det_n>;
+       pinctrl-1 = <&sdc2_sleep>, <&sdc2_card_det_n>;
+       pinctrl-names = "default", "sleep";
+
+       status = "okay";
+};
+
+&sleep_clk {
+       clock-frequency = <32000>;
+};
+
+&swr0 {
+       status = "okay";
+
+       /* WSA8845, Speaker North */
+       north_spkr: speaker@0,0 {
+               compatible = "sdw20217020400";
+               reg = <0 0>;
+               pinctrl-0 = <&spkr_1_sd_n_active>;
+               pinctrl-names = "default";
+               powerdown-gpios = <&lpass_tlmm 21 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "SpkrLeft";
+               vdd-1p8-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l3c_1p2>;
+
+               /*
+                * WSA8845 Port 1 (DAC)     <=> SWR0 Port 1 (SPKR_L)
+                * WSA8845 Port 2 (COMP)    <=> SWR0 Port 2 (SPKR_L_COMP)
+                * WSA8845 Port 3 (BOOST)   <=> SWR0 Port 3 (SPKR_L_BOOST)
+                * WSA8845 Port 4 (PBR)     <=> SWR0 Port 7 (PBR)
+                * WSA8845 Port 5 (VISENSE) <=> SWR0 Port 10 (SPKR_L_VI)
+                * WSA8845 Port 6 (CPS)     <=> SWR0 Port 13 (CPS)
+                */
+               qcom,port-mapping = <1 2 3 7 10 13>;
+       };
+
+       /* WSA8845, Speaker South */
+       south_spkr: speaker@0,1 {
+               compatible = "sdw20217020400";
+               reg = <0 1>;
+               pinctrl-0 = <&spkr_2_sd_n_active>;
+               pinctrl-names = "default";
+               powerdown-gpios = <&tlmm 77 GPIO_ACTIVE_LOW>;
+               #sound-dai-cells = <0>;
+               sound-name-prefix = "SpkrRight";
+               vdd-1p8-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l3c_1p2>;
+
+               /*
+                * WSA8845 Port 1 (DAC)     <=> SWR0 Port 4 (SPKR_R)
+                * WSA8845 Port 2 (COMP)    <=> SWR0 Port 5 (SPKR_R_COMP)
+                * WSA8845 Port 3 (BOOST)   <=> SWR0 Port 6 (SPKR_R_BOOST)
+                * WSA8845 Port 4 (PBR)     <=> SWR0 Port 7 (PBR)
+                * WSA8845 Port 5 (VISENSE) <=> SWR0 Port 11 (SPKR_R_VI)
+                * WSA8845 Port 6 (CPS)     <=> SWR0 Port 13 (CPS)
+                */
+               qcom,port-mapping = <4 5 6 7 11 13>;
+       };
+};
+
+&swr1 {
+       status = "okay";
+
+       /* WCD9395 RX */
+       wcd_rx: codec@0,4 {
+               compatible = "sdw20217010e00";
+               reg = <0 4>;
+
+               /*
+                * WCD9395 RX Port 1 (HPH_L/R)      <=> SWR1 Port 1 (HPH_L/R)
+                * WCD9395 RX Port 2 (CLSH)         <=> SWR1 Port 2 (CLSH)
+                * WCD9395 RX Port 3 (COMP_L/R)     <=> SWR1 Port 3 (COMP_L/R)
+                * WCD9395 RX Port 4 (LO)           <=> SWR1 Port 4 (LO)
+                * WCD9395 RX Port 5 (DSD_L/R)      <=> SWR1 Port 5 (DSD_L/R)
+                * WCD9395 RX Port 6 (HIFI_PCM_L/R) <=> SWR1 Port 9 (HIFI_PCM_L/R)
+                */
+               qcom,rx-port-mapping = <1 2 3 4 5 9>;
+       };
+};
+
+&swr2 {
+       status = "okay";
+
+       /* WCD9395 TX */
+       wcd_tx: codec@0,3 {
+               compatible = "sdw20217010e00";
+               reg = <0 3>;
+
+               /*
+                * WCD9395 TX Port 1 (ADC1,2,3,4)         <=> SWR2 Port 2 (TX SWR_INPUT 0,1,2,3)
+                * WCD9395 TX Port 2 (ADC3,4 & DMIC0,1)   <=> SWR2 Port 2 (TX SWR_INPUT 0,1,2,3)
+                * WCD9395 TX Port 3 (DMIC0,1,2,3 & MBHC) <=> SWR2 Port 3 (TX SWR_INPUT 4,5,6,7)
+                * WCD9395 TX Port 4 (DMIC4,5,6,7)        <=> SWR2 Port 4 (TX SWR_INPUT 8,9,10,11)
+                */
+               qcom,tx-port-mapping = <2 2 3 4>;
+       };
+};
+
+&tlmm {
+       /* Reserved I/Os for NFC */
+       gpio-reserved-ranges = <32 8>, <74 1>;
+
+       bt_default: bt-default-state {
+               bt-en-pins {
+                       pins = "gpio17";
+                       function = "gpio";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+
+               sw-ctrl-pins {
+                       pins = "gpio18";
+                       function = "gpio";
+                       bias-pull-down;
+               };
+       };
+
+       lt9611_irq_pin: lt9611-irq-state {
+               pins = "gpio85";
+               function = "gpio";
+               bias-disable;
+       };
+
+       lt9611_rst_pin: lt9611-rst-state {
+               pins = "gpio28";
+               function = "gpio";
+               output-high;
+       };
+
+       spkr_2_sd_n_active: spkr-2-sd-n-active-state {
+               pins = "gpio77";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-low;
+       };
+
+       wcd_default: wcd-reset-n-active-state {
+               pins = "gpio107";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-low;
+       };
+
+       wlan_en: wlan-en-state {
+               pins = "gpio16";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-down;
+       };
+};
+
+&uart14 {
+       status = "okay";
+
+       bluetooth {
+               compatible = "qcom,wcn7850-bt";
+
+               vddio-supply = <&vreg_l3c_1p2>;
+               vddaon-supply = <&vreg_l15b_1p8>;
+               vdddig-supply = <&vreg_s3c_0p9>;
+               vddrfa0p8-supply = <&vreg_s3c_0p9>;
+               vddrfa1p2-supply = <&vreg_s1c_1p2>;
+               vddrfa1p9-supply = <&vreg_s6c_1p8>;
+
+               max-speed = <3200000>;
+
+               enable-gpios = <&tlmm 17 GPIO_ACTIVE_HIGH>;
+               swctrl-gpios = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&bt_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&uart15 {
+       status = "okay";
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 210 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l17b_2p5>;
+       vcc-max-microamp = <1300000>;
+       vccq-supply = <&vreg_l1c_1p2>;
+       vccq-max-microamp = <1200000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l1d_0p88>;
+       vdda-pll-supply = <&vreg_l3i_1p2>;
+
+       status = "okay";
+};
+
+/*
+ * DPAUX -> WCD9395 -> USB_SBU -> USB-C
+ * eUSB2 DP/DM -> PM85550HS -> eUSB2 DP/DM -> WCD9395 -> USB-C
+ * USB SS -> USB-C
+ */
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "otg";
+       usb-role-switch;
+};
+
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_hsphy {
+       vdd-supply = <&vreg_l1i_0p88>;
+       vdda12-supply = <&vreg_l3i_1p2>;
+
+       phys = <&pm8550b_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_dp_qmpphy {
+       vdda-phy-supply = <&vreg_l3i_1p2>;
+       vdda-pll-supply = <&vreg_l3g_0p91>;
+
+       status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss_in>;
+};
+
+&xo_board {
+       clock-frequency = <76800000>;
+};
index d04ceaa73c2b1920260208cba48b3fc086cbaf10..c63822f5b127894c1bb1b9159927a55cba2ea701 100644 (file)
@@ -59,7 +59,7 @@
                                        reg = <1>;
 
                                        pmic_glink_ss_in: endpoint {
-                                               remote-endpoint = <&usb_1_dwc3_ss>;
+                                               remote-endpoint = <&usb_dp_qmpphy_out>;
                                        };
                                };
                        };
        status = "okay";
 };
 
-&pcie_1_phy_aux_clk {
-       clock-frequency = <1000>;
-};
-
 &pcie0 {
        wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
        perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
                sound-name-prefix = "SpkrLeft";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
                vdd-io-supply = <&vreg_l3c_1p2>;
+
+               /*
+                * WSA8845 Port 1 (DAC)     <=> SWR0 Port 1 (SPKR_L)
+                * WSA8845 Port 2 (COMP)    <=> SWR0 Port 2 (SPKR_L_COMP)
+                * WSA8845 Port 3 (BOOST)   <=> SWR0 Port 3 (SPKR_L_BOOST)
+                * WSA8845 Port 4 (PBR)     <=> SWR0 Port 7 (PBR)
+                * WSA8845 Port 5 (VISENSE) <=> SWR0 Port 10 (SPKR_L_VI)
+                * WSA8845 Port 6 (CPS)     <=> SWR0 Port 13 (CPS)
+                */
+               qcom,port-mapping = <1 2 3 7 10 13>;
        };
 
        /* WSA8845, Speaker Right */
                sound-name-prefix = "SpkrRight";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
                vdd-io-supply = <&vreg_l3c_1p2>;
+
+               /*
+                * WSA8845 Port 1 (DAC)     <=> SWR0 Port 4 (SPKR_R)
+                * WSA8845 Port 2 (COMP)    <=> SWR0 Port 5 (SPKR_R_COMP)
+                * WSA8845 Port 3 (BOOST)   <=> SWR0 Port 6 (SPKR_R_BOOST)
+                * WSA8845 Port 4 (PBR)     <=> SWR0 Port 7 (PBR)
+                * WSA8845 Port 5 (VISENSE) <=> SWR0 Port 11 (SPKR_R_VI)
+                * WSA8845 Port 6 (CPS)     <=> SWR0 Port 13 (CPS)
+                */
+               qcom,port-mapping = <4 5 6 7 11 13>;
        };
 };
 
        remote-endpoint = <&pmic_glink_hs_in>;
 };
 
-&usb_1_dwc3_ss {
-       remote-endpoint = <&pmic_glink_ss_in>;
-};
-
 &usb_1_hsphy {
        vdd-supply = <&vreg_l1i_0p88>;
        vdda12-supply = <&vreg_l3i_1p2>;
        status = "okay";
 };
 
+&usb_dp_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss_in>;
+};
+
 &xo_board {
        clock-frequency = <76800000>;
 };
index 4e94f7fe4d2d0430ece931c236b14ac3714f2fe7..b0d7927b708f1d01877c9177da5e02180a333029 100644 (file)
                        };
                };
        };
+
+       wcn7850-pmu {
+               compatible = "qcom,wcn7850-pmu";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_en>;
+
+               wlan-enable-gpios = <&tlmm 16 GPIO_ACTIVE_HIGH>;
+               /*
+                * TODO Add bt-enable-gpios once the Bluetooth driver is
+                * converted to using the power sequencer.
+                */
+
+               vdd-supply = <&vreg_s4i_0p85>;
+               vddio-supply = <&vreg_l15b_1p8>;
+               vddio1p2-supply = <&vreg_l3c_1p2>;
+               vddaon-supply = <&vreg_s2c_0p8>;
+               vdddig-supply = <&vreg_s3c_0p9>;
+               vddrfa1p2-supply = <&vreg_s1c_1p2>;
+               vddrfa1p8-supply = <&vreg_s6c_1p8>;
+
+               clocks = <&rpmhcc RPMH_RF_CLK1>;
+
+               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 {
 
 &mdss_dp0_out {
        data-lanes = <0 1>;
-       remote-endpoint = <&usb_dp_qmpphy_dp_in>;
-};
-
-&pcie_1_phy_aux_clk {
-       clock-frequency = <1000>;
 };
 
 &pcie0 {
        status = "okay";
 };
 
+&pcieport0 {
+       wifi@0 {
+               compatible = "pci17cb,1107";
+               reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+               vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+               vddaon-supply = <&vreg_pmu_aon_0p59>;
+               vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+               vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+               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>;
+       };
+};
+
 &pcie0_phy {
        vdda-phy-supply = <&vreg_l1i_0p88>;
        vdda-pll-supply = <&vreg_l3i_1p2>;
                sound-name-prefix = "SpkrLeft";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
                vdd-io-supply = <&vreg_l3c_1p2>;
+
+               /*
+                * WSA8845 Port 1 (DAC)     <=> SWR0 Port 1 (SPKR_L)
+                * WSA8845 Port 2 (COMP)    <=> SWR0 Port 2 (SPKR_L_COMP)
+                * WSA8845 Port 3 (BOOST)   <=> SWR0 Port 3 (SPKR_L_BOOST)
+                * WSA8845 Port 4 (PBR)     <=> SWR0 Port 7 (PBR)
+                * WSA8845 Port 5 (VISENSE) <=> SWR0 Port 10 (SPKR_L_VI)
+                * WSA8845 Port 6 (CPS)     <=> SWR0 Port 13 (CPS)
+                */
+               qcom,port-mapping = <1 2 3 7 10 13>;
        };
 
        /* WSA8845, Speaker Right */
                sound-name-prefix = "SpkrRight";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
                vdd-io-supply = <&vreg_l3c_1p2>;
+
+               /*
+                * WSA8845 Port 1 (DAC)     <=> SWR0 Port 4 (SPKR_R)
+                * WSA8845 Port 2 (COMP)    <=> SWR0 Port 5 (SPKR_R_COMP)
+                * WSA8845 Port 3 (BOOST)   <=> SWR0 Port 6 (SPKR_R_BOOST)
+                * WSA8845 Port 4 (PBR)     <=> SWR0 Port 7 (PBR)
+                * WSA8845 Port 5 (VISENSE) <=> SWR0 Port 11 (SPKR_R_VI)
+                * WSA8845 Port 6 (CPS)     <=> SWR0 Port 13 (CPS)
+                */
+               qcom,port-mapping = <4 5 6 7 11 13>;
        };
 };
 
                bias-disable;
                output-low;
        };
+
+       wlan_en: wlan-en-state {
+               pins = "gpio16";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-pull-down;
+       };
 };
 
 &uart14 {
        remote-endpoint = <&pmic_glink_hs_in>;
 };
 
-&usb_1_dwc3_ss {
-       remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
-};
-
 &usb_1_hsphy {
        vdd-supply = <&vreg_l1i_0p88>;
        vdda12-supply = <&vreg_l3i_1p2>;
        vdda-phy-supply = <&vreg_l3i_1p2>;
        vdda-pll-supply = <&vreg_l3g_0p91>;
 
-       orientation-switch;
-
        status = "okay";
 };
 
-&usb_dp_qmpphy_dp_in {
-       remote-endpoint = <&mdss_dp0_out>;
-};
-
 &usb_dp_qmpphy_out {
        remote-endpoint = <&redriver_ss_in>;
 };
 
-&usb_dp_qmpphy_usb_ss_in {
-       remote-endpoint = <&usb_1_dwc3_ss>;
-};
-
 &xo_board {
        clock-frequency = <76800000>;
 };
index 62a6e77730bc5d95582fac7354f2e46c205a7d58..9d9bbb9aca64456fa8e6eee0aad6bd3524dfca8d 100644 (file)
@@ -4,10 +4,12 @@
  */
 
 #include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/clock/qcom,sm8650-camcc.h>
 #include <dt-bindings/clock/qcom,sm8650-dispcc.h>
 #include <dt-bindings/clock/qcom,sm8650-gcc.h>
 #include <dt-bindings/clock/qcom,sm8650-gpucc.h>
 #include <dt-bindings/clock/qcom,sm8650-tcsr.h>
+#include <dt-bindings/clock/qcom,sm8650-videocc.h>
 #include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/firmware/qcom,scm.h>
 #include <dt-bindings/gpio/gpio.h>
                        clock-mult = <1>;
                        clock-div = <2>;
                };
-
-               pcie_1_phy_aux_clk: pcie-1-phy-aux-clk {
-                       compatible = "fixed-clock";
-                       #clock-cells = <0>;
-               };
        };
 
        cpus {
        firmware {
                scm: scm {
                        compatible = "qcom,scm-sm8650", "qcom,scm";
+                       qcom,dload-mode = <&tcsr 0x19000>;
                        interconnects = <&aggre2_noc MASTER_CRYPTO QCOM_ICC_TAG_ALWAYS
                                         &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
                };
                reg = <0 0xa0000000 0 0>;
        };
 
-       pmu {
-               compatible = "arm,armv8-pmuv3";
+       pmu-a520 {
+               compatible = "arm,cortex-a520-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       pmu-a720 {
+               compatible = "arm,cortex-a720-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       pmu-x4 {
+               compatible = "arm,cortex-x4-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
        };
 
                                 <&bi_tcxo_ao_div2>,
                                 <&sleep_clk>,
                                 <&pcie0_phy>,
-                                <&pcie1_phy>,
-                                <&pcie_1_phy_aux_clk>,
+                                <&pcie1_phy QMP_PCIE_PIPE_CLK>,
+                                <&pcie1_phy QMP_PCIE_PHY_AUX_CLK>,
                                 <&ufs_mem_phy 0>,
                                 <&ufs_mem_phy 1>,
                                 <&ufs_mem_phy 2>,
                        reg = <0 0x010c3000 0 0x1000>;
                };
 
-               pcie0: pci@1c00000 {
+               pcie0: pcie@1c00000 {
                        device_type = "pci";
                        compatible = "qcom,pcie-sm8650", "qcom,pcie-sm8550";
                        reg = <0 0x01c00000 0 0x3000>,
 
                        status = "disabled";
 
-                       pcie@0 {
+                       pcieport0: pcie@0 {
                                device_type = "pci";
                                reg = <0x0 0x0 0x0 0x0 0x0>;
                                bus-range = <0x01 0xff>;
                        status = "disabled";
                };
 
-               pcie1: pci@1c08000 {
+               pcie1: pcie@1c08000 {
                        device_type = "pci";
                        compatible = "qcom,pcie-sm8650", "qcom,pcie-sm8550";
                        reg = <0 0x01c08000 0 0x3000>,
 
                        power-domains = <&gcc PCIE_1_PHY_GDSC>;
 
-                       #clock-cells = <0>;
+                       #clock-cells = <1>;
                        clock-output-names = "pcie1_pipe_clk";
 
                        #phy-cells = <0>;
                        operating-points-v2 = <&gpu_opp_table>;
 
                        qcom,gmu = <&gmu>;
+                       #cooling-cells = <2>;
 
                        status = "disabled";
 
                        };
                };
 
+               videocc: clock-controller@aaf0000 {
+                       compatible = "qcom,sm8650-videocc";
+                       reg = <0 0x0aaf0000 0 0x10000>;
+                       clocks = <&bi_tcxo_div2>,
+                                <&gcc GCC_VIDEO_AHB_CLK>;
+                       power-domains = <&rpmhpd RPMHPD_MMCX>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               camcc: clock-controller@ade0000 {
+                       compatible = "qcom,sm8650-camcc";
+                       reg = <0 0x0ade0000 0 0x20000>;
+                       clocks = <&gcc GCC_CAMERA_AHB_CLK>,
+                                <&bi_tcxo_div2>,
+                                <&bi_tcxo_ao_div2>,
+                                <&sleep_clk>;
+                       power-domains = <&rpmhpd RPMHPD_MMCX>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
                mdss: display-subsystem@ae00000 {
                        compatible = "qcom,sm8650-mdss";
                        reg = <0 0x0ae00000 0 0x1000>;
                                                reg = <1>;
 
                                                mdss_dp0_out: endpoint {
+                                                       remote-endpoint = <&usb_dp_qmpphy_dp_in>;
                                                };
                                        };
                                };
                        #clock-cells = <1>;
                        #phy-cells = <1>;
 
+                       orientation-switch;
+
                        status = "disabled";
 
                        ports {
                                        reg = <1>;
 
                                        usb_dp_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_ss>;
                                        };
                                };
 
                                        reg = <2>;
 
                                        usb_dp_qmpphy_dp_in: endpoint {
+                                               remote-endpoint = <&mdss_dp0_out>;
                                        };
                                };
                        };
                                                reg = <1>;
 
                                                usb_1_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
                                                };
                                        };
                                };
                              <0 0x25400000 0 0x200000>,
                              <0 0x25200000 0 0x200000>,
                              <0 0x25600000 0 0x200000>,
-                             <0 0x25800000 0 0x200000>;
+                             <0 0x25800000 0 0x200000>,
+                             <0 0x25a00000 0 0x200000>;
                        reg-names = "llcc0_base",
                                    "llcc1_base",
                                    "llcc2_base",
                                    "llcc3_base",
-                                   "llcc_broadcast_base";
+                                   "llcc_broadcast_base",
+                                   "llcc_broadcast_and_base";
 
                        interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
                };
 
        thermal-zones {
                aoss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 0>;
 
                        trips {
                };
 
                cpuss0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 1>;
 
                        trips {
                };
 
                cpuss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 2>;
 
                        trips {
                };
 
                cpuss2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 3>;
 
                        trips {
                };
 
                cpuss3-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 4>;
 
                        trips {
                };
 
                cpu2-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 5>;
 
                        trips {
                };
 
                cpu2-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 6>;
 
                        trips {
                };
 
                cpu3-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 7>;
 
                        trips {
                };
 
                cpu3-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 8>;
 
                        trips {
                };
 
                cpu4-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 9>;
 
                        trips {
                };
 
                cpu4-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 10>;
 
                        trips {
                };
 
                cpu5-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 11>;
 
                        trips {
                };
 
                cpu5-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 12>;
 
                        trips {
                };
 
                cpu6-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 13>;
 
                        trips {
                };
 
                cpu6-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens0 14>;
 
                        trips {
                };
 
                aoss1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 0>;
 
                        trips {
                };
 
                cpu7-top-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 1>;
 
                        trips {
                };
 
                cpu7-middle-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 2>;
 
                        trips {
                };
 
                cpu7-bottom-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 3>;
 
                        trips {
                };
 
                cpu0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 4>;
 
                        trips {
                };
 
                cpu1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 5>;
 
                        trips {
 
                nsphvx0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 6>;
 
                        trips {
 
                nsphvx1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 7>;
 
                        trips {
 
                nsphmx0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 8>;
 
                        trips {
 
                nsphmx1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 9>;
 
                        trips {
 
                nsphmx2-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 10>;
 
                        trips {
 
                nsphmx3-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 11>;
 
                        trips {
 
                video-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens1 12>;
 
                        trips {
 
                ddr-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens1 13>;
 
                        trips {
                };
 
                camera0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 14>;
 
                        trips {
                };
 
                camera1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens1 15>;
 
                        trips {
                };
 
                aoss2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens2 0>;
 
                        trips {
 
                gpuss0-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 1>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu0_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpu0_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
 
-                               gpuss0-critical {
+                               trip-point2 {
                                        temperature = <110000>;
-                                       hysteresis = <0>;
+                                       hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
 
                gpuss1-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 2>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu1_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpu1_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
 
-                               gpuss1-critical {
+                               trip-point2 {
                                        temperature = <110000>;
-                                       hysteresis = <0>;
+                                       hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
 
                gpuss2-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 3>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu2_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpu2_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
 
-                               gpuss2-critical {
+                               trip-point2 {
                                        temperature = <110000>;
-                                       hysteresis = <0>;
+                                       hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
 
                gpuss3-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 4>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu3_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpu3_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
 
-                               gpuss3-critical {
+                               trip-point2 {
                                        temperature = <110000>;
-                                       hysteresis = <0>;
+                                       hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
 
                gpuss4-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 5>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu4_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpu4_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
 
-                               gpuss4-critical {
+                               trip-point2 {
                                        temperature = <110000>;
-                                       hysteresis = <0>;
+                                       hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
 
                gpuss5-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 6>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu5_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpu5_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
 
-                               gpuss5-critical {
+                               trip-point2 {
                                        temperature = <110000>;
-                                       hysteresis = <0>;
+                                       hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
 
                gpuss6-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 7>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu6_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpu6_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
 
-                               gpuss6-critical {
+                               trip-point2 {
                                        temperature = <110000>;
-                                       hysteresis = <0>;
+                                       hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
 
                gpuss7-thermal {
                        polling-delay-passive = <10>;
-                       polling-delay = <0>;
+
                        thermal-sensors = <&tsens2 8>;
 
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu7_alert0>;
+                                       cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+
                        trips {
-                               trip-point0 {
+                               gpu7_alert0: trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
                                        temperature = <90000>;
-                                       hysteresis = <2000>;
+                                       hysteresis = <1000>;
                                        type = "hot";
                                };
 
-                               gpuss7-critical {
+                               trip-point2 {
                                        temperature = <110000>;
-                                       hysteresis = <0>;
+                                       hysteresis = <1000>;
                                        type = "critical";
                                };
                        };
                };
 
                modem0-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens2 9>;
 
                        trips {
                };
 
                modem1-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens2 10>;
 
                        trips {
                };
 
                modem2-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens2 11>;
 
                        trips {
                };
 
                modem3-thermal {
-                       polling-delay-passive = <0>;
-                       polling-delay = <0>;
                        thermal-sensors = <&tsens2 12>;
 
                        trips {
diff --git a/src/arm64/qcom/x1e80100-asus-vivobook-s15.dts b/src/arm64/qcom/x1e80100-asus-vivobook-s15.dts
new file mode 100644 (file)
index 0000000..9caa14d
--- /dev/null
@@ -0,0 +1,652 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2024, Xilin Wu <wuxilin123@gmail.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "x1e80100.dtsi"
+#include "x1e80100-pmics.dtsi"
+
+/ {
+       model = "ASUS Vivobook S 15";
+       compatible = "asus,vivobook-s15", "qcom,x1e80100";
+       chassis-type = "laptop";
+
+       pmic-glink {
+               compatible = "qcom,x1e80100-pmic-glink",
+                            "qcom,sm8550-pmic-glink",
+                            "qcom,pmic-glink";
+               orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
+                                   <&tlmm 123 GPIO_ACTIVE_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* Left-side port, closer to the screen */
+               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 = <&usb_1_ss0_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+
+               /* Left-side port, farther from the screen */
+               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 = <&usb_1_ss1_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       reserved-memory {
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       size = <0x0 0x8000000>;
+                       reusable;
+                       linux,cma-default;
+               };
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vreg_edp_3p3: regulator-edp-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_EDP_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&edp_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       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";
+       };
+};
+
+&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_l2b_3p0: ldo2 {
+                       regulator-name = "vreg_l2b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l14b_3p0: ldo14 {
+                       regulator-name = "vreg_l14b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       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>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "d";
+
+               vdd-l1-supply = <&vreg_s1f_0p7>;
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vreg_s4c_1p8>;
+               vdd-s1-supply = <&vph_pwr>;
+
+               vreg_l1d_0p8: ldo1 {
+                       regulator-name = "vreg_l1d_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2d_0p9: ldo2 {
+                       regulator-name = "vreg_l2d_0p9";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3d_1p8: ldo3 {
+                       regulator-name = "vreg_l3d_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-3 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "e";
+
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vreg_s5j_1p2>;
+
+               vreg_l2e_0p8: ldo2 {
+                       regulator-name = "vreg_l2e_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3e_1p2: ldo3 {
+                       regulator-name = "vreg_l3e_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-4 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "f";
+
+               vdd-l1-supply = <&vreg_s5j_1p2>;
+               vdd-l2-supply = <&vreg_s5j_1p2>;
+               vdd-l3-supply = <&vreg_s5j_1p2>;
+               vdd-s1-supply = <&vph_pwr>;
+
+               vreg_s1f_0p7: smps1 {
+                       regulator-name = "vreg_s1f_0p7";
+                       regulator-min-microvolt = <700000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       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_l3i_0p8: ldo3 {
+                       regulator-name = "vreg_l3i_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-7 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "j";
+
+               vdd-l1-supply = <&vreg_s1f_0p7>;
+               vdd-l2-supply = <&vreg_s5j_1p2>;
+               vdd-l3-supply = <&vreg_s1f_0p7>;
+               vdd-s5-supply = <&vph_pwr>;
+
+               vreg_s5j_1p2: smps5 {
+                       regulator-name = "vreg_s5j_1p2";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1j_0p8: ldo1 {
+                       regulator-name = "vreg_l1j_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2j_1p2: ldo2 {
+                       regulator-name = "vreg_l2j_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3j_0p8: ldo3 {
+                       regulator-name = "vreg_l3j_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       touchpad@15 {
+               compatible = "hid-over-i2c";
+               reg = <0x15>;
+
+               hid-descr-addr = <0x1>;
+               interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&tpad_default>;
+               pinctrl-names = "default";
+
+               wakeup-source;
+       };
+};
+
+&i2c1 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       /* PS8830 USB4 Retimer? @ 0x8 */
+};
+
+&i2c3 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       /* PS8830 USB4 Retimer? @ 0x8 */
+};
+
+&i2c5 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       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;
+       };
+
+       /* EC? @ 0x5b, 0x76 */
+};
+
+&i2c7 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       /* PS8830 USB4 Retimer? @ 0x8 */
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dp3 {
+       compatible = "qcom,x1e80100-dp";
+       /delete-property/ #sound-dai-cells;
+
+       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 {
+       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
+       pinctrl-0 = <&pcie4_default>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie4_phy {
+       vdda-phy-supply = <&vreg_l3i_0p8>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
+
+       status = "okay";
+};
+
+&pcie6a {
+       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+
+       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";
+};
+
+&qupv3_0 {
+       status = "okay";
+};
+
+&qupv3_1 {
+       status = "okay";
+};
+
+&qupv3_2 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/x1e80100/ASUSTeK/vivobook-s15/qcadsp8380.mbn",
+                       "qcom/x1e80100/ASUSTeK/vivobook-s15/adsp_dtbs.elf";
+
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/x1e80100/ASUSTeK/vivobook-s15/qccdsp8380.mbn",
+                       "qcom/x1e80100/ASUSTeK/vivobook-s15/cdsp_dtbs.elf";
+
+       status = "okay";
+};
+
+&smb2360_0_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&smb2360_1_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l14b_3p0>;
+};
+
+&smb2360_2 {
+       status = "disabled";
+};
+
+&tlmm {
+       gpio-reserved-ranges = <34 2>, /* Unused */
+                              <44 4>, /* SPI (TPM) */
+                              <238 1>; /* UFS Reset */
+
+       edp_reg_en: edp-reg-en-state {
+               pins = "gpio70";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       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;
+       };
+};
+
+&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_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l1j_0p8>;
+
+       orientation-switch;
+
+       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 = <&pmic_glink_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_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l2d_0p9>;
+
+       orientation-switch;
+
+       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 = <&pmic_glink_ss1_ss_in>;
+};
index be6b1e7d07ce347e8bee73a420548d7604f9388c..e17ab8251e2a550d74ee0f899da89f5cd8531c32 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
+       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>,
+                                   <&tlmm 125 GPIO_ACTIVE_HIGH>;
+
+               /* Left-side rear 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 = <&usb_1_ss0_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+
+               /* Left-side front 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 = <&usb_1_ss1_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+
+               /* Right-side port */
+               connector@2 {
+                       compatible = "usb-c-connector";
+                       reg = <2>;
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       pmic_glink_ss2_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss2_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss2_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss2_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+       };
+
        reserved-memory {
                linux,cma {
                        compatible = "shared-dma-pool";
                pinctrl-0 = <&edp_reg_en>;
                pinctrl-names = "default";
 
-               regulator-always-on;
                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-names = "default";
+               pinctrl-0 = <&nvme_reg_en>;
+       };
 };
 
 &apps_rsc {
        };
 };
 
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               firmware-name = "qcom/x1e80100/gen70500_zap.mbn";
+       };
+};
+
 &i2c0 {
        clock-frequency = <400000>;
 
 
        aux-bus {
                panel {
-                       compatible = "edp-panel";
+                       compatible = "samsung,atna45af01", "samsung,atna33xc20";
+                       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>;
 };
 
 &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_phy {
-       vdda-phy-supply = <&vreg_l3j_0p8>;
+       vdda-phy-supply = <&vreg_l3i_0p8>;
        vdda-pll-supply = <&vreg_l3e_1p2>;
 
        status = "okay";
 };
 
 &pcie6a {
+       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+
+       vddpe-3v3-supply = <&vreg_nvme>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie6a_default>;
+
        status = "okay";
 };
 
 &pcie6a_phy {
-       vdda-phy-supply = <&vreg_l3j_0p8>;
+       vdda-phy-supply = <&vreg_l1d_0p8>;
        vdda-pll-supply = <&vreg_l2j_1p2>;
 
        status = "okay";
 };
 
+&pmc8380_3_gpios {
+       edp_bl_en: edp-bl-en-state {
+               pins = "gpio4";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               input-disable;
+               output-enable;
+       };
+};
+
 &qupv3_0 {
        status = "okay";
 };
                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";
 };
 
 &usb_1_ss0_hsphy {
-       vdd-supply = <&vreg_l2e_0p8>;
-       vdda12-supply = <&vreg_l3e_1p2>;
+       vdd-supply = <&vreg_l3j_0p8>;
+       vdda12-supply = <&vreg_l2j_1p2>;
 
        phys = <&smb2360_0_eusb2_repeater>;
 
 };
 
 &usb_1_ss0_qmpphy {
+       vdda-phy-supply = <&vreg_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l1j_0p8>;
+
        status = "okay";
 };
 
 
 &usb_1_ss0_dwc3 {
        dr_mode = "host";
-       usb-role-switch;
+};
+
+&usb_1_ss0_dwc3_hs {
+       remote-endpoint = <&pmic_glink_ss0_hs_in>;
+};
+
+&usb_1_ss0_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss0_ss_in>;
 };
 
 &usb_1_ss1_hsphy {
-       vdd-supply = <&vreg_l2e_0p8>;
-       vdda12-supply = <&vreg_l3e_1p2>;
+       vdd-supply = <&vreg_l3j_0p8>;
+       vdda12-supply = <&vreg_l2j_1p2>;
 
        phys = <&smb2360_1_eusb2_repeater>;
 
 };
 
 &usb_1_ss1_qmpphy {
+       vdda-phy-supply = <&vreg_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l2d_0p9>;
+
        status = "okay";
 };
 
 
 &usb_1_ss1_dwc3 {
        dr_mode = "host";
-       usb-role-switch;
+};
+
+&usb_1_ss1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_ss1_hs_in>;
+};
+
+&usb_1_ss1_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss1_ss_in>;
 };
 
 &usb_1_ss2_hsphy {
-       vdd-supply = <&vreg_l2e_0p8>;
-       vdda12-supply = <&vreg_l3e_1p2>;
+       vdd-supply = <&vreg_l3j_0p8>;
+       vdda12-supply = <&vreg_l2j_1p2>;
 
        phys = <&smb2360_2_eusb2_repeater>;
 
 };
 
 &usb_1_ss2_qmpphy {
+       vdda-phy-supply = <&vreg_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l2d_0p9>;
+
        status = "okay";
 };
 
 
 &usb_1_ss2_dwc3 {
        dr_mode = "host";
-       usb-role-switch;
+};
+
+&usb_1_ss2_dwc3_hs {
+       remote-endpoint = <&pmic_glink_ss2_hs_in>;
+};
+
+&usb_1_ss2_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss2_ss_in>;
 };
diff --git a/src/arm64/qcom/x1e80100-lenovo-yoga-slim7x.dts b/src/arm64/qcom/x1e80100-lenovo-yoga-slim7x.dts
new file mode 100644 (file)
index 0000000..1943bdb
--- /dev/null
@@ -0,0 +1,967 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "x1e80100.dtsi"
+#include "x1e80100-pmics.dtsi"
+
+/ {
+       model = "Lenovo Yoga Slim 7x";
+       compatible = "lenovo,yoga-slim7x", "qcom,x1e80100";
+
+       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>,
+                                   <&tlmm 125 GPIO_ACTIVE_HIGH>;
+
+               /* Left-side rear 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 = <&usb_1_ss0_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+
+               /* Left-side front 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 = <&usb_1_ss1_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+
+               /* Right-side port */
+               connector@2 {
+                       compatible = "usb-c-connector";
+                       reg = <2>;
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       pmic_glink_ss2_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss2_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss2_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss2_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       reserved-memory {
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       size = <0x0 0x8000000>;
+                       reusable;
+                       linux,cma-default;
+               };
+       };
+
+       sound {
+               compatible = "qcom,x1e80100-sndcard";
+               model = "X1E80100-LENOVO-Yoga-Slim7x";
+               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";
+
+               wsa-dai-link {
+                       link-name = "WSA Playback";
+
+                       cpu {
+                               sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+                       };
+
+                       codec {
+                               sound-dai = <&left_woofer>, <&left_tweeter>,
+                                           <&swr0 0>, <&lpass_wsamacro 0>,
+                                           <&right_woofer>, <&right_tweeter>,
+                                           <&swr3 0>, <&lpass_wsa2macro 0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               va-dai-link {
+                       link-name = "VA Capture";
+
+                       cpu {
+                               sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
+                       };
+
+                       codec {
+                               sound-dai = <&lpass_vamacro 0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vreg_edp_3p3: regulator-edp-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_EDP_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&edp_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       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";
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pm8550-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               vdd-bob1-supply = <&vph_pwr>;
+               vdd-bob2-supply = <&vph_pwr>;
+               vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
+               vdd-l2-l13-l14-supply = <&vreg_bob1>;
+               vdd-l5-l16-supply = <&vreg_bob1>;
+               vdd-l6-l7-supply = <&vreg_bob2>;
+               vdd-l8-l9-supply = <&vreg_bob1>;
+               vdd-l12-supply = <&vreg_s5j_1p2>;
+               vdd-l15-supply = <&vreg_s4c_1p8>;
+               vdd-l17-supply = <&vreg_bob2>;
+
+               vreg_bob1: bob1 {
+                       regulator-name = "vreg_bob1";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_bob2: bob2 {
+                       regulator-name = "vreg_bob2";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1b_1p8: ldo1 {
+                       regulator-name = "vreg_l1b_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2b_3p0: ldo2 {
+                       regulator-name = "vreg_l2b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l8b_3p0: ldo8 {
+                       regulator-name = "vreg_l8b_3p0";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       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_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>;
+               };
+
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               vdd-l1-supply = <&vreg_s5j_1p2>;
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vreg_s1f_0p7>;
+               vdd-s4-supply = <&vph_pwr>;
+
+               vreg_s4c_1p8: smps4 {
+                       regulator-name = "vreg_s4c_1p8";
+                       regulator-min-microvolt = <1856000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1c_1p2: ldo1 {
+                       regulator-name = "vreg_l1c_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2c_0p8: ldo2 {
+                       regulator-name = "vreg_l2c_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3c_0p8: ldo3 {
+                       regulator-name = "vreg_l3c_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "d";
+
+               vdd-l1-supply = <&vreg_s1f_0p7>;
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vreg_s4c_1p8>;
+               vdd-s1-supply = <&vph_pwr>;
+
+               vreg_l1d_0p8: ldo1 {
+                       regulator-name = "vreg_l1d_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2d_0p9: ldo2 {
+                       regulator-name = "vreg_l2d_0p9";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3d_1p8: ldo3 {
+                       regulator-name = "vreg_l3d_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-3 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "e";
+
+               vdd-l2-supply = <&vreg_s1f_0p7>;
+               vdd-l3-supply = <&vreg_s5j_1p2>;
+
+               vreg_l2e_0p8: ldo2 {
+                       regulator-name = "vreg_l2e_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3e_1p2: ldo3 {
+                       regulator-name = "vreg_l3e_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-4 {
+               compatible = "qcom,pmc8380-rpmh-regulators";
+               qcom,pmic-id = "f";
+
+               vdd-l1-supply = <&vreg_s5j_1p2>;
+               vdd-l2-supply = <&vreg_s5j_1p2>;
+               vdd-l3-supply = <&vreg_s5j_1p2>;
+               vdd-s1-supply = <&vph_pwr>;
+
+               vreg_s1f_0p7: smps1 {
+                       regulator-name = "vreg_s1f_0p7";
+                       regulator-min-microvolt = <700000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1f_1p0: ldo1 {
+                       regulator-name = "vreg_l1f_1p0";
+                       regulator-min-microvolt = <1024000>;
+                       regulator-max-microvolt = <1024000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2f_1p0: ldo2 {
+                       regulator-name = "vreg_l2f_1p0";
+                       regulator-min-microvolt = <1024000>;
+                       regulator-max-microvolt = <1024000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3f_1p0: ldo3 {
+                       regulator-name = "vreg_l3f_1p0";
+                       regulator-min-microvolt = <1024000>;
+                       regulator-max-microvolt = <1024000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-6 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "i";
+
+               vdd-l1-supply = <&vreg_s4c_1p8>;
+               vdd-l2-supply = <&vreg_s5j_1p2>;
+               vdd-l3-supply = <&vreg_s1f_0p7>;
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+
+               vreg_s1i_0p9: smps1 {
+                       regulator-name = "vreg_s1i_0p9";
+                       regulator-min-microvolt = <900000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_s2i_1p0: smps2 {
+                       regulator-name = "vreg_s2i_1p0";
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1100000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1i_1p8: ldo1 {
+                       regulator-name = "vreg_l1i_1p8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2i_1p2: ldo2 {
+                       regulator-name = "vreg_l2i_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3i_0p8: ldo3 {
+                       regulator-name = "vreg_l3i_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-7 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "j";
+
+               vdd-l1-supply = <&vreg_s1f_0p7>;
+               vdd-l2-supply = <&vreg_s5j_1p2>;
+               vdd-l3-supply = <&vreg_s1f_0p7>;
+               vdd-s5-supply = <&vph_pwr>;
+
+               vreg_s5j_1p2: smps5 {
+                       regulator-name = "vreg_s5j_1p2";
+                       regulator-min-microvolt = <1256000>;
+                       regulator-max-microvolt = <1304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l1j_0p8: ldo1 {
+                       regulator-name = "vreg_l1j_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l2j_1p2: ldo2 {
+                       regulator-name = "vreg_l2j_1p2";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               vreg_l3j_0p8: ldo3 {
+                       regulator-name = "vreg_l3j_0p8";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
+
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               firmware-name = "qcom/x1e80100/LENOVO/83ED/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;
+       };
+};
+
+&i2c8 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       touchscreen@14 {
+               compatible = "hid-over-i2c";
+               reg = <0x14>;
+
+               hid-descr-addr = <0x1>;
+               interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&ts0_default>;
+               pinctrl-names = "default";
+       };
+};
+
+&lpass_tlmm {
+       spkr_01_sd_n_active: spkr-01-sd-n-active-state {
+               pins = "gpio12";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-low;
+       };
+
+       spkr_23_sd_n_active: spkr-23-sd-n-active-state {
+               pins = "gpio13";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-low;
+       };
+};
+
+&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_dp3 {
+       compatible = "qcom,x1e80100-dp";
+       /delete-property/ #sound-dai-cells;
+
+       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 {
+       perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
+       pinctrl-0 = <&pcie4_default>;
+       pinctrl-names = "default";
+
+       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>;
+
+               qcom,ath12k-calibration-variant = "LES790";
+       };
+};
+
+&pcie6a {
+       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+
+       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";
+};
+
+&qupv3_0 {
+       status = "okay";
+};
+
+&qupv3_1 {
+       status = "okay";
+};
+
+&qupv3_2 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/x1e80100/LENOVO/83ED/qcadsp8380.mbn",
+                       "qcom/x1e80100/LENOVO/83ED/adsp_dtbs.elf";
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/x1e80100/LENOVO/83ED/qccdsp8380.mbn",
+                       "qcom/x1e80100/LENOVO/83ED/cdsp_dtbs.elf";
+
+       status = "okay";
+};
+
+&smb2360_0_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&smb2360_1_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l14b_3p0>;
+};
+
+&smb2360_2_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l8b_3p0>;
+};
+
+&swr0 {
+       status = "okay";
+
+       pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
+       pinctrl-names = "default";
+
+       /* WSA8845, Left Woofer */
+       left_woofer: speaker@0,0 {
+               compatible = "sdw20217020400";
+               reg = <0 0>;
+               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>;
+       };
+};
+
+
+&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 = <34 2>, /* Unused */
+                              <44 4>, /* SPI (TPM) */
+                              <238 1>; /* UFS Reset */
+
+       edp_reg_en: edp-reg-en-state {
+               pins = "gpio70";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+       };
+
+       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;
+       };
+
+       ts0_default: ts0-default-state {
+               int-n-pins {
+                       pins = "gpio51";
+                       function = "gpio";
+                       bias-disable;
+               };
+
+               reset-n-pins {
+                       pins = "gpio48";
+                       function = "gpio";
+                       output-high;
+                       drive-strength = <16>;
+               };
+       };
+
+};
+
+&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_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l1j_0p8>;
+
+       orientation-switch;
+
+       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 = <&pmic_glink_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_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l2d_0p9>;
+
+       orientation-switch;
+
+       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 = <&pmic_glink_ss1_ss_in>;
+};
+
+&usb_1_ss2_hsphy {
+       vdd-supply = <&vreg_l3j_0p8>;
+       vdda12-supply = <&vreg_l2j_1p2>;
+
+       phys = <&smb2360_2_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_1_ss2_qmpphy {
+       vdda-phy-supply = <&vreg_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l2d_0p9>;
+
+       status = "okay";
+};
+
+&usb_1_ss2 {
+       status = "okay";
+};
+
+&usb_1_ss2_dwc3 {
+       dr_mode = "host";
+};
+
+&usb_1_ss2_dwc3_hs {
+       remote-endpoint = <&pmic_glink_ss2_hs_in>;
+};
+
+&usb_1_ss2_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss2_ss_in>;
+};
index 04301f772fbda8e0005d5627fd2ebc73a6b4f100..e34e70922cd3355ecb36a9f4d0c44dadafdb5380 100644 (file)
  * Copyright (c) 2024, Linaro Limited
  */
 
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/spmi/spmi.h>
 
 / {
+       thermal-zones {
+               pm8550-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pm8550_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               pm8550ve-2-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pm8550ve_2_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               pmc8380-3-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pmc8380_3_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               pmc8380-4-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pmc8380_4_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               pmc8380-5-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pmc8380_5_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               pmc8380-6-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pmc8380_6_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               pm8550ve-8-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pm8550ve_8_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               pm8550ve-9-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pm8550ve_9_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               pm8010-thermal {
+                       polling-delay-passive = <100>;
+
+                       thermal-sensors = <&pm8010_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+                       };
+               };
+       };
+};
+
+&spmi_bus0 {
+       /* PMK8380 */
+       pmk8550: pmic@0 {
+               compatible = "qcom,pm8550", "qcom,spmi-pmic";
+               reg = <0x0 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pmk8550_pon: pon@1300 {
+                       compatible = "qcom,pmk8350-pon";
+                       reg = <0x1300>, <0x800>;
+                       reg-names = "hlos", "pbs";
+
+                       pon_pwrkey: pwrkey {
+                               compatible = "qcom,pmk8350-pwrkey";
+                               interrupts = <0x0 0x13 0x7 IRQ_TYPE_EDGE_BOTH>;
+                               linux,code = <KEY_POWER>;
+                       };
+
+                       pon_resin: resin {
+                               compatible = "qcom,pmk8350-resin";
+                               interrupts = <0x0 0x13 0x6 IRQ_TYPE_EDGE_BOTH>;
+                               status = "disabled";
+                       };
+               };
+
+               pmk8550_rtc: rtc@6100 {
+                       compatible = "qcom,pmk8350-rtc";
+                       reg = <0x6100>, <0x6200>;
+                       reg-names = "rtc", "alarm";
+                       interrupts = <0x0 0x62 0x1 IRQ_TYPE_EDGE_RISING>;
+                       /* Not yet sure what blocks access */
+                       status = "reserved";
+               };
+
+               pmk8550_sdam_2: nvram@7100 {
+                       compatible = "qcom,spmi-sdam";
+                       reg = <0x7100>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x7100 0x100>;
+
+                       reboot_reason: reboot-reason@48 {
+                               reg = <0x48 0x1>;
+                               bits = <1 7>;
+                       };
+               };
+
+               pmk8550_gpios: gpio@8800 {
+                       compatible = "qcom,pmk8550-gpio", "qcom,spmi-gpio";
+                       reg = <0xb800>;
+                       gpio-controller;
+                       gpio-ranges = <&pmk8550_gpios 0 0 6>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       /* PMC8380C */
+       pm8550: pmic@1 {
+               compatible = "qcom,pm8550", "qcom,spmi-pmic";
+               reg = <0x1 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pm8550_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x1 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pm8550_gpios: gpio@8800 {
+                       compatible = "qcom,pm8550-gpio", "qcom,spmi-gpio";
+                       reg = <0x8800>;
+                       gpio-controller;
+                       gpio-ranges = <&pm8550_gpios 0 0 12>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               pm8550_flash: led-controller@ee00 {
+                       compatible = "qcom,pm8550-flash-led", "qcom,spmi-flash-led";
+                       reg = <0xee00>;
+                       status = "disabled";
+               };
+
+               pm8550_pwm: pwm {
+                       compatible = "qcom,pm8550-pwm", "qcom,pm8350c-pwm";
+                       #pwm-cells = <2>;
+
+                       status = "disabled";
+               };
+       };
+
+       /* PMC8380VE */
+       pm8550ve_2: pmic@2 {
+               compatible = "qcom,pm8550", "qcom,spmi-pmic";
+               reg = <0x2 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pm8550ve_2_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x2 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pm8550ve_2_gpios: gpio@8800 {
+                       compatible = "qcom,pm8550ve-gpio", "qcom,spmi-gpio";
+                       reg = <0x8800>;
+                       gpio-controller;
+                       gpio-ranges = <&pm8550ve_2_gpios 0 0 8>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       /* PMC8380 is actually not a PM8550 series rebrand */
+       pmc8380_3: pmic@3 {
+               compatible = "qcom,pmc8380", "qcom,spmi-pmic";
+               reg = <0x3 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pmc8380_3_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x3 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pmc8380_3_gpios: gpio@8800 {
+                       compatible = "qcom,pmc8380-gpio", "qcom,spmi-gpio";
+                       reg = <0x8800>;
+                       gpio-controller;
+                       gpio-ranges = <&pmc8380_3_gpios 0 0 10>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       pmc8380_4: pmic@4 {
+               compatible = "qcom,pmc8380", "qcom,spmi-pmic";
+               reg = <0x4 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pmc8380_4_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x4 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pmc8380_4_gpios: gpio@8800 {
+                       compatible = "qcom,pmc8380-gpio", "qcom,spmi-gpio";
+                       reg = <0x8800>;
+                       gpio-controller;
+                       gpio-ranges = <&pmc8380_4_gpios 0 0 10>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       pmc8380_5: pmic@5 {
+               compatible = "qcom,pmc8380", "qcom,spmi-pmic";
+               reg = <0x5 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pmc8380_5_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x5 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pmc8380_5_gpios: gpio@8800 {
+                       compatible = "qcom,pmc8380-gpio", "qcom,spmi-gpio";
+                       reg = <0x8800>;
+                       gpio-controller;
+                       gpio-ranges = <&pmc8380_5_gpios 0 0 10>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       pmc8380_6: pmic@6 {
+               compatible = "qcom,pmc8380", "qcom,spmi-pmic";
+               reg = <0x6 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pmc8380_6_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x6 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pmc8380_6_gpios: gpio@8800 {
+                       compatible = "qcom,pmc8380-gpio", "qcom,spmi-gpio";
+                       reg = <0x8800>;
+                       gpio-controller;
+                       gpio-ranges = <&pmc8380_6_gpios 0 0 10>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       /* PMC8380VE */
+       pm8550ve_8: pmic@8 {
+               compatible = "qcom,pm8550", "qcom,spmi-pmic";
+               reg = <0x8 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pm8550ve_8_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x8 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pm8550ve_8_gpios: gpio@8800 {
+                       compatible = "qcom,pm8550ve-gpio", "qcom,spmi-gpio";
+                       reg = <0x8800>;
+                       gpio-controller;
+                       gpio-ranges = <&pm8550ve_8_gpios 0 0 8>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       /* PMC8380VE */
+       pm8550ve_9: pmic@9 {
+               compatible = "qcom,pm8550", "qcom,spmi-pmic";
+               reg = <0x9 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pm8550ve_9_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x9 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pm8550ve_9_gpios: gpio@8800 {
+                       compatible = "qcom,pm8550ve-gpio", "qcom,spmi-gpio";
+                       reg = <0x8800>;
+                       gpio-controller;
+                       gpio-ranges = <&pm8550ve_9_gpios 0 0 8>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
+       pm8010: pmic@c {
+               compatible = "qcom,pm8010", "qcom,spmi-pmic";
+               reg = <0xc SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pm8010_temp_alarm: temp-alarm@2400 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0x2400>;
+                       interrupts = <0xc 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+       };
 };
 
 &spmi_bus1 {
                        #phy-cells = <0>;
                };
        };
+
+       smb2360_3: pmic@c {
+               compatible = "qcom,smb2360", "qcom,spmi-pmic";
+               reg = <0xc SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               status = "disabled";
+
+               smb2360_3_eusb2_repeater: phy@fd00 {
+                       compatible = "qcom,smb2360-eusb2-repeater";
+                       reg = <0xfd00>;
+                       #phy-cells = <0>;
+               };
+       };
 };
index 8f67c393b871b243147beaf6984fdf979f9915fa..8098e6730ae52f0e29cc25b756aa4ea47e3c930e 100644 (file)
                serial0 = &uart21;
        };
 
+       wcd938x: audio-codec {
+               compatible = "qcom,wcd9385-codec";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wcd_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";
        };
 
+       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>,
+                                   <&tlmm 125 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_ss0_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss0_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss0_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+
+               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 = <&usb_1_ss1_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+
+               connector@2 {
+                       compatible = "usb-c-connector";
+                       reg = <2>;
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       pmic_glink_ss2_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss2_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss2_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss2_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+       };
+
        reserved-memory {
                linux,cma {
                        compatible = "shared-dma-pool";
                };
        };
 
+       sound {
+               compatible = "qcom,x1e80100-sndcard";
+               model = "X1E80100-QCP";
+               audio-routing = "SpkrLeft IN", "WSA WSA_SPK1 OUT",
+                               "SpkrRight IN", "WSA WSA_SPK2 OUT",
+                               "IN1_HPHL", "HPHL_OUT",
+                               "IN2_HPHR", "HPHR_OUT",
+                               "AMIC2", "MIC BIAS2",
+                               "TX SWR_INPUT1", "ADC2_OUTPUT";
+
+               wcd-playback-dai-link {
+                       link-name = "WCD Playback";
+
+                       cpu {
+                               sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>;
+                       };
+
+                       codec {
+                               sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               wcd-capture-dai-link {
+                       link-name = "WCD Capture";
+
+                       cpu {
+                               sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>;
+                       };
+
+                       codec {
+                               sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+
+               wsa-dai-link {
+                       link-name = "WSA Playback";
+
+                       cpu {
+                               sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
+                       };
+
+                       codec {
+                               sound-dai = <&left_spkr>, <&right_spkr>,
+                                           <&swr0 0>, <&lpass_wsamacro 0>;
+                       };
+
+                       platform {
+                               sound-dai = <&q6apm>;
+                       };
+               };
+       };
+
        vph_pwr: vph-pwr-regulator {
                compatible = "regulator-fixed";
 
                regulator-always-on;
                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-names = "default";
+               pinctrl-0 = <&nvme_reg_en>;
+       };
 };
 
 &apps_rsc {
        };
 };
 
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               firmware-name = "qcom/x1e80100/gen70500_zap.mbn";
+       };
+};
+
+&lpass_tlmm {
+       spkr_01_sd_n_active: spkr-01-sd-n-active-state {
+               pins = "gpio12";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-low;
+       };
+};
+
 &mdss {
        status = "okay";
 };
 };
 
 &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_phy {
-       vdda-phy-supply = <&vreg_l3j_0p8>;
+       vdda-phy-supply = <&vreg_l3i_0p8>;
        vdda-pll-supply = <&vreg_l3e_1p2>;
 
        status = "okay";
 };
 
 &pcie6a {
+       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+
+       vddpe-3v3-supply = <&vreg_nvme>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie6a_default>;
+
        status = "okay";
 };
 
 &pcie6a_phy {
-       vdda-phy-supply = <&vreg_l3j_0p8>;
+       vdda-phy-supply = <&vreg_l1d_0p8>;
        vdda-pll-supply = <&vreg_l2j_1p2>;
 
        status = "okay";
        status = "okay";
 };
 
+&smb2360_3 {
+       status = "okay";
+};
+
 &smb2360_0_eusb2_repeater {
        vdd18-supply = <&vreg_l3d_1p8>;
        vdd3-supply = <&vreg_l2b_3p0>;
        vdd3-supply = <&vreg_l8b_3p0>;
 };
 
+&swr0 {
+       pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       /* WSA8845, Left Speaker */
+       left_spkr: speaker@0,0 {
+               compatible = "sdw20217020400";
+               reg = <0 0>;
+               #sound-dai-cells = <0>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               sound-name-prefix = "SpkrLeft";
+               vdd-1p8-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l12b_1p2>;
+       };
+
+       /* WSA8845, Right Speaker */
+       right_spkr: speaker@0,1 {
+               compatible = "sdw20217020400";
+               reg = <0 1>;
+               #sound-dai-cells = <0>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               sound-name-prefix = "SpkrRight";
+               vdd-1p8-supply = <&vreg_l15b_1p8>;
+               vdd-io-supply = <&vreg_l12b_1p2>;
+       };
+};
+
+&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>;
+       };
+};
+
 &tlmm {
        gpio-reserved-ranges = <33 3>, /* Unused */
                               <44 4>, /* SPI (TPM) */
                drive-strength = <16>;
                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;
+               };
+       };
+
+       wcd_default: wcd-reset-n-active-state {
+               pins = "gpio191";
+               function = "gpio";
+               drive-strength = <16>;
+               bias-disable;
+               output-low;
+       };
 };
 
 &uart21 {
 };
 
 &usb_1_ss0_hsphy {
-       vdd-supply = <&vreg_l2e_0p8>;
-       vdda12-supply = <&vreg_l3e_1p2>;
+       vdd-supply = <&vreg_l3j_0p8>;
+       vdda12-supply = <&vreg_l2j_1p2>;
 
        phys = <&smb2360_0_eusb2_repeater>;
 
 };
 
 &usb_1_ss0_qmpphy {
+       vdda-phy-supply = <&vreg_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l1j_0p8>;
+
        status = "okay";
 };
 
 
 &usb_1_ss0_dwc3 {
        dr_mode = "host";
-       usb-role-switch;
+};
+
+&usb_1_ss0_dwc3_hs {
+       remote-endpoint = <&pmic_glink_ss0_hs_in>;
+};
+
+&usb_1_ss0_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss0_ss_in>;
 };
 
 &usb_1_ss1_hsphy {
-       vdd-supply = <&vreg_l2e_0p8>;
-       vdda12-supply = <&vreg_l3e_1p2>;
+       vdd-supply = <&vreg_l3j_0p8>;
+       vdda12-supply = <&vreg_l2j_1p2>;
 
        phys = <&smb2360_1_eusb2_repeater>;
 
 };
 
 &usb_1_ss1_qmpphy {
+       vdda-phy-supply = <&vreg_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l2d_0p9>;
+
        status = "okay";
 };
 
 
 &usb_1_ss1_dwc3 {
        dr_mode = "host";
-       usb-role-switch;
+};
+
+&usb_1_ss1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_ss1_hs_in>;
+};
+
+&usb_1_ss1_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss1_ss_in>;
 };
 
 &usb_1_ss2_hsphy {
-       vdd-supply = <&vreg_l2e_0p8>;
-       vdda12-supply = <&vreg_l3e_1p2>;
+       vdd-supply = <&vreg_l3j_0p8>;
+       vdda12-supply = <&vreg_l2j_1p2>;
 
        phys = <&smb2360_2_eusb2_repeater>;
 
 };
 
 &usb_1_ss2_qmpphy {
+       vdda-phy-supply = <&vreg_l3e_1p2>;
+       vdda-pll-supply = <&vreg_l2d_0p9>;
+
        status = "okay";
 };
 
 
 &usb_1_ss2_dwc3 {
        dr_mode = "host";
-       usb-role-switch;
+};
+
+&usb_1_ss2_dwc3_hs {
+       remote-endpoint = <&pmic_glink_ss2_hs_in>;
+};
+
+&usb_1_ss2_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss2_ss_in>;
 };
index 05e4d491ec18c4bb0cbdbade6d62deab7f857e90..cd732ef88cd8e0a775863e2ceb0e8ca5dcd43cd9 100644 (file)
@@ -6,6 +6,7 @@
 #include <dt-bindings/clock/qcom,rpmh.h>
 #include <dt-bindings/clock/qcom,x1e80100-dispcc.h>
 #include <dt-bindings/clock/qcom,x1e80100-gcc.h>
+#include <dt-bindings/clock/qcom,x1e80100-gpucc.h>
 #include <dt-bindings/clock/qcom,x1e80100-tcsr.h>
 #include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/interconnect/qcom,icc.h>
                        };
                };
 
+               tsens0: thermal-sensor@c271000 {
+                       compatible = "qcom,x1e80100-tsens", "qcom,tsens-v2";
+                       reg = <0 0x0c271000 0 0x1000>,
+                             <0 0x0c222000 0 0x1000>;
+
+                       interrupts-extended = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow",
+                                         "critical";
+
+                       #qcom,sensors = <16>;
+
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens1: thermal-sensor@c272000 {
+                       compatible = "qcom,x1e80100-tsens", "qcom,tsens-v2";
+                       reg = <0 0x0c272000 0 0x1000>,
+                             <0 0x0c223000 0 0x1000>;
+
+                       interrupts-extended = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 642 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow",
+                                         "critical";
+
+                       #qcom,sensors = <16>;
+
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens2: thermal-sensor@c273000 {
+                       compatible = "qcom,x1e80100-tsens", "qcom,tsens-v2";
+                       reg = <0 0x0c273000 0 0x1000>,
+                             <0 0x0c224000 0 0x1000>;
+
+                       interrupts-extended = <&pdc 28 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 643 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow",
+                                         "critical";
+
+                       #qcom,sensors = <16>;
+
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens3: thermal-sensor@c274000 {
+                       compatible = "qcom,x1e80100-tsens", "qcom,tsens-v2";
+                       reg = <0 0x0c274000 0 0x1000>,
+                             <0 0x0c225000 0 0x1000>;
+
+                       interrupts-extended = <&pdc 29 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 770 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow",
+                                         "critical";
+
+                       #qcom,sensors = <16>;
+
+                       #thermal-sensor-cells = <1>;
+               };
+
                usb_1_ss0_hsphy: phy@fd3000 {
                        compatible = "qcom,x1e80100-snps-eusb2-phy",
                                     "qcom,sm8550-snps-eusb2-phy";
                        #phy-cells = <1>;
 
                        status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_1_ss0_qmpphy_out: endpoint {
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_1_ss0_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss0_dwc3_ss>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       usb_1_ss0_qmpphy_dp_in: endpoint {
+                                               remote-endpoint = <&mdss_dp0_out>;
+                                       };
+                               };
+                       };
                };
 
                usb_1_ss1_hsphy: phy@fd9000 {
                        #phy-cells = <1>;
 
                        status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_1_ss1_qmpphy_out: endpoint {
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_1_ss1_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss1_dwc3_ss>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       usb_1_ss1_qmpphy_dp_in: endpoint {
+                                               remote-endpoint = <&mdss_dp1_out>;
+                                       };
+                               };
+                       };
                };
 
                usb_1_ss2_hsphy: phy@fde000 {
                        #phy-cells = <1>;
 
                        status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_1_ss2_qmpphy_out: endpoint {
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_1_ss2_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_1_ss2_dwc3_ss>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       usb_1_ss2_qmpphy_dp_in: endpoint {
+                                               remote-endpoint = <&mdss_dp2_out>;
+                                       };
+                               };
+                       };
                };
 
                cnoc_main: interconnect@1500000 {
 
                        dma-coherent;
 
-                       linux,pci-domain = <7>;
+                       linux,pci-domain = <6>;
                        num-lanes = <2>;
 
                        interrupts = <GIC_SPI 773 IRQ_TYPE_LEVEL_HIGH>,
                                      "link_down";
 
                        power-domains = <&gcc GCC_PCIE_6A_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
 
                        phys = <&pcie6a_phy>;
                        phy-names = "pciephy";
 
                        dma-coherent;
 
-                       linux,pci-domain = <5>;
+                       linux,pci-domain = <4>;
                        num-lanes = <2>;
 
                        interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
                                      "link_down";
 
                        power-domains = <&gcc GCC_PCIE_4_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
 
                        phys = <&pcie4_phy>;
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie4_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie4_phy: phy@1c0e000 {
                        #reset-cells = <1>;
                };
 
+               gpu: gpu@3d00000 {
+                       compatible = "qcom,adreno-43050c01", "qcom,adreno";
+                       reg = <0x0 0x03d00000 0x0 0x40000>,
+                             <0x0 0x03d9e000 0x0 0x1000>,
+                             <0x0 0x03d61000 0x0 0x800>;
+
+                       reg-names = "kgsl_3d0_reg_memory",
+                                   "cx_mem",
+                                   "cx_dbgc";
+
+                       interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
+
+                       iommus = <&adreno_smmu 0 0x0>,
+                                <&adreno_smmu 1 0x0>;
+
+                       operating-points-v2 = <&gpu_opp_table>;
+
+                       qcom,gmu = <&gmu>;
+                       #cooling-cells = <2>;
+
+                       interconnects = <&gem_noc MASTER_GFX3D 0 &mc_virt SLAVE_EBI1 0>;
+                       interconnect-names = "gfx-mem";
+
+                       status = "disabled";
+
+                       zap-shader {
+                               memory-region = <&gpu_microcode_mem>;
+                       };
+
+                       gpu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-1100000000 {
+                                       opp-hz = /bits/ 64 <1100000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
+                                       opp-peak-kBps = <16500000>;
+                               };
+
+                               opp-1000000000 {
+                                       opp-hz = /bits/ 64 <1000000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+                                       opp-peak-kBps = <14398438>;
+                               };
+
+                               opp-925000000 {
+                                       opp-hz = /bits/ 64 <925000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+                                       opp-peak-kBps = <14398438>;
+                               };
+
+                               opp-800000000 {
+                                       opp-hz = /bits/ 64 <800000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+                                       opp-peak-kBps = <12449219>;
+                               };
+
+                               opp-744000000 {
+                                       opp-hz = /bits/ 64 <744000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
+                                       opp-peak-kBps = <10687500>;
+                               };
+
+                               opp-687000000 {
+                                       opp-hz = /bits/ 64 <687000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                                       opp-peak-kBps = <8171875>;
+                               };
+
+                               opp-550000000 {
+                                       opp-hz = /bits/ 64 <550000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                                       opp-peak-kBps = <6074219>;
+                               };
+
+                               opp-390000000 {
+                                       opp-hz = /bits/ 64 <390000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                                       opp-peak-kBps = <3000000>;
+                               };
+
+                               opp-300000000 {
+                                       opp-hz = /bits/ 64 <300000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D1>;
+                                       opp-peak-kBps = <2136719>;
+                               };
+                       };
+               };
+
+               gmu: gmu@3d6a000 {
+                       compatible = "qcom,adreno-gmu-x185.1", "qcom,adreno-gmu";
+                       reg = <0x0 0x03d6a000 0x0 0x35000>,
+                             <0x0 0x03d50000 0x0 0x10000>,
+                             <0x0 0x0b280000 0x0 0x10000>;
+                       reg-names =  "gmu", "rscc", "gmu_pdc";
+
+                       interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hfi", "gmu";
+
+                       clocks = <&gpucc GPU_CC_AHB_CLK>,
+                                <&gpucc GPU_CC_CX_GMU_CLK>,
+                                <&gpucc GPU_CC_CXO_CLK>,
+                                <&gcc GCC_DDRSS_GPU_AXI_CLK>,
+                                <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+                                <&gpucc GPU_CC_HUB_CX_INT_CLK>,
+                                <&gpucc GPU_CC_DEMET_CLK>;
+                       clock-names = "ahb",
+                                     "gmu",
+                                     "cxo",
+                                     "axi",
+                                     "memnoc",
+                                     "hub",
+                                     "demet";
+
+                       power-domains = <&gpucc GPU_CX_GDSC>,
+                                       <&gpucc GPU_GX_GDSC>;
+                       power-domain-names = "cx",
+                                            "gx";
+
+                       iommus = <&adreno_smmu 5 0x0>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       operating-points-v2 = <&gmu_opp_table>;
+
+                       gmu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-550000000 {
+                                       opp-hz = /bits/ 64 <550000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                               };
+
+                               opp-220000000 {
+                                       opp-hz = /bits/ 64 <220000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                               };
+                       };
+               };
+
+               gpucc: clock-controller@3d90000 {
+                       compatible = "qcom,x1e80100-gpucc";
+                       reg = <0 0x03d90000 0 0xa000>;
+                       clocks = <&bi_tcxo_div2>,
+                                <&gcc GCC_GPU_GPLL0_CPH_CLK_SRC>,
+                                <&gcc GCC_GPU_GPLL0_DIV_CPH_CLK_SRC>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               adreno_smmu: iommu@3da0000 {
+                       compatible = "qcom,x1e80100-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 674 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 678 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 679 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 680 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 681 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 682 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 683 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 684 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 685 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 686 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 687 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 688 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 476 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 574 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 575 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 576 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 577 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 660 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 662 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 665 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 666 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 667 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 669 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 670 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 700 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>,
+                                <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+                                <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>,
+                                <&gpucc GPU_CC_AHB_CLK>;
+                       clock-names = "hlos",
+                                     "bus",
+                                     "iface",
+                                     "ahb";
+                       power-domains = <&gpucc GPU_CX_GDSC>;
+                       dma-coherent;
+               };
+
                gem_noc: interconnect@26400000 {
                        compatible = "qcom,x1e80100-gem-noc";
                        reg = <0 0x26400000 0 0x311200>;
 
                                dma-coherent;
 
-                               port {
-                                       usb_1_ss2_role_switch: endpoint {
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_1_ss2_dwc3_hs: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_1_ss2_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_1_ss2_qmpphy_usb_ss_in>;
+                                               };
                                        };
                                };
                        };
                                phy-names = "usb2-phy";
                                maximum-speed = "high-speed";
 
-                               port {
-                                       usb_2_role_switch: endpoint {
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_2_dwc3_hs: endpoint {
+                                               };
                                        };
                                };
                        };
 
                                dma-coherent;
 
-                               port {
-                                       usb_1_ss0_role_switch: endpoint {
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_1_ss0_dwc3_hs: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_1_ss0_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_1_ss0_qmpphy_usb_ss_in>;
+                                               };
                                        };
                                };
                        };
 
                                dma-coherent;
 
-                               port {
-                                       usb_1_ss1_role_switch: endpoint {
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_1_ss1_dwc3_hs: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_1_ss1_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_1_ss1_qmpphy_usb_ss_in>;
+                                               };
                                        };
                                };
                        };
                                                reg = <1>;
 
                                                mdss_dp0_out: endpoint {
+                                                       remote-endpoint = <&usb_1_ss0_qmpphy_dp_in>;
                                                };
                                        };
                                };
                                                reg = <1>;
 
                                                mdss_dp1_out: endpoint {
+                                                       remote-endpoint = <&usb_1_ss1_qmpphy_dp_in>;
                                                };
                                        };
                                };
 
                                        port@1 {
                                                reg = <1>;
+
+                                               mdss_dp2_out: endpoint {
+                                                       remote-endpoint = <&usb_1_ss2_qmpphy_dp_in>;
+                                               };
                                        };
                                };
 
                        };
                };
 
+               pmu@24091000 {
+                       compatible = "qcom,x1e80100-llcc-bwmon", "qcom,sc7280-llcc-bwmon";
+                       reg = <0 0x24091000 0 0x1000>;
+
+                       interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
+
+                       interconnects = <&mc_virt MASTER_LLCC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+
+                       operating-points-v2 = <&llcc_bwmon_opp_table>;
+
+                       llcc_bwmon_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-0 {
+                                       opp-peak-kBps = <800000>;
+                               };
+
+                               opp-1 {
+                                       opp-peak-kBps = <2188000>;
+                               };
+
+                               opp-2 {
+                                       opp-peak-kBps = <3072000>;
+                               };
+
+                               opp-3 {
+                                       opp-peak-kBps = <6220800>;
+                               };
+
+                               opp-4 {
+                                       opp-peak-kBps = <6835200>;
+                               };
+
+                               opp-5 {
+                                       opp-peak-kBps = <8371200>;
+                               };
+
+                               opp-6 {
+                                       opp-peak-kBps = <10944000>;
+                               };
+
+                               opp-7 {
+                                       opp-peak-kBps = <12748800>;
+                               };
+
+                               opp-8 {
+                                       opp-peak-kBps = <14745600>;
+                               };
+
+                               opp-9 {
+                                       opp-peak-kBps = <16896000>;
+                               };
+                       };
+               };
+
+               /* cluster0 */
+               pmu@240b3400 {
+                       compatible = "qcom,x1e80100-cpu-bwmon", "qcom,sdm845-bwmon";
+                       reg = <0 0x240b3400 0 0x600>;
+
+                       interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
+
+                       interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &gem_noc SLAVE_LLCC QCOM_ICC_TAG_ACTIVE_ONLY>;
+
+                       operating-points-v2 = <&cpu_bwmon_opp_table>;
+
+                       cpu_bwmon_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-0 {
+                                       opp-peak-kBps = <4800000>;
+                               };
+
+                               opp-1 {
+                                       opp-peak-kBps = <7464000>;
+                               };
+
+                               opp-2 {
+                                       opp-peak-kBps = <9600000>;
+                               };
+
+                               opp-3 {
+                                       opp-peak-kBps = <12896000>;
+                               };
+
+                               opp-4 {
+                                       opp-peak-kBps = <14928000>;
+                               };
+
+                               opp-5 {
+                                       opp-peak-kBps = <17064000>;
+                               };
+                       };
+               };
+
+               /* cluster2 */
+               pmu@240b5400 {
+                       compatible = "qcom,x1e80100-cpu-bwmon", "qcom,sdm845-bwmon";
+                       reg = <0 0x240b5400 0 0x600>;
+
+                       interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
+
+                       interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &gem_noc SLAVE_LLCC QCOM_ICC_TAG_ACTIVE_ONLY>;
+
+                       operating-points-v2 = <&cpu_bwmon_opp_table>;
+               };
+
+               /* cluster1 */
+               pmu@240b6400 {
+                       compatible = "qcom,x1e80100-cpu-bwmon", "qcom,sdm845-bwmon";
+                       reg = <0 0x240b6400 0 0x600>;
+
+                       interrupts = <GIC_SPI 581 IRQ_TYPE_LEVEL_HIGH>;
+
+                       interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+                                        &gem_noc SLAVE_LLCC QCOM_ICC_TAG_ACTIVE_ONLY>;
+
+                       operating-points-v2 = <&cpu_bwmon_opp_table>;
+               };
+
                system-cache-controller@25000000 {
                        compatible = "qcom,x1e80100-llcc";
                        reg = <0 0x25000000 0 0x200000>,
                                label = "lpass";
                                qcom,remote-pid = <2>;
 
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "adsp";
+                                       qcom,non-secure-domain;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&apps_smmu 0x1003 0x80>,
+                                                        <&apps_smmu 0x1063 0x0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x1004 0x80>,
+                                                        <&apps_smmu 0x1064 0x0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x1005 0x80>,
+                                                        <&apps_smmu 0x1065 0x0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@6 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <6>;
+                                               iommus = <&apps_smmu 0x1006 0x80>,
+                                                        <&apps_smmu 0x1066 0x0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@7 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <7>;
+                                               iommus = <&apps_smmu 0x1007 0x80>,
+                                                        <&apps_smmu 0x1067 0x0>;
+                                               dma-coherent;
+                                       };
+                               };
+
                                gpr {
                                        compatible = "qcom,gpr";
                                        qcom,glink-channels = "adsp_apps";
 
                                label = "cdsp";
                                qcom,remote-pid = <5>;
-                       };
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "cdsp";
+                                       qcom,non-secure-domain;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@1 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <1>;
+                                               iommus = <&apps_smmu 0x0c01 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@2 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <2>;
+                                               iommus = <&apps_smmu 0x0c02 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&apps_smmu 0x0c03 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x0c04 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x0c05 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@6 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <6>;
+                                               iommus = <&apps_smmu 0x0c06 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@7 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <7>;
+                                               iommus = <&apps_smmu 0x0c07 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@8 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <8>;
+                                               iommus = <&apps_smmu 0x0c08 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       /* note: compute-cb@9 is secure */
+
+                                       compute-cb@10 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <10>;
+                                               iommus = <&apps_smmu 0x0c0c 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@11 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <11>;
+                                               iommus = <&apps_smmu 0x0c0d 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@12 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <12>;
+                                               iommus = <&apps_smmu 0x0c0e 0x20>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@13 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <13>;
+                                               iommus = <&apps_smmu 0x0c0f 0x20>;
+                                               dma-coherent;
+                                       };
+                               };
+                       };
                };
        };
 
                             <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
                             <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
        };
+
+       thermal-zones {
+               aoss0-thermal {
+                       thermal-sensors = <&tsens0 0>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               aoss0-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu0-0-top-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens0 1>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu0-0-btm-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens0 2>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu0-1-top-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens0 3>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu0-1-btm-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens0 4>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu0-2-top-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens0 5>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu0-2-btm-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens0 6>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu0-3-top-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens0 7>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu0-3-btm-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens0 8>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss0-top-thermal {
+                       thermal-sensors = <&tsens0 9>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpuss2-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss0-btm-thermal {
+                       thermal-sensors = <&tsens0 10>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpuss2-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               mem-thermal {
+                       thermal-sensors = <&tsens0 11>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               mem-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               video-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens0 12>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               aoss1-thermal {
+                       thermal-sensors = <&tsens1 0>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               aoss0-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu1-0-top-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens1 1>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu1-0-btm-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens1 2>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu1-1-top-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens1 3>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu1-1-btm-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens1 4>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu1-2-top-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens1 5>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu1-2-btm-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens1 6>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu1-3-top-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens1 7>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu1-3-btm-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens1 8>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss1-top-thermal {
+                       thermal-sensors = <&tsens1 9>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpuss2-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss1-btm-thermal {
+                       thermal-sensors = <&tsens1 10>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpuss2-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               aoss2-thermal {
+                       thermal-sensors = <&tsens2 0>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               aoss0-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu2-0-top-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens2 1>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu2-0-btm-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens2 2>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu2-1-top-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens2 3>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu2-1-btm-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens2 4>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu2-2-top-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens2 5>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu2-2-btm-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens2 6>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu2-3-top-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens2 7>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu2-3-btm-thermal {
+                       polling-delay-passive = <250>;
+
+                       thermal-sensors = <&tsens2 8>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu-critical {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss2-top-thermal {
+                       thermal-sensors = <&tsens2 9>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpuss2-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpuss2-btm-thermal {
+                       thermal-sensors = <&tsens2 10>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpuss2-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               aoss3-thermal {
+                       thermal-sensors = <&tsens3 0>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               aoss0-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsp0-thermal {
+                       thermal-sensors = <&tsens3 1>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               nsp0-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsp1-thermal {
+                       thermal-sensors = <&tsens3 2>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               nsp1-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsp2-thermal {
+                       thermal-sensors = <&tsens3 3>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               nsp2-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               nsp3-thermal {
+                       thermal-sensors = <&tsens3 4>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               nsp3-critical {
+                                       temperature = <125000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss-0-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens3 5>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <90000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               trip-point2 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss-1-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens3 6>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <90000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               trip-point2 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss-2-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens3 7>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <90000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               trip-point2 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss-3-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens3 8>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <90000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               trip-point2 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss-4-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens3 9>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <90000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               trip-point2 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss-5-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens3 10>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <90000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               trip-point2 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss-6-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens3 11>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <90000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               trip-point2 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpuss-7-thermal {
+                       polling-delay-passive = <10>;
+
+                       thermal-sensors = <&tsens3 12>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <85000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               trip-point1 {
+                                       temperature = <90000>;
+                                       hysteresis = <1000>;
+                                       type = "hot";
+                               };
+
+                               trip-point2 {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               camera0-thermal {
+                       thermal-sensors = <&tsens3 13>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               camera0-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               camera1-thermal {
+                       thermal-sensors = <&tsens3 14>;
+
+                       trips {
+                               trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               camera0-critical {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
 };
index 7c34d14dcd7e1ca0d4007059c230c0542357fce8..8b7c0c34eadce5cb37c58141e7dcfc1be484b43f 100644 (file)
                        };
                };
        };
+
+       eeprom@50 {
+               compatible = "rohm,br24t01", "atmel,24c01";
+               reg = <0x50>;
+               pagesize = <8>;
+       };
 };
 
 &i2c1 {
index a8a44fe5e83bbd5c9d0095caabd57115e189cdcd..1dbf9d56c68da8c69290be395c727c22675c2a8d 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clocks - can be overridden by the board */
index 4fff511e994cf8408b75b0e02a156c18ce12c4e4..10f22c52e79ecfca710b4d57c3430ddf536f641d 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clocks - can be overridden by the board */
index 1ef43d78c3a5740b241a9c9e3993720b23797ce9..3e2af50ce7c64bef9f2373f8ab196ef2cbea7b31 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clocks - can be overridden by the board */
index be55ae83944cf225b1d207e57ab787bb5b45cd6b..1eeb4c7b4c4b92824ab0c13b7ee58c9c0b50df7a 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clocks - can be overridden by the board */
index bea4edd17d5349099de7e18c00e395560603b01b..96f3b5fe7e92cc9b7e98b210ffce3239d1aae387 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clocks - can be overridden by the board */
index 7846fea8e40da725c80bc588b6dd3331e0ea75cc..1122c470b72f871581d678b4e670ea9f440a0ebe 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clocks - can be overridden by the board */
index 58f9286a5ab575340062886e95293ae771ea4b31..bf1130af7de39ce05a0636ee24be86e96e8a9dcb 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clocks - can be overridden by the board */
index 692940662d38d89a8e345fe97b58ced327c53a39..f02d1547b881716abb6977225d66d15f1dd8ad6d 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 
        /* External USB clocks - can be overridden by the board */
index d2d3cecc76d52f8602d13abcc534f1944772d62f..64fb95b1c89ac63abf3bf7613ad6a92fa744d26e 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 };
index 68d1f1d53b3a38b41d69609dbdf9e15072323b13..1d326552e2facd06b93fe0e0cd21d48c8c7f60c9 100644 (file)
        model = "Renesas Condor board based on r8a77980";
        compatible = "renesas,condor", "renesas,r8a77980";
 };
-
-&i2c0 {
-       eeprom@50 {
-               compatible = "rohm,br24t01", "atmel,24c01";
-               reg = <0x50>;
-               pagesize = <8>;
-       };
-};
index c0ba110c74d6a3ac1eb63b7f1a7d3c1667495a1c..0c2b157036e75e36d9bf7b485cc66bc9a0fda5d5 100644 (file)
                                       IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) |
                                       IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 };
index 37063e3f4e1be06d30ed236c55d928426a3829af..233af3081e84a407d35226c692e1e41bc3a815b4 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 };
index 89990dd8ebf7f18226977b735e645497fe932083..5f0828a4675b6e508c5dd3104638a4220e421dbb 100644 (file)
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 };
index cfa70b441e329a0b5c946d8542d64fbbfa789605..d76347001cc13c65bfee5c160bb30f336dcb0cce 100644 (file)
                interrupts-extended = <&gic GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
-                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
+                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
+                                     <&gic GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys",
+                                 "hyp-virt";
        };
 };
index 477f3114d2fd403010163ebce024cf33651cdcd5..4ed8d4c379066342ecf20fb0b82369ad0a77158b 100644 (file)
        compatible = "renesas,spider-cpu", "renesas,r8a779f0";
 
        aliases {
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
                serial0 = &hscif0;
                serial1 = &scif0;
        };
index 72cf30341fc4d63eaa4df95f67c19550d1bf2674..9629adb47d99f142710ba22f6c85f2188239716c 100644 (file)
                interrupts-extended = <&gic GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
-                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
+                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
+                                     <&gic GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys",
+                                 "hyp-virt";
        };
 
        ufs30_clk: ufs30-clk {
index bc65a7b4d999740c3be78976d840a01880a77b85..fa910b85859e99df201ac822d67be2bc53ffe634 100644 (file)
        compatible = "renesas,s4sk", "renesas,r8a779f4", "renesas,r8a779f0";
 
        aliases {
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
                serial0 = &hscif0;
                serial1 = &hscif1;
                ethernet0 = &rswitch;
index e6f53377ecd90c6b6e245ddb74b7e1f550e500d9..e6cf304c77ee9225725bebda1203b809c7734050 100644 (file)
        pinctrl-0 = <&sound_clk_pins>, <&sound_pins>;
        pinctrl-names = "default";
 
-       /* Single DAI */
-       #sound-dai-cells = <0>;
-
        /* audio_clkout */
-       #clock-cells = <0>;
        clock-frequency = <5644800>; /* 44.1kHz groups [(C) clock] */
 //     clock-frequency = <6144000>; /* 48  kHz groups [(C) clock] */
 
index 9bc542bc616909d17a54e638d9796f01abf5c794..53d1d4d8197af5dd701ddbb856286f2e3ef19dc5 100644 (file)
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        status = "disabled";
                };
 
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        status = "disabled";
                };
 
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                        status = "disabled";
                };
 
                };
 
                rcar_sound: sound@ec5a0000 {
-                       /*
-                        * #sound-dai-cells is required
-                        *
-                        * Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
-                        * Multi  DAI : #sound-dai-cells = <1>; <&rcar_sound N>;
-                        */
-                       /*
-                        * #clock-cells is required
-                        *
-                        * clkout               : #clock-cells = <0>;   <&rcar_sound>;
-                        * audio_clkout0/1/2/3  : #clock-cells = <1>;   <&rcar_sound N>;
-                        */
                        compatible = "renesas,rcar_sound-r8a779g0", "renesas,rcar_sound-gen4";
                        reg = <0 0xec5a0000 0 0x020>,
                              <0 0xec540000 0 0x1000>,
 
                        clocks = <&cpg CPG_MOD 2926>, <&cpg CPG_MOD 2927>, <&audio_clkin>;
                        clock-names = "ssiu.0", "ssi.0", "clkin";
+                       /* #clock-cells is fixed */
+                       #clock-cells = <0>;
+                       /* #sound-dai-cells is fixed */
+                       #sound-dai-cells = <0>;
+
                        power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
                        resets = <&cpg 2926>, <&cpg 2927>;
                        reset-names = "ssiu.0", "ssi.0";
                interrupts-extended = <&gic GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
-                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
+                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
+                                     <&gic GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys",
+                                 "hyp-virt";
        };
 };
index cfbe8c8680cd894734b8fc6357550740ae9fed5e..2b9a19bb1c5d30d5151bfdf4efab73aacec4f6ea 100644 (file)
        compatible = "renesas,gray-hawk-single", "renesas,r8a779h0";
 
        aliases {
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
                serial0 = &hscif0;
                serial1 = &hscif2;
                ethernet0 = &avb0;
index 6d791024cabe1b94f01ad0514214a17ec613c075..a03ab2b6a859b75e87bb4a47de890b665aedd1cd 100644 (file)
        #address-cells = <2>;
        #size-cells = <2>;
 
+       /* External Audio clock - to be overridden by boards that provide it */
+       audio_clkin: audio_clkin {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+       };
+
        cluster0_opp: opp-table-0 {
                compatible = "operating-points-v2";
-               opp-shared;
 
                opp-500000000 {
                        opp-hz = /bits/ 64 <500000000>;
                        status = "disabled";
                };
 
+               vin00: video@e6ef0000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6ef0000 0 0x1000>;
+                       interrupts = <GIC_SPI 529 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 730>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 730>;
+                       renesas,id = <0>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin00isp0: endpoint@0 {
+                                               reg = <0>;
+                                               remote-endpoint = <&isp0vin00>;
+                                       };
+                               };
+                       };
+               };
+
+               vin01: video@e6ef1000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6ef1000 0 0x1000>;
+                       interrupts = <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 731>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 731>;
+                       renesas,id = <1>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin01isp0: endpoint@0 {
+                                               reg = <0>;
+                                               remote-endpoint = <&isp0vin01>;
+                                       };
+                               };
+                       };
+               };
+
+               vin02: video@e6ef2000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6ef2000 0 0x1000>;
+                       interrupts = <GIC_SPI 531 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 800>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 800>;
+                       renesas,id = <2>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin02isp0: endpoint@0 {
+                                               reg = <0>;
+                                               remote-endpoint = <&isp0vin02>;
+                                       };
+                               };
+                       };
+               };
+
+               vin03: video@e6ef3000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6ef3000 0 0x1000>;
+                       interrupts = <GIC_SPI 532 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 801>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 801>;
+                       renesas,id = <3>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin03isp0: endpoint@0 {
+                                               reg = <0>;
+                                               remote-endpoint = <&isp0vin03>;
+                                       };
+                               };
+                       };
+               };
+
+               vin04: video@e6ef4000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6ef4000 0 0x1000>;
+                       interrupts = <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 802>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 802>;
+                       renesas,id = <4>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin04isp0: endpoint@0 {
+                                               reg = <0>;
+                                               remote-endpoint = <&isp0vin04>;
+                                       };
+                               };
+                       };
+               };
+
+               vin05: video@e6ef5000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6ef5000 0 0x1000>;
+                       interrupts = <GIC_SPI 534 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 803>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 803>;
+                       renesas,id = <5>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin05isp0: endpoint@0 {
+                                               reg = <0>;
+                                               remote-endpoint = <&isp0vin05>;
+                                       };
+                               };
+                       };
+               };
+
+               vin06: video@e6ef6000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6ef6000 0 0x1000>;
+                       interrupts = <GIC_SPI 535 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 804>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 804>;
+                       renesas,id = <6>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin06isp0: endpoint@0 {
+                                               reg = <0>;
+                                               remote-endpoint = <&isp0vin06>;
+                                       };
+                               };
+                       };
+               };
+
+               vin07: video@e6ef7000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6ef7000 0 0x1000>;
+                       interrupts = <GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 805>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 805>;
+                       renesas,id = <7>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin07isp0: endpoint@0 {
+                                               reg = <0>;
+                                               remote-endpoint = <&isp0vin07>;
+                                       };
+                               };
+                       };
+               };
+
+               vin08: video@e6ef8000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6ef8000 0 0x1000>;
+                       interrupts = <GIC_SPI 537 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 806>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 806>;
+                       renesas,id = <8>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin08isp1: endpoint@1 {
+                                               reg = <1>;
+                                               remote-endpoint = <&isp1vin08>;
+                                       };
+                               };
+                       };
+               };
+
+               vin09: video@e6ef9000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6ef9000 0 0x1000>;
+                       interrupts = <GIC_SPI 538 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 807>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 807>;
+                       renesas,id = <9>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin09isp1: endpoint@1 {
+                                               reg = <1>;
+                                               remote-endpoint = <&isp1vin09>;
+                                       };
+                               };
+                       };
+               };
+
+               vin10: video@e6efa000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6efa000 0 0x1000>;
+                       interrupts = <GIC_SPI 539 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 808>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 808>;
+                       renesas,id = <10>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin10isp1: endpoint@1 {
+                                               reg = <1>;
+                                               remote-endpoint = <&isp1vin10>;
+                                       };
+                               };
+                       };
+               };
+
+               vin11: video@e6efb000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6efb000 0 0x1000>;
+                       interrupts = <GIC_SPI 540 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 809>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 809>;
+                       renesas,id = <11>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin11isp1: endpoint@1 {
+                                               reg = <1>;
+                                               remote-endpoint = <&isp1vin11>;
+                                       };
+                               };
+                       };
+               };
+
+               vin12: video@e6efc000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6efc000 0 0x1000>;
+                       interrupts = <GIC_SPI 541 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 810>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 810>;
+                       renesas,id = <12>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin12isp1: endpoint@1 {
+                                               reg = <1>;
+                                               remote-endpoint = <&isp1vin12>;
+                                       };
+                               };
+                       };
+               };
+
+               vin13: video@e6efd000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6efd000 0 0x1000>;
+                       interrupts = <GIC_SPI 542 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 811>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 811>;
+                       renesas,id = <13>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin13isp1: endpoint@1 {
+                                               reg = <1>;
+                                               remote-endpoint = <&isp1vin13>;
+                                       };
+                               };
+                       };
+               };
+
+               vin14: video@e6efe000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6efe000 0 0x1000>;
+                       interrupts = <GIC_SPI 543 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 812>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 812>;
+                       renesas,id = <14>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin14isp1: endpoint@1 {
+                                               reg = <1>;
+                                               remote-endpoint = <&isp1vin14>;
+                                       };
+                               };
+                       };
+               };
+
+               vin15: video@e6eff000 {
+                       compatible = "renesas,vin-r8a779h0";
+                       reg = <0 0xe6eff000 0 0x1000>;
+                       interrupts = <GIC_SPI 544 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 813>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 813>;
+                       renesas,id = <15>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@2 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <2>;
+
+                                       vin15isp1: endpoint@1 {
+                                               reg = <1>;
+                                               remote-endpoint = <&isp1vin15>;
+                                       };
+                               };
+                       };
+               };
+
                dmac1: dma-controller@e7350000 {
                        compatible = "renesas,dmac-r8a779h0",
                                     "renesas,rcar-gen4-dmac";
                                 <&ipmmu_ds0 22>, <&ipmmu_ds0 23>;
                };
 
+               rcar_sound: sound@ec400000 {
+                       compatible = "renesas,rcar_sound-r8a779h0", "renesas,rcar_sound-gen4";
+                       reg = <0 0xec400000 0 0x40000>,
+                             <0 0xec540000 0 0x1000>,
+                             <0 0xec541000 0 0x050>,
+                             <0 0xec5a0000 0 0x020>;
+                       reg-names = "sdmc", "ssiu", "ssi", "adg";
+                       clocks = <&cpg CPG_MOD 2926>, <&cpg CPG_MOD 2927>, <&audio_clkin>;
+                       clock-names = "ssiu.0", "ssi.0", "clkin";
+                       /* #clock-cells is fixed */
+                       #clock-cells = <0>;
+                       /* #sound-dai-cells is fixed */
+                       #sound-dai-cells = <0>;
+
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 2926>, <&cpg 2927>;
+                       reset-names = "ssiu.0", "ssi.0";
+                       status = "disabled";
+
+                       rcar_sound,ssiu {
+                               ssiu00: ssiu-0 {
+                                       dmas = <&dmac1 0x6e>, <&dmac1 0x6f>;
+                                       dma-names = "tx", "rx";
+                               };
+                               ssiu01: ssiu-1 {
+                                       dmas = <&dmac1 0x6c>, <&dmac1 0x6d>;
+                                       dma-names = "tx", "rx";
+                               };
+                               ssiu02: ssiu-2 {
+                                       dmas = <&dmac1 0x6a>, <&dmac1 0x6b>;
+                                       dma-names = "tx", "rx";
+                               };
+                               ssiu03: ssiu-3 {
+                                       dmas = <&dmac1 0x68>, <&dmac1 0x69>;
+                                       dma-names = "tx", "rx";
+                               };
+                               ssiu04: ssiu-4 {
+                                       dmas = <&dmac1 0x66>, <&dmac1 0x67>;
+                                       dma-names = "tx", "rx";
+                               };
+                               ssiu05: ssiu-5 {
+                                       dmas = <&dmac1 0x64>, <&dmac1 0x65>;
+                                       dma-names = "tx", "rx";
+                               };
+                               ssiu06: ssiu-6 {
+                                       dmas = <&dmac1 0x62>, <&dmac1 0x63>;
+                                       dma-names = "tx", "rx";
+                               };
+                               ssiu07: ssiu-7 {
+                                       dmas = <&dmac1 0x60>, <&dmac1 0x61>;
+                                       dma-names = "tx", "rx";
+                               };
+                       };
+
+                       rcar_sound,ssi {
+                               ssi0: ssi-0 {
+                                       interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+                       };
+               };
+
                mmc0: mmc@ee140000 {
                        compatible = "renesas,sdhi-r8a779h0",
                                     "renesas,rcar-gen4-sdhi";
                        interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               csi40: csi2@fe500000 {
+                       compatible = "renesas,r8a779h0-csi2";
+                       reg = <0 0xfe500000 0 0x40000>;
+                       interrupts = <GIC_SPI 499 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 331>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 331>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       csi40isp0: endpoint {
+                                               remote-endpoint = <&isp0csi40>;
+                                       };
+                               };
+                       };
+               };
+
+               csi41: csi2@fe540000 {
+                       compatible = "renesas,r8a779h0-csi2";
+                       reg = <0 0xfe540000 0 0x40000>;
+                       interrupts = <GIC_SPI 500 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 400>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       resets = <&cpg 400>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       csi41isp1: endpoint {
+                                               remote-endpoint = <&isp1csi41>;
+                                       };
+                               };
+                       };
+               };
+
+               isp0: isp@fed00000 {
+                       compatible = "renesas,r8a779h0-isp";
+                       reg = <0 0xfed00000 0 0x10000>;
+                       interrupts = <GIC_SPI 473 IRQ_TYPE_LEVEL_LOW>;
+                       clocks = <&cpg CPG_MOD 612>;
+                       power-domains = <&sysc R8A779H0_PD_A3ISP0>;
+                       resets = <&cpg 612>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <0>;
+
+                                       isp0csi40: endpoint@0 {
+                                               reg = <0>;
+                                               remote-endpoint = <&csi40isp0>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       isp0vin00: endpoint {
+                                               remote-endpoint = <&vin00isp0>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       isp0vin01: endpoint {
+                                               remote-endpoint = <&vin01isp0>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <3>;
+                                       isp0vin02: endpoint {
+                                               remote-endpoint = <&vin02isp0>;
+                                       };
+                               };
+
+                               port@4 {
+                                       reg = <4>;
+                                       isp0vin03: endpoint {
+                                               remote-endpoint = <&vin03isp0>;
+                                       };
+                               };
+
+                               port@5 {
+                                       reg = <5>;
+                                       isp0vin04: endpoint {
+                                               remote-endpoint = <&vin04isp0>;
+                                       };
+                               };
+
+                               port@6 {
+                                       reg = <6>;
+                                       isp0vin05: endpoint {
+                                               remote-endpoint = <&vin05isp0>;
+                                       };
+                               };
+
+                               port@7 {
+                                       reg = <7>;
+                                       isp0vin06: endpoint {
+                                               remote-endpoint = <&vin06isp0>;
+                                       };
+                               };
+
+                               port@8 {
+                                       reg = <8>;
+                                       isp0vin07: endpoint {
+                                               remote-endpoint = <&vin07isp0>;
+                                       };
+                               };
+                       };
+               };
+
+               isp1: isp@fed20000 {
+                       compatible = "renesas,r8a779h0-isp";
+                       reg = <0 0xfed20000 0 0x10000>;
+                       interrupts = <GIC_SPI 474 IRQ_TYPE_LEVEL_LOW>;
+                       clocks = <&cpg CPG_MOD 613>;
+                       power-domains = <&sysc R8A779H0_PD_A3ISP0>;
+                       resets = <&cpg 613>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       reg = <0>;
+
+                                       isp1csi41: endpoint@1 {
+                                               reg = <1>;
+                                               remote-endpoint = <&csi41isp1>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       isp1vin08: endpoint {
+                                               remote-endpoint = <&vin08isp1>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       isp1vin09: endpoint {
+                                               remote-endpoint = <&vin09isp1>;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <3>;
+                                       isp1vin10: endpoint {
+                                               remote-endpoint = <&vin10isp1>;
+                                       };
+                               };
+
+                               port@4 {
+                                       reg = <4>;
+                                       isp1vin11: endpoint {
+                                               remote-endpoint = <&vin11isp1>;
+                                       };
+                               };
+
+                               port@5 {
+                                       reg = <5>;
+                                       isp1vin12: endpoint {
+                                               remote-endpoint = <&vin12isp1>;
+                                       };
+                               };
+
+                               port@6 {
+                                       reg = <6>;
+                                       isp1vin13: endpoint {
+                                               remote-endpoint = <&vin13isp1>;
+                                       };
+                               };
+
+                               port@7 {
+                                       reg = <7>;
+                                       isp1vin14: endpoint {
+                                               remote-endpoint = <&vin14isp1>;
+                                       };
+                               };
+
+                               port@8 {
+                                       reg = <8>;
+                                       isp1vin15: endpoint {
+                                               remote-endpoint = <&vin15isp1>;
+                                       };
+                               };
+                       };
+               };
+
                prr: chipid@fff00044 {
                        compatible = "renesas,prr";
                        reg = <0 0xfff00044 0 4>;
                                      <&gic GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys",
+                                 "hyp-virt";
        };
 };
index 6212ee550f33050d424cdb4692515d6683a4b9e7..2eccab9c896202f3c552a4d98d8122e60131a9e2 100644 (file)
 
                sdhi0: mmc@11c00000 {
                        compatible = "renesas,sdhi-r9a07g043",
-                                    "renesas,rcar-gen3-sdhi";
+                                    "renesas,rzg2l-sdhi";
                        reg = <0x0 0x11c00000 0 0x10000>;
                        interrupts = <SOC_PERIPHERAL_IRQ(104) IRQ_TYPE_LEVEL_HIGH>,
                                     <SOC_PERIPHERAL_IRQ(105) IRQ_TYPE_LEVEL_HIGH>;
 
                sdhi1: mmc@11c10000 {
                        compatible = "renesas,sdhi-r9a07g043",
-                                    "renesas,rcar-gen3-sdhi";
+                                    "renesas,rzg2l-sdhi";
                        reg = <0x0 0x11c10000 0 0x10000>;
                        interrupts = <SOC_PERIPHERAL_IRQ(106) IRQ_TYPE_LEVEL_HIGH>,
                                     <SOC_PERIPHERAL_IRQ(107) IRQ_TYPE_LEVEL_HIGH>;
index 165bfcfef3bcc69c931a4e85f4e9c4d222661b31..18ef297db9336362ff7d9daf57f00a529ce26f41 100644 (file)
                interrupts-extended = <&gic GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
-                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
+                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
+                                     <&gic GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys",
+                                 "hyp-virt";
        };
 };
 
index 88634ae4328720f71725bbfc030cf6e07e93382a..d3838e5820fca19fe99340297aa5acf2bc0024f9 100644 (file)
 
                sdhi0: mmc@11c00000 {
                        compatible = "renesas,sdhi-r9a07g044",
-                                    "renesas,rcar-gen3-sdhi";
+                                    "renesas,rzg2l-sdhi";
                        reg = <0x0 0x11c00000 0 0x10000>;
                        interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
 
                sdhi1: mmc@11c10000 {
                        compatible = "renesas,sdhi-r9a07g044",
-                                    "renesas,rcar-gen3-sdhi";
+                                    "renesas,rzg2l-sdhi";
                        reg = <0x0 0x11c10000 0 0x10000>;
                        interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
                interrupts-extended = <&gic GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
-                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
+                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
+                                     <&gic GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys",
+                                 "hyp-virt";
        };
 };
index e89bfe4085f5d88aa33cdd356c3020918224c03f..1de2e5f0917d91f45571898d90d97611d5cb603f 100644 (file)
 
                sdhi0: mmc@11c00000 {
                        compatible = "renesas,sdhi-r9a07g054",
-                                    "renesas,rcar-gen3-sdhi";
+                                    "renesas,rzg2l-sdhi";
                        reg = <0x0 0x11c00000 0 0x10000>;
                        interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
 
                sdhi1: mmc@11c10000 {
                        compatible = "renesas,sdhi-r9a07g054",
-                                    "renesas,rcar-gen3-sdhi";
+                                    "renesas,rzg2l-sdhi";
                        reg = <0x0 0x11c10000 0 0x10000>;
                        interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
                interrupts-extended = <&gic GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
-                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
+                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
+                                     <&gic GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys",
+                                 "hyp-virt";
        };
 };
index f5f3f4f4c8d671f2b6f550ad07df17bc6532547e..0d5c47a65e46c584f79a1ec3a3dac011413520a7 100644 (file)
                };
 
                sdhi0: mmc@11c00000  {
-                       compatible = "renesas,sdhi-r9a08g045", "renesas,rcar-gen3-sdhi";
+                       compatible = "renesas,sdhi-r9a08g045", "renesas,rzg2l-sdhi";
                        reg = <0x0 0x11c00000 0 0x10000>;
                        interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                sdhi1: mmc@11c10000 {
-                       compatible = "renesas,sdhi-r9a08g045", "renesas,rcar-gen3-sdhi";
+                       compatible = "renesas,sdhi-r9a08g045", "renesas,rzg2l-sdhi";
                        reg = <0x0 0x11c10000 0 0x10000>;
                        interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                sdhi2: mmc@11c20000 {
-                       compatible = "renesas,sdhi-r9a08g045", "renesas,rcar-gen3-sdhi";
+                       compatible = "renesas,sdhi-r9a08g045", "renesas,rzg2l-sdhi";
                        reg = <0x0 0x11c20000 0 0x10000>;
                        interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
                interrupts-extended = <&gic GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
                                      <&gic GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
-                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
+                                     <&gic GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
+                                     <&gic GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys",
+                                 "hyp-virt";
        };
 };
index 50ed66d42a24532a6a0c77e2564eacb34d843a0b..9a4cbef704c105056c84c7640e29475c83bbcfe3 100644 (file)
@@ -71,7 +71,7 @@
 
                sdhi0: mmc@85000000 {
                        compatible = "renesas,sdhi-r9a09g011",
-                                    "renesas,rcar-gen3-sdhi";
+                                    "renesas,rzg2l-sdhi";
                        reg = <0x0 0x85000000 0 0x2000>;
                        interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
@@ -87,7 +87,7 @@
 
                sdhi1: mmc@85010000  {
                        compatible = "renesas,sdhi-r9a09g011",
-                                    "renesas,rcar-gen3-sdhi";
+                                    "renesas,rzg2l-sdhi";
                        reg = <0x0 0x85010000 0 0x2000>;
                        interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>;
 
                emmc: mmc@85020000  {
                        compatible = "renesas,sdhi-r9a09g011",
-                                    "renesas,rcar-gen3-sdhi";
+                                    "renesas,rzg2l-sdhi";
                        reg = <0x0 0x85020000 0 0x2000>;
                        interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
                                      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
                                      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys";
        };
 };
index b7a3e6caa3864edaea3d2608843dab5516699ee3..b34855956ae0114618b9ea770dcd2244a6f55c12 100644 (file)
                };
        };
 
-       usb0_vbus_otg: regulator-usb0-vbus-otg {
-               compatible = "regulator-fixed";
-
-               regulator-name = "USB0_VBUS_OTG";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-       };
-
        vccq_sdhi1: regulator-vccq-sdhi1 {
                compatible = "regulator-gpio";
                regulator-name = "SDHI1 VccQ";
 
 &phyrst {
        status = "okay";
+       usb0_vbus_otg: regulator-vbus {
+               regulator-name = "vbus";
+       };
 };
 
 &scif0 {
index 8ac17370ff3661c26899d30ddd962f564fc9bd6d..80496fb3d4765a7c7f2885c02e2f824b2e9c6716 100644 (file)
 / {
        aliases {
                ethernet0 = &avb0;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
                serial0 = &hscif0;
        };
 
 &avb0 {
        pinctrl-0 = <&avb0_pins>;
        pinctrl-names = "default";
-       phy-handle = <&phy0>;
+       phy-handle = <&avb0_phy>;
        tx-internal-delay-ps = <2000>;
        status = "okay";
 
-       phy0: ethernet-phy@0 {
-               compatible = "ethernet-phy-id0022.1622",
-                            "ethernet-phy-ieee802.3-c22";
-               rxc-skew-ps = <1500>;
-               reg = <0>;
-               interrupt-parent = <&gpio7>;
-               interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
-               reset-gpios = <&gpio7 10 GPIO_ACTIVE_LOW>;
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               avb0_phy: ethernet-phy@0 {
+                       compatible = "ethernet-phy-id0022.1622",
+                                    "ethernet-phy-ieee802.3-c22";
+                       rxc-skew-ps = <1500>;
+                       reg = <0>;
+                       interrupt-parent = <&gpio7>;
+                       interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
+                       reset-gpios = <&gpio7 10 GPIO_ACTIVE_LOW>;
+               };
        };
 };
 
index a218fda337cf4308f8ec90b0ed14c2a064facd10..595ec4ff4cdd0190794af63c847821e284597b12 100644 (file)
@@ -6,6 +6,57 @@
  * Copyright (C) 2022 Glider bv
  */
 
+/ {
+       aliases {
+               ethernet1 = &avb1;
+               ethernet2 = &avb2;
+       };
+};
+
+&avb1 {
+       pinctrl-0 = <&avb1_pins>;
+       pinctrl-names = "default";
+       phy-handle = <&avb1_phy>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               reset-gpios = <&gpio6 1 GPIO_ACTIVE_LOW>;
+               reset-post-delay-us = <4000>;
+
+               avb1_phy: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c45";
+                       reg = <0>;
+                       interrupt-parent = <&gpio6>;
+                       interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+               };
+       };
+};
+
+&avb2 {
+       pinctrl-0 = <&avb2_pins>;
+       pinctrl-names = "default";
+       phy-handle = <&avb2_phy>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               reset-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>;
+               reset-post-delay-us = <4000>;
+
+               avb2_phy: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c45";
+                       reg = <0>;
+                       interrupt-parent = <&gpio5>;
+                       interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
+               };
+       };
+};
+
 &i2c0 {
        eeprom@53 {
                compatible = "rohm,br24g01", "atmel,24c01";
                pagesize = <8>;
        };
 };
+
+&pfc {
+       avb1_pins: avb1 {
+               mux {
+                       groups = "avb1_link", "avb1_mdio", "avb1_rgmii",
+                                "avb1_txcrefclk";
+                       function = "avb1";
+               };
+
+               mdio {
+                       groups = "avb1_mdio";
+                       drive-strength = <24>;
+                       bias-disable;
+               };
+
+               rgmii {
+                       groups = "avb1_rgmii";
+                       drive-strength = <24>;
+                       bias-disable;
+               };
+
+               link {
+                       groups = "avb1_link";
+                       bias-disable;
+               };
+       };
+
+       avb2_pins: avb2 {
+               mux {
+                       groups = "avb2_link", "avb2_mdio", "avb2_rgmii",
+                                "avb2_txcrefclk";
+                       function = "avb2";
+               };
+
+               mdio {
+                       groups = "avb2_mdio";
+                       drive-strength = <24>;
+                       bias-disable;
+               };
+
+               rgmii {
+                       groups = "avb2_rgmii";
+                       drive-strength = <24>;
+                       bias-disable;
+               };
+
+               link {
+                       groups = "avb2_link";
+                       bias-disable;
+               };
+       };
+};
index 079101cddd65fa102cb1e40c4bbfa2433ce0dbbf..62d18ca769a107914273df55cb2fbb9fe13026e7 100644 (file)
@@ -17,6 +17,7 @@
                ethernet0 = &gmac;
                mmc0 = &emmc;
                mmc1 = &sdmmc;
+               mmc2 = &sdio;
        };
 
        chosen {
 
 &gmac {
        clock_in_out = "output";
+       phy-handle = <&rtl8201f>;
        phy-supply = <&vcc_io>;
-       snps,reset-gpio = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
-       snps,reset-active-low;
-       snps,reset-delays-us = <0 50000 50000>;
        status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               rtl8201f: ethernet-phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mac_rst>;
+                       reset-assert-us = <20000>;
+                       reset-deassert-us = <50000>;
+                       reset-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
+               };
+       };
 };
 
 &gpio0 {
        status = "okay";
 };
 
+&io_domains {
+       vccio0-supply = <&vcc_io>;
+       vccio1-supply = <&vcc_io>;
+       vccio2-supply = <&vcc_io>;
+       vccio3-supply = <&vcc_io>;
+       vccio4-supply = <&vcc_1v8>;
+       vccio5-supply = <&vcc_io>;
+       status = "okay";
+};
+
 &pinctrl {
        pinctrl-names = "default";
        pinctrl-0 = <&rtc_32k>;
 
+       bluetooth {
+               bt_reg_on: bt-reg-on {
+                       rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_host: bt-wake-host {
+                       rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               host_wake_bt: host-wake-bt {
+                       rockchip,pins = <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       gmac {
+               mac_rst: mac-rst {
+                       rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        leds {
                green_led: green-led {
                        rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
        cap-sd-highspeed;
        cap-sdio-irq;
        keep-power-in-suspend;
-       max-frequency = <1000000>;
+       max-frequency = <100000000>;
        mmc-pwrseq = <&sdio_pwrseq>;
+       no-mmc;
+       no-sd;
        non-removable;
-       sd-uhs-sdr104;
+       sd-uhs-sdr50;
+       vmmc-supply = <&vcc_io>;
+       vqmmc-supply = <&vcc_1v8>;
        status = "okay";
+
+       rtl8723ds: wifi@1 {
+               reg = <1>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wake";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_host_wake>;
+       };
 };
 
 &sdmmc {
+       cap-mmc-highspeed;
        cap-sd-highspeed;
+       disable-wp;
+       vmmc-supply = <&vcc_io>;
        status = "okay";
 };
 
 };
 
 &uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_xfer>;
        status = "okay";
 };
 
 &uart4 {
+       uart-has-rtscts;
        status = "okay";
 
        bluetooth {
-               compatible = "realtek,rtl8723bs-bt";
-               device-wake-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
+               compatible = "realtek,rtl8723ds-bt";
+               device-wake-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
                host-wake-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_reg_on &bt_wake_host &host_wake_bt>;
        };
 };
 
diff --git a/src/arm64/rockchip/rk3308-rock-s0.dts b/src/arm64/rockchip/rk3308-rock-s0.dts
new file mode 100644 (file)
index 0000000..bd6419a
--- /dev/null
@@ -0,0 +1,293 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include "rk3308.dtsi"
+
+/ {
+       model = "Radxa ROCK S0";
+       compatible = "radxa,rock-s0", "rockchip,rk3308";
+
+       aliases {
+               ethernet0 = &gmac;
+               mmc0 = &emmc;
+               mmc1 = &sdmmc;
+               mmc2 = &sdio;
+       };
+
+       chosen {
+               stdout-path = "serial0:1500000n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwr_led>;
+
+               led-green {
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "on";
+                       function = LED_FUNCTION_HEARTBEAT;
+                       gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       vdd_log: regulator-1v04-vdd-log {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_log";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1040000>;
+               regulator-max-microvolt = <1040000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc_ddr: regulator-1v5-vcc-ddr {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_ddr";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc_1v8: regulator-1v8-vcc {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_1v8";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_io>;
+       };
+
+       vcc_io: regulator-3v3-vcc-io {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_io";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_sys: regulator-5v0-vcc-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       vdd_core: regulator-vdd-core {
+               compatible = "pwm-regulator";
+               pwms = <&pwm0 0 5000 1>;
+               pwm-supply = <&vcc5v0_sys>;
+               regulator-name = "vdd_core";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <827000>;
+               regulator-max-microvolt = <1340000>;
+               regulator-settling-time-up-us = <250>;
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_reg_on>;
+               reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_core>;
+};
+
+&emmc {
+       cap-mmc-highspeed;
+       no-sd;
+       no-sdio;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_pwren>;
+       vmmc-supply = <&vcc_io>;
+       status = "okay";
+};
+
+&gmac {
+       clock_in_out = "output";
+       phy-handle = <&rtl8201f>;
+       phy-supply = <&vcc_io>;
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               rtl8201f: ethernet-phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mac_rst>;
+                       reset-assert-us = <20000>;
+                       reset-deassert-us = <50000>;
+                       reset-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&io_domains {
+       vccio0-supply = <&vcc_io>;
+       vccio1-supply = <&vcc_io>;
+       vccio2-supply = <&vcc_io>;
+       vccio3-supply = <&vcc_io>;
+       vccio4-supply = <&vcc_1v8>;
+       vccio5-supply = <&vcc_io>;
+       status = "okay";
+};
+
+&pinctrl {
+       pinctrl-names = "default";
+       pinctrl-0 = <&rtc_32k>;
+
+       bluetooth {
+               bt_reg_on: bt-reg-on {
+                       rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_host: bt-wake-host {
+                       rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               host_wake_bt: host-wake-bt {
+                       rockchip,pins = <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       gmac {
+               mac_rst: mac-rst {
+                       rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               pwr_led: pwr-led {
+                       rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       wifi {
+               wifi_reg_on: wifi-reg-on {
+                       rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               wifi_wake_host: wifi-wake-host {
+                       rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+};
+
+&pwm0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm0_pin_pull_down>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdio {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       max-frequency = <50000000>;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       no-mmc;
+       no-sd;
+       non-removable;
+       vmmc-supply = <&vcc_io>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+
+       brcmf: wifi@1 {
+               compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wake";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_wake_host>;
+       };
+};
+
+&sdmmc {
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       disable-wp;
+       vmmc-supply = <&vcc_io>;
+       status = "okay";
+};
+
+&u2phy {
+       status = "okay";
+};
+
+&u2phy_host {
+       status = "okay";
+};
+
+&u2phy_otg {
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_xfer>;
+       status = "okay";
+};
+
+&uart4 {
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "brcm,bcm43430a1-bt";
+               clocks = <&cru SCLK_RTC32K>;
+               clock-names = "lpo";
+               interrupt-parent = <&gpio4>;
+               interrupts = <RK_PB4 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wakeup";
+               device-wakeup-gpios = <&gpio4 RK_PB2 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_reg_on &bt_wake_host &host_wake_bt>;
+               vbat-supply = <&vcc_io>;
+               vddio-supply = <&vcc_1v8>;
+       };
+};
+
+&usb_host_ehci {
+       status = "okay";
+};
+
+&usb_host_ohci {
+       status = "okay";
+};
+
+&usb20_otg {
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&wdt {
+       status = "okay";
+};
index c00da150a22fabc362b7bd6f688dc04716bbf747..31c25de2d689cd972aab082bd808c621882492c1 100644 (file)
                compatible = "rockchip,rk3308-grf", "syscon", "simple-mfd";
                reg = <0x0 0xff000000 0x0 0x08000>;
 
+               io_domains: io-domains {
+                       compatible = "rockchip,rk3308-io-voltage-domain";
+                       status = "disabled";
+               };
+
                reboot-mode {
                        compatible = "syscon-reboot-mode";
                        offset = <0x500>;
                status = "disabled";
        };
 
+       otp: efuse@ff210000 {
+               compatible = "rockchip,rk3308-otp";
+               reg = <0x0 0xff210000 0x0 0x4000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               clocks = <&cru SCLK_OTP_USR>, <&cru PCLK_OTP_NS>,
+                        <&cru PCLK_OTP_PHY>;
+               clock-names = "otp", "apb_pclk", "phy";
+               resets = <&cru SRST_OTP_PHY>;
+               reset-names = "phy";
+
+               cpu_id: id@7 {
+                       reg = <0x07 0x10>;
+               };
+
+               cpu_leakage: cpu-leakage@17 {
+                       reg = <0x17 0x1>;
+               };
+
+               logic_leakage: logic-leakage@18 {
+                       reg = <0x18 0x1>;
+               };
+       };
+
        dmac0: dma-controller@ff2c0000 {
                compatible = "arm,pl330", "arm,primecell";
                reg = <0x0 0xff2c0000 0x0 0x4000>;
index a608a219543e59b764df3fe5d25295e3af67d0ec..3e08e2fd0a7828b73ee7cc4feca2790e0a57cd6c 100644 (file)
 
        pmic {
                pmic_int_l: pmic-int-l {
-                       rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
+                       rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
                };
        };
 
index 229fe9da9c2ddc1e31ac662a6996424efe78d64e..90fef766f3ae1450398bf196ec76e16efec24379 100644 (file)
 };
 
 &hdmi {
+       avdd-0v9-supply = <&vdd_10>;
+       avdd-1v8-supply = <&vcc_18>;
        status = "okay";
 };
 
index 07dcc949b8997e8bfd601e5e21230a5e22e05835..b01efd6d042c8e2e0790db1872b432b5c6cb34eb 100644 (file)
                        <0>, <24000000>,
                        <24000000>, <24000000>,
                        <15000000>, <15000000>,
-                       <100000000>, <100000000>,
-                       <100000000>, <100000000>,
+                       <300000000>, <100000000>,
+                       <400000000>, <100000000>,
                        <50000000>, <100000000>,
                        <100000000>, <100000000>,
                        <50000000>, <50000000>,
diff --git a/src/arm64/rockchip/rk3368-lba3368.dts b/src/arm64/rockchip/rk3368-lba3368.dts
new file mode 100644 (file)
index 0000000..e0cc4da
--- /dev/null
@@ -0,0 +1,659 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/clock/rockchip,rk808.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/sound/rt5640.h>
+#include "rk3368.dtsi"
+
+/ {
+       model = "Neardi LBA3368";
+       compatible = "neardi,lba3368", "rockchip,rk3368";
+
+       aliases {
+               ethernet0 = &gmac;
+               mmc0 = &emmc;
+               mmc1 = &sdmmc;
+               mmc2 = &sdio0;
+               rtc0 = &hym8563;
+               rtc1 = &rk808;
+       };
+
+       chosen {
+               stdout-path = "serial1:115200n8";
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x0 0x40000000>;
+       };
+
+       adc-key {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               poll-interval = <100>;
+               keyup-threshold-microvolt = <1800000>;
+
+               button-recovery {
+                       label = "Recovery";
+                       linux,code = <KEY_VENDOR>;
+                       press-threshold-microvolt = <0>;
+               };
+       };
+
+       analog-sound {
+               compatible = "audio-graph-card";
+               dais = <&i2s_8ch_p0>;
+               hp-det-gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
+               label = "alc5640";
+               routing = "Mic Jack", "MICBIAS1",
+                         "IN1P", "Mic Jack",
+                         "Headphone Jack", "HPOL",
+                         "Headphone Jack", "HPOR",
+                         "Speakers", "SPORP",
+                         "Speakers", "SPORN",
+                         "Speakers", "SPOLP",
+                         "Speakers", "SPOLN";
+               widgets = "Microphone", "Mic Jack",
+                         "Headphone", "Headphone Jack",
+                         "Speaker", "Speakers";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hp_det>;
+       };
+
+       dc_12v: dc-12v-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "dc_12v";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       ext_gmac: gmac-clk {
+               compatible = "fixed-clock";
+               clock-frequency = <50000000>;
+               clock-output-names = "ext_gmac";
+               #clock-cells = <0>;
+       };
+
+       hub_avdd: hub-avdd-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "hub_avdd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_io>;
+               regulator-always-on;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               power-led {
+                       gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_POWER;
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "on";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&power_led>;
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk808 RK808_CLKOUT1>;
+               clock-names = "ext_clock";
+               reset-gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_reg_on>;
+       };
+
+       vcc_host: vcc-host-regulator {
+               compatible = "regulator-fixed";
+               gpio = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
+               regulator-name = "vcc_host";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc_sys>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&host_vbus_drv>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       vcc_lan: vcc-lan-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_lan";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_io>;
+               regulator-always-on;
+       };
+
+       vcc_otg: vcc-otg-regulator {
+               compatible = "regulator-fixed";
+               gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
+               regulator-name = "vcc_otg";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc_sys>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&otg_vbus_drv>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       vcc_sys: vcc-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_sys";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&dc_12v>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd10_usb: vdd10-usb-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd10_usb";
+               regulator-min-microvolt = <1000000>;
+               regulator-max-microvolt = <1000000>;
+               vin-supply = <&vdd_10>;
+               regulator-always-on;
+       };
+};
+
+&cpu_l0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu_l1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu_l2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu_l3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu_b0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu_b1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu_b2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu_b3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&emmc {
+       bus-width = <8>;
+       vmmc-supply = <&vcc_io>;
+       vqmmc-supply = <&vcc_18>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
+       cap-mmc-highspeed;
+       non-removable;
+       no-sd;
+       no-sdio;
+       mmc-hs200-1_8v;
+       status = "okay";
+};
+
+&gmac {
+       clock_in_out = "input";
+       phy-handle = <&phy>;
+       phy-mode = "rmii";
+       phy-supply = <&vcc_lan>;
+       assigned-clocks = <&cru SCLK_MAC>;
+       assigned-clock-parents = <&ext_gmac>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&rmii_pins>;
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               phy: ethernet-phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+                       max-speed = <100>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <1000000>;
+                       reset-gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&phy_rst>;
+               };
+       };
+};
+
+&io_domains {
+       audio-supply = <&vcca1v8_codec>;
+       dvp-supply = <&vcc_18>;
+       flash0-supply = <&vcc_18>;
+       gpio1830-supply = <&vcc_io>;
+       gpio30-supply = <&vcc_io>;
+       sdcard-supply = <&vccio_sd>;
+       wifi-supply = <&vdd1v8_wl>;
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       rk808: pmic@1b {
+               compatible = "rockchip,rk808";
+               reg = <0x1b>;
+               interrupts-extended = <&gpio0 RK_PA5 IRQ_TYPE_LEVEL_LOW>;
+               clock-output-names = "rk808-clkout1", "xin32k_wifi_bt";
+               vcc1-supply = <&vcc_sys>;
+               vcc2-supply = <&vcc_sys>;
+               vcc3-supply = <&vcc_sys>;
+               vcc4-supply = <&vcc_sys>;
+               vcc6-supply = <&vcc_sys>;
+               vcc7-supply = <&vcc_sys>;
+               vcc8-supply = <&vcc_io>;
+               vcc9-supply = <&vcc_sys>;
+               vcc10-supply = <&vcc_sys>;
+               vcc11-supply = <&vcc_sys>;
+               vcc12-supply = <&vcc_io>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int &pmic_sleep>;
+               system-power-controller;
+               wakeup-source;
+               #clock-cells = <1>;
+
+               regulators {
+                       vdd_cpu: DCDC_REG1 {
+                               regulator-name = "vdd_cpu";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_log: DCDC_REG2 {
+                               regulator-name = "vdd_log";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-suspend-microvolt = <1000000>;
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_io: DCDC_REG4 {
+                               regulator-name = "vcc_io";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-suspend-microvolt = <3300000>;
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcca1v8_codec: LDO_REG1 {
+                               regulator-name = "vcca1v8_codec";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcca3v0_codec: LDO_REG2 {
+                               regulator-name = "vcca3v0_codec";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_10: LDO_REG3 {
+                               regulator-name = "vdd_10";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-suspend-microvolt = <1000000>;
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vdd1v8_wl: LDO_REG4 {
+                               regulator-name = "vdd1v8_wl";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-name = "vccio_sd";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd10_lcd: LDO_REG6 {
+                               regulator-name = "vdd10_lcd";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_18: LDO_REG7 {
+                               regulator-name = "vcc_18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-suspend-microvolt = <1800000>;
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc18_lcd: LDO_REG8 {
+                               regulator-name = "vcc18_lcd";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_tp: SWITCH_REG1 {
+                               regulator-name = "vcc_tp";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_sd: SWITCH_REG2 {
+                               regulator-name = "vcc_sd";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c1 {
+       status = "okay";
+
+       codec@1c {
+               compatible = "realtek,rt5640";
+               reg = <0x1c>;
+               clocks = <&cru SCLK_I2S_8CH_OUT>;
+               clock-names = "mclk";
+               realtek,dmic1-data-pin = <RT5640_DMIC1_DATA_PIN_IN1P>;
+               realtek,dmic2-data-pin = <RT5640_DMIC2_DATA_PIN_IN1N>;
+               realtek,in1-differential;
+               #sound-dai-cells = <0>;
+
+               port {
+                       rt5640_p0_0: endpoint {
+                               remote-endpoint = <&i2s_8ch_p0_0>;
+                       };
+               };
+       };
+
+       hym8563: rtc@51 {
+               compatible = "haoyu,hym8563";
+               reg = <0x51>;
+               clock-output-names = "xin32k";
+               #clock-cells = <0>;
+       };
+};
+
+&i2s_8ch {
+       status = "okay";
+
+       i2s_8ch_p0: port {
+               i2s_8ch_p0_0: endpoint {
+                       dai-format = "i2s";
+                       mclk-fs = <256>;
+                       remote-endpoint = <&rt5640_p0_0>;
+               };
+       };
+};
+
+&pinctrl {
+       bluetooth {
+               bt_host_wake: bt-host-wake {
+                       rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_reg_on: bt-reg-on {
+                       rockchip,pins = <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               bt_wake: bt-wake {
+                       rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               power_led: power-led {
+                       rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       phy {
+               phy_rst: phy-rst {
+                       rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int: pmic-int {
+                       rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               pmic_sleep: pmic-sleep {
+                       rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_reg_on: wifi-reg-on {
+                       rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       sound {
+               hp_det: hp-det {
+                       rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               host_vbus_drv: host-vbus-drv {
+                       rockchip,pins = <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               otg_vbus_drv: otg-vbus-drv {
+                       rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       wifi {
+               wifi_host_wake: wifi-host-wake {
+                       rockchip,pins = <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmu-supply = <&vcc_io>;
+       vop-supply = <&vcc_io>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_18>;
+       status = "okay";
+};
+
+&sdio0 {
+       bus-width = <4>;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       vmmc-supply = <&vcc_io>;
+       vqmmc-supply = <&vdd1v8_wl>;
+       assigned-clocks = <&cru SCLK_SDIO0>;
+       assigned-clock-parents = <&cru PLL_CPLL>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       no-sd;
+       no-mmc;
+       non-removable;
+       sd-uhs-sdr104;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       wifi@1 {
+               compatible = "brcm,bcm43455-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+               interrupts-extended = <&gpio3 RK_PA6 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wake";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_host_wake>;
+       };
+};
+
+&sdmmc {
+       bus-width = <4>;
+       vmmc-supply = <&vcc_sd>;
+       vqmmc-supply = <&vccio_sd>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4 &sdmmc_cd>;
+       cap-sd-highspeed;
+       disable-wp;
+       no-mmc;
+       no-sdio;
+       sd-uhs-sdr12;
+       sd-uhs-sdr25;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       status = "okay";
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <0>;
+       rockchip,hw-tshut-polarity = <1>;
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "brcm,bcm4345c5";
+               interrupts-extended = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
+               interrupt-names = "host-wakeup";
+               clocks = <&rk808 RK808_CLKOUT1>;
+               clock-names = "lpo";
+               device-wakeup-gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>;
+               max-speed = <15000000>;
+               vbat-supply = <&vcc_io>;
+               vddio-supply = <&vdd1v8_wl>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_host_wake &bt_wake &bt_reg_on>;
+       };
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_xfer>;
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart4_xfer>;
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       hub@1 {
+               compatible = "usb5e3,610";
+               reg = <1>;
+               vdd-supply = <&hub_avdd>;
+       };
+};
+
+&usb_otg {
+       vbus-supply = <&vcc_otg>;
+       vusb_a-supply = <&vcc_io>;
+       vusb_d-supply = <&vdd10_usb>;
+       status = "okay";
+};
+
+&wdt {
+       status = "okay";
+};
index e5709c7ee06aae00de16032d5d2fb01ffd7ffc47..ef754ea30a940a29408a44040bea3cd494e92a60 100644 (file)
@@ -12,6 +12,7 @@
 /dts-v1/;
 #include <dt-bindings/input/gpio-keys.h>
 #include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/leds/common.h>
 #include "rk3399.dtsi"
 #include "rk3399-opp.dtsi"
 
                };
        };
 
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&red_led_pin &green_led_pin &blue_led_pin>;
+
+               led_red: led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
+               };
+
+               led_green: led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpio4 RK_PD5 GPIO_ACTIVE_HIGH>;
+               };
+
+               led_blue: led-2 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio4 RK_PD6 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       multi-led {
+               compatible = "leds-group-multicolor";
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_INDICATOR;
+               leds = <&led_red>, <&led_green>, <&led_blue>;
+       };
+
        vcc_sys: vcc-sys-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vcc_sys";
                gpio = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
        };
+
+       vibrator {
+               compatible = "gpio-vibrator";
+               enable-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>;
+               vcc-supply = <&vcc3v3_sys>;
+       };
 };
 
 &cpu_alert0 {
        };
 };
 
+&i2c4 {
+       i2c-scl-rising-time-ns = <600>;
+       i2c-scl-falling-time-ns = <20>;
+       status = "okay";
+
+       /* Accelerometer/gyroscope */
+       mpu6500@68 {
+               compatible = "invensense,mpu6500";
+               reg = <0x68>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <RK_PC6 IRQ_TYPE_LEVEL_LOW>;
+               vddio-supply = <&vcc_1v8>;
+       };
+};
+
 &cluster0_opp {
        opp04 {
                status = "disabled";
                };
        };
 
+       leds {
+               red_led_pin: red-led-pin {
+                       rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               green_led_pin: green-led-pin {
+                       rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               blue_led_pin: blue-led-pin {
+                       rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        pmic {
                pmic_int_l: pmic-int-l {
                        rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
        status = "okay";
 };
 
+&spi1 {
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <10000000>;
+       };
+};
+
 &tsadc {
        rockchip,hw-tshut-mode = <1>;
        rockchip,hw-tshut-polarity = <1>;
index ccbe3a7a1d2c2fd9c195a027976d2c076d4f7381..d24444cdf54afa19cf5feaae47c7e798f06369b1 100644 (file)
        };
 };
 
+&gpio3 {
+       /*
+        * The Qseven BIOS_DISABLE signal on the RK3399-Q7 keeps the on-module
+        * eMMC and SPI flash powered-down initially (in fact it keeps the
+        * reset signal asserted). BIOS_DISABLE_OVERRIDE pin allows to override
+        * that signal so that eMMC and SPI can be used regardless of the state
+        * of the signal.
+        */
+       bios-disable-override-hog {
+               gpios = <RK_PD5 GPIO_ACTIVE_LOW>;
+               gpio-hog;
+               line-name = "bios_disable_override";
+               output-high;
+       };
+};
+
 &gmac {
        assigned-clocks = <&cru SCLK_RMII_SRC>;
        assigned-clock-parents = <&clkin_gmac>;
 
 &i2s0 {
        pinctrl-0 = <&i2s0_2ch_bus>;
+       pinctrl-1 = <&i2s0_2ch_bus_bclk_off>;
        rockchip,playback-channels = <2>;
        rockchip,capture-channels = <2>;
        status = "okay";
 /*
  * As Q7 does not specify neither a global nor a RX clock for I2S these
  * signals are not used. Furthermore I2S0_LRCK_RX is used as GPIO.
- * Therefore we have to redefine the i2s0_2ch_bus definition to prevent
- * conflicts.
+ * Therefore we have to redefine the i2s0_2ch_bus and i2s0_2ch_bus_bclk_off
+ * definitions to prevent conflicts.
  */
 &i2s0_2ch_bus {
        rockchip,pins =
                <3 RK_PD7 1 &pcfg_pull_none>;
 };
 
+&i2s0_2ch_bus_bclk_off {
+       rockchip,pins =
+               <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>,
+               <3 RK_PD2 1 &pcfg_pull_none>,
+               <3 RK_PD3 1 &pcfg_pull_none>,
+               <3 RK_PD7 1 &pcfg_pull_none>;
+};
+
 &io_domains {
        status = "okay";
        bt656-supply = <&vcc_1v8>;
 
 &pinctrl {
        pinctrl-names = "default";
-       pinctrl-0 = <&q7_thermal_pin>;
+       pinctrl-0 = <&q7_thermal_pin &bios_disable_override_hog_pin>;
 
        gpios {
+               bios_disable_override_hog_pin: bios-disable-override-hog-pin {
+                       rockchip,pins =
+                               <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
                q7_thermal_pin: q7-thermal-pin {
                        rockchip,pins =
                                <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
diff --git a/src/arm64/rockchip/rk3399pro.dtsi b/src/arm64/rockchip/rk3399pro.dtsi
deleted file mode 100644 (file)
index bb5ebf6..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-// Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd.
-
-#include "rk3399.dtsi"
-
-/ {
-       compatible = "rockchip,rk3399pro";
-};
-
-/* Default to enabled since AP talk to NPU part over pcie */
-&pcie_phy {
-       status = "okay";
-};
-
-/* Default to enabled since AP talk to NPU part over pcie */
-&pcie0 {
-       ep-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
-       num-lanes = <4>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pcie_clkreqn_cpm>;
-       status = "okay";
-};
diff --git a/src/arm64/rockchip/rk3566-orangepi-3b-v1.1.dts b/src/arm64/rockchip/rk3566-orangepi-3b-v1.1.dts
new file mode 100644 (file)
index 0000000..074e93b
--- /dev/null
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include "rk3566-orangepi-3b.dtsi"
+
+/ {
+       model = "Xunlong Orange Pi 3B v1.1";
+       compatible = "xunlong,orangepi-3b-v1.1", "xunlong,orangepi-3b", "rockchip,rk3566";
+};
+
+&pmu_io_domains {
+       vccio5-supply = <&vcc_3v3>;
+};
+
+&gmac1 {
+       phy-handle = <&rgmii_phy1>;
+       status = "okay";
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@1 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <1>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <50000>;
+               reset-gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_LOW>;
+       };
+};
diff --git a/src/arm64/rockchip/rk3566-orangepi-3b-v2.1.dts b/src/arm64/rockchip/rk3566-orangepi-3b-v2.1.dts
new file mode 100644 (file)
index 0000000..d894bff
--- /dev/null
@@ -0,0 +1,70 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include "rk3566-orangepi-3b.dtsi"
+
+/ {
+       model = "Xunlong Orange Pi 3B v2.1";
+       compatible = "xunlong,orangepi-3b-v2.1", "xunlong,orangepi-3b", "rockchip,rk3566";
+
+       vccio_phy1: regulator-1v8-vccio-phy {
+               compatible = "regulator-fixed";
+               regulator-name = "vccio_phy1";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+       };
+};
+
+&pmu_io_domains {
+       vccio5-supply = <&vccio_phy1>;
+};
+
+&gmac1 {
+       phy-handle = <&rgmii_phy1>;
+       status = "okay";
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@1 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <1>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <50000>;
+               reset-gpios = <&gpio4 RK_PC4 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&sdmmc1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       brcmf: wifi@1 {
+               compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PD6 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wake";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_wake_host_h>;
+       };
+};
+
+&uart1 {
+       bluetooth {
+               compatible = "brcm,bcm4345c5";
+               clocks = <&rk809 1>;
+               clock-names = "lpo";
+               interrupt-parent = <&gpio2>;
+               interrupts = <RK_PC0 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wakeup";
+               device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_reg_on_h &bt_wake_host_h &host_wake_bt_h>;
+               vbat-supply = <&vcc_3v3>;
+               vddio-supply = <&vcc_1v8>;
+       };
+};
diff --git a/src/arm64/rockchip/rk3566-orangepi-3b.dtsi b/src/arm64/rockchip/rk3566-orangepi-3b.dtsi
new file mode 100644 (file)
index 0000000..d539570
--- /dev/null
@@ -0,0 +1,678 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3566.dtsi"
+
+/ {
+       model = "Xunlong Orange Pi 3B";
+       compatible = "xunlong,orangepi-3b", "rockchip,rk3566";
+
+       aliases {
+               ethernet0 = &gmac1;
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc0;
+               mmc2 = &sdmmc1;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       hdmi-con {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi_out_con>;
+                       };
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&work_led>;
+
+               led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "on";
+                       function = LED_FUNCTION_HEARTBEAT;
+                       gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       vcc3v3_pcie30: regulator-3v3-vcc-pcie30 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie20_pwren>;
+               regulator-name = "vcc3v3_pcie30";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       vcc3v3_sys: regulator-3v3-vcc-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_sys: regulator-5v0-vcc-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       vcc5v0_usb_host: regulator-5v0-vcc-usb-host {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_host_pwren_h>;
+               regulator-name = "vcc5v0_usb_host";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_usb_otg: regulator-5v0-vcc-usb-otg {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_otg_pwren_h>;
+               regulator-name = "vcc5v0_usb_otg";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_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>;
+               post-power-on-delay-ms = <200>;
+               power-off-delay-us = <5000000>;
+               reset-gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_LOW>;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,name = "Analog RK809";
+               simple-audio-card,mclk-fs = <256>;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s1_8ch>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&rk809>;
+               };
+       };
+};
+
+&combphy1 {
+       status = "okay";
+};
+
+&combphy2 {
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&gmac1 {
+       assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
+       assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
+       clock_in_out = "input";
+       phy-mode = "rgmii-id";
+       phy-supply = <&vcc_3v3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1m0_miim
+                    &gmac1m0_tx_bus2
+                    &gmac1m0_rx_bus2
+                    &gmac1m0_rgmii_clk
+                    &gmac1m0_rgmii_bus
+                    &gmac1m0_clkinout>;
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
+&hdmi {
+       avdd-0v9-supply = <&vdda0v9_image>;
+       avdd-1v8-supply = <&vcca1v8_image>;
+       status = "okay";
+};
+
+&hdmi_in {
+       hdmi_in_vp0: endpoint {
+               remote-endpoint = <&vp0_out_hdmi>;
+       };
+};
+
+&hdmi_out {
+       hdmi_out_con: endpoint {
+               remote-endpoint = <&hdmi_con_in>;
+       };
+};
+
+&hdmi_sound {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       rk809: pmic@20 {
+               compatible = "rockchip,rk809";
+               reg = <0x20>;
+               assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
+               assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
+               #clock-cells = <1>;
+               clocks = <&cru I2S1_MCLKOUT_TX>;
+               clock-names = "mclk";
+               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>, <&i2s1m0_mclk>;
+               #sound-dai-cells = <0>;
+               system-power-controller;
+               wakeup-source;
+
+               vcc1-supply = <&vcc3v3_sys>;
+               vcc2-supply = <&vcc3v3_sys>;
+               vcc3-supply = <&vcc3v3_sys>;
+               vcc4-supply = <&vcc3v3_sys>;
+               vcc5-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc3v3_sys>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc3v3_sys>;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-name = "vdd_logic";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-name = "vdd_gpu";
+                               regulator-always-on;
+                               regulator-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;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vdd_npu: DCDC_REG4 {
+                               regulator-name = "vdd_npu";
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8: DCDC_REG5 {
+                               regulator-name = "vcc_1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_image: LDO_REG1 {
+                               regulator-name = "vdda0v9_image";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda_0v9: LDO_REG2 {
+                               regulator-name = "vdda_0v9";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_pmu: LDO_REG3 {
+                               regulator-name = "vdda0v9_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vccio_acodec: LDO_REG4 {
+                               regulator-name = "vccio_acodec";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-name = "vccio_sd";
+                               regulator-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;
+                               };
+                       };
+
+                       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 = <830000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc3v3_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2s0_8ch {
+       status = "okay";
+};
+
+&i2s1_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s1m0_sclktx
+                    &i2s1m0_lrcktx
+                    &i2s1m0_sdi0
+                    &i2s1m0_sdo0>;
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+};
+
+&pcie2x1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie20_pins>;
+       reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie30>;
+       status = "okay";
+};
+
+&pinctrl {
+       bluetooth {
+               bt_reg_on_h: bt-reg-on-h {
+                       rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_host_h: bt-wake-host-h {
+                       rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               host_wake_bt_h: host-wake-bt-h {
+                       rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               work_led: work-led {
+                       rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pcie {
+               pcie20_pins: pcie20-pins {
+                       rockchip,pins =
+                               <1 RK_PB0 4 &pcfg_pull_none>,
+                               <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <1 RK_PB1 4 &pcfg_pull_none>;
+               };
+
+               pcie20_pwren: pcie20-pwren {
+                       rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb {
+               usb_host_pwren_h: usb-host-pwren-h {
+                       rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usb_otg_pwren_h: usb-otg-pwren-h {
+                       rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       wifi {
+               wifi_reg_on_h: wifi-reg-on-h {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               wifi_wake_host_h: wifi-wake-host-h {
+                       rockchip,pins = <0 RK_PD6 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcc3v3_pmu>;
+       vccio1-supply = <&vccio_acodec>;
+       vccio2-supply = <&vcc_1v8>;
+       vccio3-supply = <&vccio_sd>;
+       vccio4-supply = <&vcc_1v8>;
+       vccio6-supply = <&vcc_3v3>;
+       vccio7-supply = <&vcc_3v3>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcca_1v8>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       max-frequency = <200000000>;
+       mmc-hs200-1_8v;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc0 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+       vmmc-supply = <&vcc3v3_sd>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&sdmmc1 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       no-mmc;
+       no-sd;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_clk &sdmmc1_cmd>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&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>;
+       };
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       phy-supply = <&vcc5v0_usb_host>;
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       phy-supply = <&vcc5v0_usb_otg>;
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+&usb2phy1_host {
+       phy-supply = <&vcc5v0_usb_host>;
+       status = "okay";
+};
+
+&usb2phy1_otg {
+       phy-supply = <&vcc5v0_usb_host>;
+       status = "okay";
+};
+
+&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 d899087bf0b559ff9a7110376409615f1cfebe0b..ae2536c65a83004e380dbecbc2b2b465dfc03be6 100644 (file)
 };
 
 &uart1 {
+       dma-names = "tx", "rx";
        pinctrl-0 = <&uart1m0_ctsn>, <&uart1m0_rtsn>, <&uart1m0_xfer>;
        pinctrl-names = "default";
        uart-has-rtscts;
index 0b191d8462ad85757a48794c884f36b569ff202f..37a1303d9a34f7625b9b8e8d0a4a5fcdae0f9c43 100644 (file)
 };
 
 &uart1 {
+       dma-names = "tx", "rx";
        pinctrl-names = "default";
        pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
        status = "okay";
index b908ce006c26e1fbc11f1249854b8ea45a0f55bb..13e599a85eb83cadb84bf807242aba7419b689f3 100644 (file)
 };
 
 &uart1 {
+       dma-names = "tx", "rx";
        pinctrl-names = "default";
        pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
        status = "okay";
diff --git a/src/arm64/rockchip/rk3566-radxa-zero-3.dtsi b/src/arm64/rockchip/rk3566-radxa-zero-3.dtsi
new file mode 100644 (file)
index 0000000..9cc7aa3
--- /dev/null
@@ -0,0 +1,531 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3566.dtsi"
+
+/ {
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       hdmi-con {
+               compatible = "hdmi-connector";
+               type = "d";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi_out_con>;
+                       };
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&user_led2>;
+
+               led-green {
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "on";
+                       function = LED_FUNCTION_HEARTBEAT;
+                       gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       vcc_1v8: regulator-1v8-vcc {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_1v8";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_1v8_p>;
+       };
+
+       vcca_1v8: regulator-1v8-vcca {
+               compatible = "regulator-fixed";
+               regulator-name = "vcca_1v8";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_1v8_p>;
+       };
+
+       vcca1v8_image: regulator-1v8-vcca-image {
+               compatible = "regulator-fixed";
+               regulator-name = "vcca1v8_image";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_1v8_p>;
+       };
+
+       vcc_3v3: regulator-3v3-vcc {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_3v3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       vcc_sys: regulator-5v0-vcc-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+};
+
+&combphy1 {
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&gpio0 {
+       gpio-line-names =
+               /* GPIO0_A0 - A7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO0_B0 - B7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO0_C0 - C7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO0_D0 - D7 */
+               "pin-10 [GPIO0_D0]", "pin-08 [GPIO0_D1]", "",
+               "", "", "", "", "";
+};
+
+&gpio1 {
+       gpio-line-names =
+               /* GPIO1_A0 - A7 */
+               "pin-03 [GPIO1_A0]", "pin-05 [GPIO1_A1]", "",
+               "",                  "pin-37 [GPIO1_A4]", "",
+               "",                  "",
+               /* GPIO1_B0 - B7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO1_C0 - C7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO1_D0 - D7 */
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio2 {
+       gpio-line-names =
+               /* GPIO2_A0 - A7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO2_B0 - B7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO2_C0 - C7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO2_D0 - D7 */
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio3 {
+       gpio-line-names =
+               /* GPIO3_A0 - A7 */
+               "",                  "pin-11 [GPIO3_A1]", "pin-13 [GPIO3_A2]",
+               "pin-12 [GPIO3_A3]", "pin-35 [GPIO3_A4]", "pin-40 [GPIO3_A5]",
+               "pin-38 [GPIO3_A6]", "pin-36 [GPIO3_A7]",
+               /* GPIO3_B0 - B7 */
+               "pin-15 [GPIO3_B0]", "pin-16 [GPIO3_B1]", "pin-18 [GPIO3_B2]",
+               "pin-29 [GPIO3_B3]", "pin-31 [GPIO3_B4]", "",
+               "", "",
+               /* GPIO3_C0 - C7 */
+               "",                  "pin-22 [GPIO3_C1]", "pin-32 [GPIO3_C2]",
+               "pin-33 [GPIO3_C3]", "pin-07 [GPIO3_C4]", "",
+               "", "",
+               /* GPIO3_D0 - D7 */
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio4 {
+       gpio-line-names =
+               /* GPIO4_A0 - A7 */
+               "", "", "", "", "", "", "", "",
+               /* GPIO4_B0 - B7 */
+               "",                  "",                  "pin-27 [GPIO4_B2]",
+               "pin-28 [GPIO4_B3]", "", "", "", "",
+               /* GPIO4_C0 - C7 */
+               "",                  "",                  "pin-23 [GPIO4_C2]",
+               "pin-19 [GPIO4_C3]", "",                  "pin-21 [GPIO4_C5]",
+               "pin-24 [GPIO4_C6]", "",
+               /* GPIO4_D0 - D7 */
+               "", "", "", "", "", "", "", "";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu_npu>;
+       status = "okay";
+};
+
+&hdmi {
+       avdd-0v9-supply = <&vdda_0v9>;
+       avdd-1v8-supply = <&vcca1v8_image>;
+       status = "okay";
+};
+
+&hdmi_in {
+       hdmi_in_vp0: endpoint {
+               remote-endpoint = <&vp0_out_hdmi>;
+       };
+};
+
+&hdmi_out {
+       hdmi_out_con: endpoint {
+               remote-endpoint = <&hdmi_con_in>;
+       };
+};
+
+&hdmi_sound {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       rk817: pmic@20 {
+               compatible = "rockchip,rk817";
+               reg = <0x20>;
+               #clock-cells = <1>;
+               clock-output-names = "rk817-clkout1", "rk817-clkout2";
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA3 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 = <&vcc_sys>;
+               vcc6-supply = <&vcc_sys>;
+               vcc7-supply = <&vcc_sys>;
+               vcc8-supply = <&vcc_sys>;
+               vcc9-supply = <&vcc5v_midu>;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-name = "vdd_logic";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdd_gpu_npu: DCDC_REG2 {
+                               regulator-name = "vdd_gpu_npu";
+                               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;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_sys: DCDC_REG4 {
+                               regulator-name = "vcc3v3_sys";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcca1v8_pmu: LDO_REG1 {
+                               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>;
+                               };
+                       };
+
+                       vdda_0v9: LDO_REG2 {
+                               regulator-name = "vdda_0v9";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_pmu: LDO_REG3 {
+                               regulator-name = "vdda0v9_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vccio_acodec: LDO_REG4 {
+                               regulator-name = "vccio_acodec";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-name = "vccio_sd";
+                               regulator-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>;
+                               };
+                       };
+
+                       vcc_1v8_p: LDO_REG7 {
+                               regulator-name = "vcc_1v8_p";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v8_dvp: LDO_REG8 {
+                               regulator-name = "vcc1v8_dvp";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc2v8_dvp: LDO_REG9 {
+                               regulator-name = "vcc2v8_dvp";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc5v_midu: BOOST {
+                               regulator-name = "vcc5v_midu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5000000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vbus: OTG_SWITCH {
+                               regulator-name = "vbus";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+
+       vdd_cpu: regulator@40 {
+               compatible = "rockchip,rk8600";
+               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 = <&vcc_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2s0_8ch {
+       status = "okay";
+};
+
+&pinctrl {
+       leds {
+               user_led2: user-led2 {
+                       rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcca1v8_pmu>;
+       vccio1-supply = <&vccio_acodec>;
+       vccio2-supply = <&vcc_1v8>;
+       vccio3-supply = <&vccio_sd>;
+       vccio4-supply = <&vcc_1v8>;
+       vccio5-supply = <&vcc_3v3>;
+       vccio6-supply = <&vcc_3v3>;
+       vccio7-supply = <&vcc_3v3>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcca_1v8>;
+       status = "okay";
+};
+
+&sdmmc0 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+       vmmc-supply = <&vcc3v3_sys>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       status = "okay";
+};
+
+&vop {
+       assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
+       assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
+       status = "okay";
+};
+
+&vop_mmu {
+       status = "okay";
+};
+
+&vp0 {
+       vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+               reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+               remote-endpoint = <&hdmi_in_vp0>;
+       };
+};
diff --git a/src/arm64/rockchip/rk3566-radxa-zero-3e.dts b/src/arm64/rockchip/rk3566-radxa-zero-3e.dts
new file mode 100644 (file)
index 0000000..4a830eb
--- /dev/null
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include "rk3566-radxa-zero-3.dtsi"
+
+/ {
+       model = "Radxa ZERO 3E";
+       compatible = "radxa,zero-3e", "rockchip,rk3566";
+
+       aliases {
+               ethernet0 = &gmac1;
+               mmc0 = &sdmmc0;
+       };
+};
+
+&gmac1 {
+       assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
+       assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
+       clock_in_out = "input";
+       phy-handle = <&rgmii_phy1>;
+       phy-mode = "rgmii-id";
+       phy-supply = <&vcc_3v3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1m1_miim
+                    &gmac1m1_tx_bus2
+                    &gmac1m1_rx_bus2
+                    &gmac1m1_rgmii_clk
+                    &gmac1m1_rgmii_bus
+                    &gmac1m1_clkinout>;
+       status = "okay";
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@1 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&gmac1_rstn>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <50000>;
+               reset-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pinctrl {
+       gmac1 {
+               gmac1_rstn: gmac1-rstn {
+                       rockchip,pins = <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
diff --git a/src/arm64/rockchip/rk3566-radxa-zero-3w.dts b/src/arm64/rockchip/rk3566-radxa-zero-3w.dts
new file mode 100644 (file)
index 0000000..f92475c
--- /dev/null
@@ -0,0 +1,92 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include "rk3566-radxa-zero-3.dtsi"
+
+/ {
+       model = "Radxa ZERO 3W";
+       compatible = "radxa,zero-3w", "rockchip,rk3566";
+
+       aliases {
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc0;
+               mmc2 = &sdmmc1;
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk817 1>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_reg_on_h>;
+               post-power-on-delay-ms = <100>;
+               power-off-delay-us = <5000000>;
+               reset-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pinctrl {
+       bluetooth {
+               bt_reg_on_h: bt-reg-on-h {
+                       rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_host_h: bt-wake-host-h {
+                       rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               host_wake_bt_h: host-wake-bt-h {
+                       rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       wifi {
+               wifi_reg_on_h: wifi-reg-on-h {
+                       rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               wifi_wake_host_h: wifi-wake-host-h {
+                       rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&sdhci {
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       max-frequency = <200000000>;
+       mmc-hs200-1_8v;
+       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 = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc1 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       no-mmc;
+       no-sd;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_clk &sdmmc1_cmd>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
+       uart-has-rtscts;
+       status = "okay";
+};
index 63eea27293fe939f46a1a269210777901938c440..67e7801bd48964a4f33c575bca212af1fa01efce 100644 (file)
                vcc9-supply = <&vcc3v3_sys>;
 
                codec {
-                       mic-in-differential;
+                       rockchip,mic-in-differential;
                };
 
                regulators {
index b242409d378c0c9ed9da75f68b22b27a3d3eedad..f2cc086e5001a66d40bbe6672389779711d59def 100644 (file)
        flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0x0>;
-               spi-max-frequency = <120000000>;
+               spi-max-frequency = <104000000>;
                spi-rx-bus-width = <4>;
                spi-tx-bus-width = <1>;
        };
index dd4e9c1893c6125d553be151963ca021c4b80b55..e42c474ef4ad2d0d62aa29fa0052d42d650aeb54 100644 (file)
 };
 
 &uart1 {
+       dma-names = "tx", "rx";
        pinctrl-names = "default";
        pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
        uart-has-rtscts;
index 19f8fc369b1308cdfe8bfaa3b49e6f6b5134bb27..8c3ab07d380797827d5660ac5bfa3a240a55a429 100644 (file)
                };
 
                codec {
-                       mic-in-differential;
+                       rockchip,mic-in-differential;
                };
        };
 };
index 58ab7e9971dbce99a275a6f9f2cad8380ee3b5eb..b5e67990dd0f8ba455dda26f0b7161cfb91df432 100644 (file)
        };
 };
 
+&pmu_io_domains {
+       vccio3-supply = <&vccio_sd>;
+};
+
 &sdmmc0 {
        bus-width = <4>;
        cap-mmc-highspeed;
index 89e84e3a92629a877a5a085c9ea5d1b46889e60a..25c49bdbadbcbaae04397ba62c70ed1d9a8e8ffc 100644 (file)
@@ -39,9 +39,9 @@
                };
        };
 
-       dc_12v: dc-12v-regulator {
+       vcc12v_dcin: vcc12v-dcin-regulator {
                compatible = "regulator-fixed";
-               regulator-name = "dc_12v";
+               regulator-name = "vcc12v_dcin";
                regulator-always-on;
                regulator-boot-on;
                regulator-min-microvolt = <12000000>;
@@ -65,7 +65,7 @@
                regulator-boot-on;
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
-               vin-supply = <&dc_12v>;
+               vin-supply = <&vcc12v_dcin>;
        };
 
        vcc5v0_sys: vcc5v0-sys-regulator {
                regulator-boot-on;
                regulator-min-microvolt = <5000000>;
                regulator-max-microvolt = <5000000>;
-               vin-supply = <&dc_12v>;
-       };
-
-       vcc5v0_usb_host: vcc5v0-usb-host-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "vcc5v0_usb_host";
-               regulator-always-on;
-               regulator-boot-on;
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc12v_dcin>;
        };
 
        vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
@@ -94,8 +85,9 @@
                pinctrl-names = "default";
                pinctrl-0 = <&vcc5v0_usb_otg_en>;
                regulator-name = "vcc5v0_usb_otg";
-               regulator-always-on;
-               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
        };
 };
 
        cpu-supply = <&vdd_cpu>;
 };
 
+&display_subsystem {
+       status = "disabled";
+};
+
 &gpu {
        mali-supply = <&vdd_gpu>;
        status = "okay";
 &pmu_io_domains {
        pmuio1-supply = <&vcc3v3_pmu>;
        pmuio2-supply = <&vcc3v3_pmu>;
-       vccio1-supply = <&vccio_acodec>;
-       vccio3-supply = <&vccio_sd>;
+       vccio1-supply = <&vcc_3v3>;
+       vccio2-supply = <&vcc_1v8>;
        vccio4-supply = <&vcc_1v8>;
        vccio5-supply = <&vcc_3v3>;
        vccio6-supply = <&vcc_1v8>;
        status = "okay";
 };
 
-&usb_host0_ehci {
-       status = "okay";
-};
-
-&usb_host0_ohci {
-       status = "okay";
-};
-
 &usb_host0_xhci {
        dr_mode = "host";
        extcon = <&usb2phy0>;
        status = "okay";
 };
 
-&usb_host1_ehci {
-       status = "okay";
-};
-
-&usb_host1_ohci {
-       status = "okay";
-};
-
 &usb_host1_xhci {
        status = "okay";
 };
 };
 
 &usb2phy0_host {
-       phy-supply = <&vcc5v0_usb_host>;
+       phy-supply = <&vcc5v0_sys>;
        status = "okay";
 };
 
index e1fe5e442689a051b724f7d1e45ed2991db76458..ce2a5e1ccefc3f7d54042cefed90af1f652382f3 100644 (file)
@@ -39,7 +39,7 @@
                     &gmac0_rx_bus2
                     &gmac0_rgmii_clk
                     &gmac0_rgmii_bus>;
-       snps,reset-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_LOW>;
+       snps,reset-gpio = <&gpio1 RK_PB0 GPIO_ACTIVE_LOW>;
        snps,reset-active-low;
        /* Reset time is 15ms, 50ms for rtl8211f */
        snps,reset-delays-us = <0 15000 50000>;
@@ -61,7 +61,7 @@
                     &gmac1m1_rx_bus2
                     &gmac1m1_rgmii_clk
                     &gmac1m1_rgmii_bus>;
-       snps,reset-gpio = <&gpio0 RK_PB1 GPIO_ACTIVE_LOW>;
+       snps,reset-gpio = <&gpio1 RK_PB1 GPIO_ACTIVE_LOW>;
        snps,reset-active-low;
        /* Reset time is 15ms, 50ms for rtl8211f */
        snps,reset-delays-us = <0 15000 50000>;
 };
 
 &mdio0 {
-       rgmii_phy0: ethernet-phy@0 {
+       rgmii_phy0: ethernet-phy@1 {
                compatible = "ethernet-phy-ieee802.3-c22";
-               reg = <0>;
+               reg = <0x1>;
                pinctrl-0 = <&eth_phy0_reset_pin>;
                pinctrl-names = "default";
        };
 };
 
 &mdio1 {
-       rgmii_phy1: ethernet-phy@0 {
+       rgmii_phy1: ethernet-phy@1 {
                compatible = "ethernet-phy-ieee802.3-c22";
-               reg = <0>;
+               reg = <0x1>;
                pinctrl-0 = <&eth_phy1_reset_pin>;
                pinctrl-names = "default";
        };
        };
 };
 
+&pmu_io_domains {
+       vccio3-supply = <&vcc_3v3>;
+};
+
 &sdhci {
        bus-width = <8>;
        max-frequency = <200000000>;
index ebdedea15ad1605a05f278d52ad2f6cf8101c14a..59f1403b4fa5663b1f3978a695174dcb2ed867c9 100644 (file)
                                };
                        };
                };
-
-               codec {
-                       mic-in-differential;
-               };
        };
 };
 
diff --git a/src/arm64/rockchip/rk3568-rock-3b.dts b/src/arm64/rockchip/rk3568-rock-3b.dts
new file mode 100644 (file)
index 0000000..3d0c1cc
--- /dev/null
@@ -0,0 +1,781 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3568.dtsi"
+
+/ {
+       model = "Radxa ROCK 3B";
+       compatible = "radxa,rock-3b", "rockchip,rk3568";
+
+       aliases {
+               ethernet0 = &gmac0;
+               ethernet1 = &gmac1;
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc0;
+               mmc2 = &sdmmc2;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       hdmi-con {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi_out_con>;
+                       };
+               };
+       };
+
+       ir-receiver {
+               compatible = "gpio-ir-receiver";
+               gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm3_ir>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led>;
+
+               led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "on";
+                       function = LED_FUNCTION_HEARTBEAT;
+                       gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       /* pi6c pcie clock generator */
+       vcc3v3_pi6c_03: regulator-3v3-vcc-pi6c-03 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie_pwren_h>;
+               regulator-name = "vcc3v3_pi6c_03";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <10000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_sys: regulator-3v3-vcc-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_sys2: regulator-3v3-vcc-sys2 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys2";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_sys: regulator-5v0-vcc-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       vcc5v0_usb_host: regulator-5v0-vcc-usb-host {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_host_pwren_h>;
+               regulator-name = "vcc5v0_usb_host";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_usb_otg: regulator-5v0-vcc-usb-otg {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_otg_pwren_h>;
+               regulator-name = "vcc5v0_usb_otg";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_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>;
+               post-power-on-delay-ms = <100>;
+               power-off-delay-us = <5000000>;
+               reset-gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_LOW>;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,name = "Analog RK809";
+               simple-audio-card,mclk-fs = <256>;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s1_8ch>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&rk809>;
+               };
+       };
+};
+
+&combphy0 {
+       status = "okay";
+};
+
+&combphy1 {
+       status = "okay";
+};
+
+&combphy2 {
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&gmac0 {
+       assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
+       assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>, <&cru CLK_MAC0_2TOP>;
+       clock_in_out = "input";
+       phy-handle = <&rgmii_phy0>;
+       phy-mode = "rgmii-id";
+       phy-supply = <&vcc_3v3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac0_miim
+                    &gmac0_tx_bus2
+                    &gmac0_rx_bus2
+                    &gmac0_rgmii_clk
+                    &gmac0_rgmii_bus
+                    &gmac0_clkinout>;
+       status = "okay";
+};
+
+&gmac1 {
+       assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
+       assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
+       clock_in_out = "input";
+       phy-handle = <&rgmii_phy1>;
+       phy-mode = "rgmii-id";
+       phy-supply = <&vcc_3v3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1m1_miim
+                    &gmac1m1_tx_bus2
+                    &gmac1m1_rx_bus2
+                    &gmac1m1_rgmii_clk
+                    &gmac1m1_rgmii_bus
+                    &gmac1m1_clkinout>;
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
+&hdmi {
+       avdd-0v9-supply = <&vdda0v9_image>;
+       avdd-1v8-supply = <&vcca1v8_image>;
+       status = "okay";
+};
+
+&hdmi_in {
+       hdmi_in_vp0: endpoint {
+               remote-endpoint = <&vp0_out_hdmi>;
+       };
+};
+
+&hdmi_out {
+       hdmi_out_con: endpoint {
+               remote-endpoint = <&hdmi_con_in>;
+       };
+};
+
+&hdmi_sound {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       vdd_cpu: regulator@1c {
+               compatible = "tcs,tcs4525";
+               reg = <0x1c>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <800000>;
+               regulator-max-microvolt = <1150000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       rk809: pmic@20 {
+               compatible = "rockchip,rk809";
+               reg = <0x20>;
+               assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
+               assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
+               #clock-cells = <1>;
+               clocks = <&cru I2S1_MCLKOUT_TX>;
+               clock-names = "mclk";
+               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>, <&i2s1m0_mclk>;
+               #sound-dai-cells = <0>;
+               system-power-controller;
+               wakeup-source;
+
+               vcc1-supply = <&vcc3v3_sys>;
+               vcc2-supply = <&vcc3v3_sys>;
+               vcc3-supply = <&vcc3v3_sys>;
+               vcc4-supply = <&vcc3v3_sys>;
+               vcc5-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc3v3_sys>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc3v3_sys>;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-name = "vdd_logic";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-name = "vdd_gpu";
+                               regulator-always-on;
+                               regulator-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;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vdd_npu: DCDC_REG4 {
+                               regulator-name = "vdd_npu";
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8: DCDC_REG5 {
+                               regulator-name = "vcc_1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_image: LDO_REG1 {
+                               regulator-name = "vdda0v9_image";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda_0v9: LDO_REG2 {
+                               regulator-name = "vdda_0v9";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_pmu: LDO_REG3 {
+                               regulator-name = "vdda0v9_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vccio_acodec: LDO_REG4 {
+                               regulator-name = "vccio_acodec";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-name = "vccio_sd";
+                               regulator-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;
+                               };
+                       };
+
+                       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;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c5 {
+       status = "okay";
+
+       hym8563: rtc@51 {
+               compatible = "haoyu,hym8563";
+               reg = <0x51>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <0>;
+               clock-output-names = "rtcic_32kout";
+               pinctrl-names = "default";
+               pinctrl-0 = <&rtcic_int_l>;
+               wakeup-source;
+       };
+};
+
+&i2s0_8ch {
+       status = "okay";
+};
+
+&i2s1_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s1m0_sclktx
+                    &i2s1m0_lrcktx
+                    &i2s1m0_sdi0
+                    &i2s1m0_sdo0>;
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+};
+
+&mdio0 {
+       rgmii_phy0: ethernet-phy@1 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <1>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <50000>;
+               reset-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@1 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <1>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <50000>;
+               reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pcie2x1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie20m1_pins>;
+       reset-gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_sys2>;
+       status = "okay";
+};
+
+&pcie30phy {
+       status = "okay";
+};
+
+&pcie3x2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie30x2m1_pins>;
+       reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&pinctrl {
+       bluetooth {
+               bt_reg_on_h: bt-reg-on-h {
+                       rockchip,pins = <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_host_h: bt-wake-host-h {
+                       rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               host_wake_bt_h: host-wake-bt-h {
+                       rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       ir-receiver {
+               pwm3_ir: pwm3-ir {
+                       rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               led: led {
+                       rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pcie {
+               pcie_pwren_h: pcie-pwren-h {
+                       rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pcie20 {
+               pcie20m1_pins: pcie20m1-pins {
+                       rockchip,pins =
+                               <2 RK_PD0 4 &pcfg_pull_none>,
+                               <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <2 RK_PD1 4 &pcfg_pull_none>;
+               };
+       };
+
+       pcie30x2 {
+               pcie30x2m1_pins: pcie30x2m1-pins {
+                       rockchip,pins =
+                               <2 RK_PD4 4 &pcfg_pull_none>,
+                               <2 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <2 RK_PD5 4 &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       rtc {
+               rtcic_int_l: rtcic-int-l {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb {
+               usb_host_pwren_h: usb-host-pwren-h {
+                       rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usb_otg_pwren_h: usb-otg-pwren-h {
+                       rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       wifi {
+               wifi_reg_on_h: wifi-reg-on-h {
+                       rockchip,pins = <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               wifi_wake_host_h: wifi-wake-host-h {
+                       rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcc3v3_pmu>;
+       vccio1-supply = <&vccio_acodec>;
+       vccio2-supply = <&vcc_1v8>;
+       vccio3-supply = <&vccio_sd>;
+       vccio4-supply = <&vcc_1v8>;
+       vccio5-supply = <&vcc_3v3>;
+       vccio6-supply = <&vcc_1v8>;
+       vccio7-supply = <&vcc_3v3>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcca_1v8>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       max-frequency = <200000000>;
+       mmc-hs200-1_8v;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc0 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+       vmmc-supply = <&vcc3v3_sd>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&sdmmc2 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_clk &sdmmc2m0_cmd>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_sys2>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "disabled";
+};
+
+&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>;
+       };
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart8 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart8m0_xfer &uart8m0_ctsn &uart8m0_rtsn>;
+       uart-has-rtscts;
+       status = "disabled";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       extcon = <&usb2phy0>;
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       phy-supply = <&vcc5v0_usb_host>;
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       phy-supply = <&vcc5v0_usb_otg>;
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+&usb2phy1_otg {
+       phy-supply = <&vcc5v0_usb_host>;
+       status = "okay";
+};
+
+&vop {
+       assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
+       assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
+       status = "okay";
+};
+
+&vop_mmu {
+       status = "okay";
+};
+
+&vp0 {
+       vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+               reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+               remote-endpoint = <&hdmi_in_vp0>;
+       };
+};
index d8543b5557ee7202af6554cf55eccc9a7eeba25f..c72b3a608edd98d4378417041889a1058485b0f9 100644 (file)
 
                opp-200000000 {
                        opp-hz = /bits/ 64 <200000000>;
-                       opp-microvolt = <825000>;
+                       opp-microvolt = <850000 850000 1000000>;
                };
 
                opp-300000000 {
                        opp-hz = /bits/ 64 <300000000>;
-                       opp-microvolt = <825000>;
+                       opp-microvolt = <850000 850000 1000000>;
                };
 
                opp-400000000 {
                        opp-hz = /bits/ 64 <400000000>;
-                       opp-microvolt = <825000>;
+                       opp-microvolt = <850000 850000 1000000>;
                };
 
                opp-600000000 {
                        opp-hz = /bits/ 64 <600000000>;
-                       opp-microvolt = <825000>;
+                       opp-microvolt = <900000 900000 1000000>;
                };
 
                opp-700000000 {
                        opp-hz = /bits/ 64 <700000000>;
-                       opp-microvolt = <900000>;
+                       opp-microvolt = <950000 950000 1000000>;
                };
 
                opp-800000000 {
                        opp-hz = /bits/ 64 <800000000>;
-                       opp-microvolt = <1000000>;
+                       opp-microvolt = <1000000 1000000 1000000>;
                };
        };
 
                clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
                clock-names = "aclk", "iface";
                #iommu-cells = <0>;
+               power-domains = <&power RK3568_PD_VO>;
                status = "disabled";
        };
 
                         <&cru SRST_TSADCPHY>;
                rockchip,grf = <&grf>;
                rockchip,hw-tshut-temp = <95000>;
-               pinctrl-names = "init", "default", "sleep";
-               pinctrl-0 = <&tsadc_pin>;
-               pinctrl-1 = <&tsadc_shutorg>;
-               pinctrl-2 = <&tsadc_pin>;
+               pinctrl-names = "default", "sleep";
+               pinctrl-0 = <&tsadc_shutorg>;
+               pinctrl-1 = <&tsadc_pin>;
                #thermal-sensor-cells = <1>;
                status = "disabled";
        };
index 98c622b2764720bcc43ce14a81f8f16d58dda57f..c667704ba985e463567e77be64d6e35164f91763 100644 (file)
        };
 };
 
+&tsadc {
+       status = "okay";
+};
+
 &u2phy0 {
        status = "okay";
 };
diff --git a/src/arm64/rockchip/rk3588-base.dtsi b/src/arm64/rockchip/rk3588-base.dtsi
new file mode 100644 (file)
index 0000000..ee99166
--- /dev/null
@@ -0,0 +1,2799 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
+ */
+
+#include <dt-bindings/clock/rockchip,rk3588-cru.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/power/rk3588-power.h>
+#include <dt-bindings/reset/rockchip,rk3588-cru.h>
+#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/ata/ahci.h>
+#include <dt-bindings/thermal/thermal.h>
+
+/ {
+       compatible = "rockchip,rk3588";
+
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       aliases {
+               gpio0 = &gpio0;
+               gpio1 = &gpio1;
+               gpio2 = &gpio2;
+               gpio3 = &gpio3;
+               gpio4 = &gpio4;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
+               i2c6 = &i2c6;
+               i2c7 = &i2c7;
+               i2c8 = &i2c8;
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+               serial3 = &uart3;
+               serial4 = &uart4;
+               serial5 = &uart5;
+               serial6 = &uart6;
+               serial7 = &uart7;
+               serial8 = &uart8;
+               serial9 = &uart9;
+               spi0 = &spi0;
+               spi1 = &spi1;
+               spi2 = &spi2;
+               spi3 = &spi3;
+               spi4 = &spi4;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&cpu_l0>;
+                               };
+                               core1 {
+                                       cpu = <&cpu_l1>;
+                               };
+                               core2 {
+                                       cpu = <&cpu_l2>;
+                               };
+                               core3 {
+                                       cpu = <&cpu_l3>;
+                               };
+                       };
+                       cluster1 {
+                               core0 {
+                                       cpu = <&cpu_b0>;
+                               };
+                               core1 {
+                                       cpu = <&cpu_b1>;
+                               };
+                       };
+                       cluster2 {
+                               core0 {
+                                       cpu = <&cpu_b2>;
+                               };
+                               core1 {
+                                       cpu = <&cpu_b3>;
+                               };
+                       };
+               };
+
+               cpu_l0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x0>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <530>;
+                       clocks = <&scmi_clk SCMI_CLK_CPUL>;
+                       assigned-clocks = <&scmi_clk SCMI_CLK_CPUL>;
+                       assigned-clock-rates = <816000000>;
+                       cpu-idle-states = <&CPU_SLEEP>;
+                       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>;
+                       dynamic-power-coefficient = <228>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu_l1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x100>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <530>;
+                       clocks = <&scmi_clk SCMI_CLK_CPUL>;
+                       cpu-idle-states = <&CPU_SLEEP>;
+                       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>;
+                       dynamic-power-coefficient = <228>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu_l2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x200>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <530>;
+                       clocks = <&scmi_clk SCMI_CLK_CPUL>;
+                       cpu-idle-states = <&CPU_SLEEP>;
+                       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>;
+                       dynamic-power-coefficient = <228>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu_l3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x300>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <530>;
+                       clocks = <&scmi_clk SCMI_CLK_CPUL>;
+                       cpu-idle-states = <&CPU_SLEEP>;
+                       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>;
+                       dynamic-power-coefficient = <228>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu_b0: cpu@400 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x400>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       clocks = <&scmi_clk SCMI_CLK_CPUB01>;
+                       assigned-clocks = <&scmi_clk SCMI_CLK_CPUB01>;
+                       assigned-clock-rates = <816000000>;
+                       cpu-idle-states = <&CPU_SLEEP>;
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache_b0>;
+                       dynamic-power-coefficient = <416>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu_b1: cpu@500 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x500>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       clocks = <&scmi_clk SCMI_CLK_CPUB01>;
+                       cpu-idle-states = <&CPU_SLEEP>;
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache_b1>;
+                       dynamic-power-coefficient = <416>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu_b2: cpu@600 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x600>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       clocks = <&scmi_clk SCMI_CLK_CPUB23>;
+                       assigned-clocks = <&scmi_clk SCMI_CLK_CPUB23>;
+                       assigned-clock-rates = <816000000>;
+                       cpu-idle-states = <&CPU_SLEEP>;
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache_b2>;
+                       dynamic-power-coefficient = <416>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu_b3: cpu@700 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a76";
+                       reg = <0x700>;
+                       enable-method = "psci";
+                       capacity-dmips-mhz = <1024>;
+                       clocks = <&scmi_clk SCMI_CLK_CPUB23>;
+                       cpu-idle-states = <&CPU_SLEEP>;
+                       i-cache-size = <65536>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <65536>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <256>;
+                       next-level-cache = <&l2_cache_b3>;
+                       dynamic-power-coefficient = <416>;
+                       #cooling-cells = <2>;
+               };
+
+               idle-states {
+                       entry-method = "psci";
+                       CPU_SLEEP: cpu-sleep {
+                               compatible = "arm,idle-state";
+                               local-timer-stop;
+                               arm,psci-suspend-param = <0x0010000>;
+                               entry-latency-us = <100>;
+                               exit-latency-us = <120>;
+                               min-residency-us = <1000>;
+                       };
+               };
+
+               l2_cache_l0: l2-cache-l0 {
+                       compatible = "cache";
+                       cache-size = <131072>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-level = <2>;
+                       cache-unified;
+                       next-level-cache = <&l3_cache>;
+               };
+
+               l2_cache_l1: l2-cache-l1 {
+                       compatible = "cache";
+                       cache-size = <131072>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-level = <2>;
+                       cache-unified;
+                       next-level-cache = <&l3_cache>;
+               };
+
+               l2_cache_l2: l2-cache-l2 {
+                       compatible = "cache";
+                       cache-size = <131072>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-level = <2>;
+                       cache-unified;
+                       next-level-cache = <&l3_cache>;
+               };
+
+               l2_cache_l3: l2-cache-l3 {
+                       compatible = "cache";
+                       cache-size = <131072>;
+                       cache-line-size = <64>;
+                       cache-sets = <512>;
+                       cache-level = <2>;
+                       cache-unified;
+                       next-level-cache = <&l3_cache>;
+               };
+
+               l2_cache_b0: l2-cache-b0 {
+                       compatible = "cache";
+                       cache-size = <524288>;
+                       cache-line-size = <64>;
+                       cache-sets = <1024>;
+                       cache-level = <2>;
+                       cache-unified;
+                       next-level-cache = <&l3_cache>;
+               };
+
+               l2_cache_b1: l2-cache-b1 {
+                       compatible = "cache";
+                       cache-size = <524288>;
+                       cache-line-size = <64>;
+                       cache-sets = <1024>;
+                       cache-level = <2>;
+                       cache-unified;
+                       next-level-cache = <&l3_cache>;
+               };
+
+               l2_cache_b2: l2-cache-b2 {
+                       compatible = "cache";
+                       cache-size = <524288>;
+                       cache-line-size = <64>;
+                       cache-sets = <1024>;
+                       cache-level = <2>;
+                       cache-unified;
+                       next-level-cache = <&l3_cache>;
+               };
+
+               l2_cache_b3: l2-cache-b3 {
+                       compatible = "cache";
+                       cache-size = <524288>;
+                       cache-line-size = <64>;
+                       cache-sets = <1024>;
+                       cache-level = <2>;
+                       cache-unified;
+                       next-level-cache = <&l3_cache>;
+               };
+
+               l3_cache: l3-cache {
+                       compatible = "cache";
+                       cache-size = <3145728>;
+                       cache-line-size = <64>;
+                       cache-sets = <4096>;
+                       cache-level = <3>;
+                       cache-unified;
+               };
+       };
+
+       display_subsystem: display-subsystem {
+               compatible = "rockchip,display-subsystem";
+               ports = <&vop_out>;
+       };
+
+       firmware {
+               optee: optee {
+                       compatible = "linaro,optee-tz";
+                       method = "smc";
+               };
+
+               scmi: scmi {
+                       compatible = "arm,scmi-smc";
+                       arm,smc-id = <0x82000010>;
+                       shmem = <&scmi_shmem>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       scmi_clk: protocol@14 {
+                               reg = <0x14>;
+                               #clock-cells = <1>;
+                       };
+
+                       scmi_reset: protocol@16 {
+                               reg = <0x16>;
+                               #reset-cells = <1>;
+                       };
+               };
+       };
+
+       pmu-a55 {
+               compatible = "arm,cortex-a55-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition0>;
+       };
+
+       pmu-a76 {
+               compatible = "arm,cortex-a76-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition1>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       spll: clock-0 {
+               compatible = "fixed-clock";
+               clock-frequency = <702000000>;
+               clock-output-names = "spll";
+               #clock-cells = <0>;
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_PPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys", "hyp-virt";
+       };
+
+       xin24m: clock-1 {
+               compatible = "fixed-clock";
+               clock-frequency = <24000000>;
+               clock-output-names = "xin24m";
+               #clock-cells = <0>;
+       };
+
+       xin32k: clock-2 {
+               compatible = "fixed-clock";
+               clock-frequency = <32768>;
+               clock-output-names = "xin32k";
+               #clock-cells = <0>;
+       };
+
+       pmu_sram: sram@10f000 {
+               compatible = "mmio-sram";
+               reg = <0x0 0x0010f000 0x0 0x100>;
+               ranges = <0 0x0 0x0010f000 0x100>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               scmi_shmem: sram@0 {
+                       compatible = "arm,scmi-shmem";
+                       reg = <0x0 0x100>;
+               };
+       };
+
+       gpu: gpu@fb000000 {
+               compatible = "rockchip,rk3588-mali", "arm,mali-valhall-csf";
+               reg = <0x0 0xfb000000 0x0 0x200000>;
+               #cooling-cells = <2>;
+               assigned-clocks = <&scmi_clk SCMI_CLK_GPU>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&cru CLK_GPU>, <&cru CLK_GPU_COREGROUP>,
+                        <&cru CLK_GPU_STACKS>;
+               clock-names = "core", "coregroup", "stacks";
+               dynamic-power-coefficient = <2982>;
+               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "job", "mmu", "gpu";
+               power-domains = <&power RK3588_PD_GPU>;
+               status = "disabled";
+       };
+
+       usb_host0_xhci: usb@fc000000 {
+               compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
+               reg = <0x0 0xfc000000 0x0 0x400000>;
+               interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru REF_CLK_USB3OTG0>, <&cru SUSPEND_CLK_USB3OTG0>,
+                        <&cru ACLK_USB3OTG0>;
+               clock-names = "ref_clk", "suspend_clk", "bus_clk";
+               dr_mode = "otg";
+               phys = <&u2phy0_otg>, <&usbdp_phy0 PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+               phy_type = "utmi_wide";
+               power-domains = <&power RK3588_PD_USB>;
+               resets = <&cru SRST_A_USB3OTG0>;
+               snps,dis_enblslpm_quirk;
+               snps,dis-u1-entry-quirk;
+               snps,dis-u2-entry-quirk;
+               snps,dis-u2-freeclk-exists-quirk;
+               snps,dis-del-phy-power-chg-quirk;
+               snps,dis-tx-ipgap-linecheck-quirk;
+               status = "disabled";
+       };
+
+       usb_host0_ehci: usb@fc800000 {
+               compatible = "rockchip,rk3588-ehci", "generic-ehci";
+               reg = <0x0 0xfc800000 0x0 0x40000>;
+               interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&cru ACLK_USB>, <&u2phy2>;
+               phys = <&u2phy2_host>;
+               phy-names = "usb";
+               power-domains = <&power RK3588_PD_USB>;
+               status = "disabled";
+       };
+
+       usb_host0_ohci: usb@fc840000 {
+               compatible = "rockchip,rk3588-ohci", "generic-ohci";
+               reg = <0x0 0xfc840000 0x0 0x40000>;
+               interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&cru ACLK_USB>, <&u2phy2>;
+               phys = <&u2phy2_host>;
+               phy-names = "usb";
+               power-domains = <&power RK3588_PD_USB>;
+               status = "disabled";
+       };
+
+       usb_host1_ehci: usb@fc880000 {
+               compatible = "rockchip,rk3588-ehci", "generic-ehci";
+               reg = <0x0 0xfc880000 0x0 0x40000>;
+               interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&cru ACLK_USB>, <&u2phy3>;
+               phys = <&u2phy3_host>;
+               phy-names = "usb";
+               power-domains = <&power RK3588_PD_USB>;
+               status = "disabled";
+       };
+
+       usb_host1_ohci: usb@fc8c0000 {
+               compatible = "rockchip,rk3588-ohci", "generic-ohci";
+               reg = <0x0 0xfc8c0000 0x0 0x40000>;
+               interrupts = <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&cru ACLK_USB>, <&u2phy3>;
+               phys = <&u2phy3_host>;
+               phy-names = "usb";
+               power-domains = <&power RK3588_PD_USB>;
+               status = "disabled";
+       };
+
+       usb_host2_xhci: usb@fcd00000 {
+               compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
+               reg = <0x0 0xfcd00000 0x0 0x400000>;
+               interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru REF_CLK_USB3OTG2>, <&cru SUSPEND_CLK_USB3OTG2>,
+                        <&cru ACLK_USB3OTG2>, <&cru CLK_UTMI_OTG2>,
+                        <&cru CLK_PIPEPHY2_PIPE_U3_G>;
+               clock-names = "ref_clk", "suspend_clk", "bus_clk", "utmi", "pipe";
+               dr_mode = "host";
+               phys = <&combphy2_psu PHY_TYPE_USB3>;
+               phy-names = "usb3-phy";
+               phy_type = "utmi_wide";
+               resets = <&cru SRST_A_USB3OTG2>;
+               snps,dis_enblslpm_quirk;
+               snps,dis-u2-freeclk-exists-quirk;
+               snps,dis-del-phy-power-chg-quirk;
+               snps,dis-tx-ipgap-linecheck-quirk;
+               snps,dis_rxdet_inp3_quirk;
+               status = "disabled";
+       };
+
+       mmu600_pcie: iommu@fc900000 {
+               compatible = "arm,smmu-v3";
+               reg = <0x0 0xfc900000 0x0 0x200000>;
+               interrupts = <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
+               #iommu-cells = <1>;
+               status = "disabled";
+       };
+
+       mmu600_php: iommu@fcb00000 {
+               compatible = "arm,smmu-v3";
+               reg = <0x0 0xfcb00000 0x0 0x200000>;
+               interrupts = <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
+               #iommu-cells = <1>;
+               status = "disabled";
+       };
+
+       pmu1grf: syscon@fd58a000 {
+               compatible = "rockchip,rk3588-pmugrf", "syscon", "simple-mfd";
+               reg = <0x0 0xfd58a000 0x0 0x10000>;
+       };
+
+       sys_grf: syscon@fd58c000 {
+               compatible = "rockchip,rk3588-sys-grf", "syscon";
+               reg = <0x0 0xfd58c000 0x0 0x1000>;
+       };
+
+       vop_grf: syscon@fd5a4000 {
+               compatible = "rockchip,rk3588-vop-grf", "syscon";
+               reg = <0x0 0xfd5a4000 0x0 0x2000>;
+       };
+
+       vo0_grf: syscon@fd5a6000 {
+               compatible = "rockchip,rk3588-vo0-grf", "syscon";
+               reg = <0x0 0xfd5a6000 0x0 0x2000>;
+               clocks = <&cru PCLK_VO0GRF>;
+       };
+
+       vo1_grf: syscon@fd5a8000 {
+               compatible = "rockchip,rk3588-vo1-grf", "syscon";
+               reg = <0x0 0xfd5a8000 0x0 0x4000>;
+               clocks = <&cru PCLK_VO1GRF>;
+       };
+
+       usb_grf: syscon@fd5ac000 {
+               compatible = "rockchip,rk3588-usb-grf", "syscon";
+               reg = <0x0 0xfd5ac000 0x0 0x4000>;
+       };
+
+       php_grf: syscon@fd5b0000 {
+               compatible = "rockchip,rk3588-php-grf", "syscon";
+               reg = <0x0 0xfd5b0000 0x0 0x1000>;
+       };
+
+       pipe_phy0_grf: syscon@fd5bc000 {
+               compatible = "rockchip,rk3588-pipe-phy-grf", "syscon";
+               reg = <0x0 0xfd5bc000 0x0 0x100>;
+       };
+
+       pipe_phy2_grf: syscon@fd5c4000 {
+               compatible = "rockchip,rk3588-pipe-phy-grf", "syscon";
+               reg = <0x0 0xfd5c4000 0x0 0x100>;
+       };
+
+       usbdpphy0_grf: syscon@fd5c8000 {
+               compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
+               reg = <0x0 0xfd5c8000 0x0 0x4000>;
+       };
+
+       usb2phy0_grf: syscon@fd5d0000 {
+               compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
+               reg = <0x0 0xfd5d0000 0x0 0x4000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               u2phy0: usb2phy@0 {
+                       compatible = "rockchip,rk3588-usb2phy";
+                       reg = <0x0 0x10>;
+                       #clock-cells = <0>;
+                       clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
+                       clock-names = "phyclk";
+                       clock-output-names = "usb480m_phy0";
+                       interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH 0>;
+                       resets = <&cru SRST_OTGPHY_U3_0>, <&cru SRST_P_USB2PHY_U3_0_GRF0>;
+                       reset-names = "phy", "apb";
+                       status = "disabled";
+
+                       u2phy0_otg: otg-port {
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+       };
+
+       usb2phy2_grf: syscon@fd5d8000 {
+               compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
+               reg = <0x0 0xfd5d8000 0x0 0x4000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               u2phy2: usb2phy@8000 {
+                       compatible = "rockchip,rk3588-usb2phy";
+                       reg = <0x8000 0x10>;
+                       #clock-cells = <0>;
+                       clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
+                       clock-names = "phyclk";
+                       clock-output-names = "usb480m_phy2";
+                       interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH 0>;
+                       resets = <&cru SRST_OTGPHY_U2_0>, <&cru SRST_P_USB2PHY_U2_0_GRF0>;
+                       reset-names = "phy", "apb";
+                       status = "disabled";
+
+                       u2phy2_host: host-port {
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+       };
+
+       usb2phy3_grf: syscon@fd5dc000 {
+               compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
+               reg = <0x0 0xfd5dc000 0x0 0x4000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               u2phy3: usb2phy@c000 {
+                       compatible = "rockchip,rk3588-usb2phy";
+                       reg = <0xc000 0x10>;
+                       #clock-cells = <0>;
+                       clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
+                       clock-names = "phyclk";
+                       clock-output-names = "usb480m_phy3";
+                       interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH 0>;
+                       resets = <&cru SRST_OTGPHY_U2_1>, <&cru SRST_P_USB2PHY_U2_1_GRF0>;
+                       reset-names = "phy", "apb";
+                       status = "disabled";
+
+                       u2phy3_host: host-port {
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+       };
+
+       hdptxphy0_grf: syscon@fd5e0000 {
+               compatible = "rockchip,rk3588-hdptxphy-grf", "syscon";
+               reg = <0x0 0xfd5e0000 0x0 0x100>;
+       };
+
+       ioc: syscon@fd5f0000 {
+               compatible = "rockchip,rk3588-ioc", "syscon";
+               reg = <0x0 0xfd5f0000 0x0 0x10000>;
+       };
+
+       system_sram1: sram@fd600000 {
+               compatible = "mmio-sram";
+               reg = <0x0 0xfd600000 0x0 0x100000>;
+               ranges = <0x0 0x0 0xfd600000 0x100000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+
+       cru: clock-controller@fd7c0000 {
+               compatible = "rockchip,rk3588-cru";
+               reg = <0x0 0xfd7c0000 0x0 0x5c000>;
+               assigned-clocks =
+                       <&cru PLL_PPLL>, <&cru PLL_AUPLL>,
+                       <&cru PLL_NPLL>, <&cru PLL_GPLL>,
+                       <&cru ACLK_CENTER_ROOT>,
+                       <&cru HCLK_CENTER_ROOT>, <&cru ACLK_CENTER_LOW_ROOT>,
+                       <&cru ACLK_TOP_ROOT>, <&cru PCLK_TOP_ROOT>,
+                       <&cru ACLK_LOW_TOP_ROOT>, <&cru PCLK_PMU0_ROOT>,
+                       <&cru HCLK_PMU_CM0_ROOT>, <&cru ACLK_VOP>,
+                       <&cru ACLK_BUS_ROOT>, <&cru CLK_150M_SRC>,
+                       <&cru CLK_GPU>;
+               assigned-clock-rates =
+                       <1100000000>, <786432000>,
+                       <850000000>, <1188000000>,
+                       <702000000>,
+                       <400000000>, <500000000>,
+                       <800000000>, <100000000>,
+                       <400000000>, <100000000>,
+                       <200000000>, <500000000>,
+                       <375000000>, <150000000>,
+                       <200000000>;
+               rockchip,grf = <&php_grf>;
+               #clock-cells = <1>;
+               #reset-cells = <1>;
+       };
+
+       i2c0: i2c@fd880000 {
+               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfd880000 0x0 0x1000>;
+               interrupts = <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>;
+               clock-names = "i2c", "pclk";
+               pinctrl-0 = <&i2c0m0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       uart0: serial@fd890000 {
+               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfd890000 0x0 0x100>;
+               interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 6>, <&dmac0 7>;
+               dma-names = "tx", "rx";
+               pinctrl-0 = <&uart0m1_xfer>;
+               pinctrl-names = "default";
+               reg-shift = <2>;
+               reg-io-width = <4>;
+               status = "disabled";
+       };
+
+       pwm0: pwm@fd8b0000 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfd8b0000 0x0 0x10>;
+               clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm0m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm1: pwm@fd8b0010 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfd8b0010 0x0 0x10>;
+               clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm1m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm2: pwm@fd8b0020 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfd8b0020 0x0 0x10>;
+               clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm2m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm3: pwm@fd8b0030 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfd8b0030 0x0 0x10>;
+               clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm3m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pmu: power-management@fd8d8000 {
+               compatible = "rockchip,rk3588-pmu", "syscon", "simple-mfd";
+               reg = <0x0 0xfd8d8000 0x0 0x400>;
+
+               power: power-controller {
+                       compatible = "rockchip,rk3588-power-controller";
+                       #address-cells = <1>;
+                       #power-domain-cells = <1>;
+                       #size-cells = <0>;
+                       status = "okay";
+
+                       /* These power domains are grouped by VD_NPU */
+                       power-domain@RK3588_PD_NPU {
+                               reg = <RK3588_PD_NPU>;
+                               #power-domain-cells = <0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               power-domain@RK3588_PD_NPUTOP {
+                                       reg = <RK3588_PD_NPUTOP>;
+                                       clocks = <&cru HCLK_NPU_ROOT>,
+                                                <&cru PCLK_NPU_ROOT>,
+                                                <&cru CLK_NPU_DSU0>,
+                                                <&cru HCLK_NPU_CM0_ROOT>;
+                                       pm_qos = <&qos_npu0_mwr>,
+                                                <&qos_npu0_mro>,
+                                                <&qos_mcu_npu>;
+                                       #power-domain-cells = <0>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       power-domain@RK3588_PD_NPU1 {
+                                               reg = <RK3588_PD_NPU1>;
+                                               clocks = <&cru HCLK_NPU_ROOT>,
+                                                        <&cru PCLK_NPU_ROOT>,
+                                                        <&cru CLK_NPU_DSU0>;
+                                               pm_qos = <&qos_npu1>;
+                                               #power-domain-cells = <0>;
+                                       };
+                                       power-domain@RK3588_PD_NPU2 {
+                                               reg = <RK3588_PD_NPU2>;
+                                               clocks = <&cru HCLK_NPU_ROOT>,
+                                                        <&cru PCLK_NPU_ROOT>,
+                                                        <&cru CLK_NPU_DSU0>;
+                                               pm_qos = <&qos_npu2>;
+                                               #power-domain-cells = <0>;
+                                       };
+                               };
+                       };
+                       /* These power domains are grouped by VD_GPU */
+                       power-domain@RK3588_PD_GPU {
+                               reg = <RK3588_PD_GPU>;
+                               clocks = <&cru CLK_GPU>,
+                                        <&cru CLK_GPU_COREGROUP>,
+                                        <&cru CLK_GPU_STACKS>;
+                               pm_qos = <&qos_gpu_m0>,
+                                        <&qos_gpu_m1>,
+                                        <&qos_gpu_m2>,
+                                        <&qos_gpu_m3>;
+                               #power-domain-cells = <0>;
+                       };
+                       /* These power domains are grouped by VD_VCODEC */
+                       power-domain@RK3588_PD_VCODEC {
+                               reg = <RK3588_PD_VCODEC>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               #power-domain-cells = <0>;
+
+                               power-domain@RK3588_PD_RKVDEC0 {
+                                       reg = <RK3588_PD_RKVDEC0>;
+                                       clocks = <&cru HCLK_RKVDEC0>,
+                                                <&cru HCLK_VDPU_ROOT>,
+                                                <&cru ACLK_VDPU_ROOT>,
+                                                <&cru ACLK_RKVDEC0>,
+                                                <&cru ACLK_RKVDEC_CCU>;
+                                       pm_qos = <&qos_rkvdec0>;
+                                       #power-domain-cells = <0>;
+                               };
+                               power-domain@RK3588_PD_RKVDEC1 {
+                                       reg = <RK3588_PD_RKVDEC1>;
+                                       clocks = <&cru HCLK_RKVDEC1>,
+                                                <&cru HCLK_VDPU_ROOT>,
+                                                <&cru ACLK_VDPU_ROOT>,
+                                                <&cru ACLK_RKVDEC1>;
+                                       pm_qos = <&qos_rkvdec1>;
+                                       #power-domain-cells = <0>;
+                               };
+                               power-domain@RK3588_PD_VENC0 {
+                                       reg = <RK3588_PD_VENC0>;
+                                       clocks = <&cru HCLK_RKVENC0>,
+                                                <&cru ACLK_RKVENC0>;
+                                       pm_qos = <&qos_rkvenc0_m0ro>,
+                                                <&qos_rkvenc0_m1ro>,
+                                                <&qos_rkvenc0_m2wo>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       #power-domain-cells = <0>;
+
+                                       power-domain@RK3588_PD_VENC1 {
+                                               reg = <RK3588_PD_VENC1>;
+                                               clocks = <&cru HCLK_RKVENC1>,
+                                                        <&cru HCLK_RKVENC0>,
+                                                        <&cru ACLK_RKVENC0>,
+                                                        <&cru ACLK_RKVENC1>;
+                                               pm_qos = <&qos_rkvenc1_m0ro>,
+                                                        <&qos_rkvenc1_m1ro>,
+                                                        <&qos_rkvenc1_m2wo>;
+                                               #power-domain-cells = <0>;
+                                       };
+                               };
+                       };
+                       /* These power domains are grouped by VD_LOGIC */
+                       power-domain@RK3588_PD_VDPU {
+                               reg = <RK3588_PD_VDPU>;
+                               clocks = <&cru HCLK_VDPU_ROOT>,
+                                        <&cru ACLK_VDPU_LOW_ROOT>,
+                                        <&cru ACLK_VDPU_ROOT>,
+                                        <&cru ACLK_JPEG_DECODER_ROOT>,
+                                        <&cru ACLK_IEP2P0>,
+                                        <&cru HCLK_IEP2P0>,
+                                        <&cru ACLK_JPEG_ENCODER0>,
+                                        <&cru HCLK_JPEG_ENCODER0>,
+                                        <&cru ACLK_JPEG_ENCODER1>,
+                                        <&cru HCLK_JPEG_ENCODER1>,
+                                        <&cru ACLK_JPEG_ENCODER2>,
+                                        <&cru HCLK_JPEG_ENCODER2>,
+                                        <&cru ACLK_JPEG_ENCODER3>,
+                                        <&cru HCLK_JPEG_ENCODER3>,
+                                        <&cru ACLK_JPEG_DECODER>,
+                                        <&cru HCLK_JPEG_DECODER>,
+                                        <&cru ACLK_RGA2>,
+                                        <&cru HCLK_RGA2>;
+                               pm_qos = <&qos_iep>,
+                                        <&qos_jpeg_dec>,
+                                        <&qos_jpeg_enc0>,
+                                        <&qos_jpeg_enc1>,
+                                        <&qos_jpeg_enc2>,
+                                        <&qos_jpeg_enc3>,
+                                        <&qos_rga2_mro>,
+                                        <&qos_rga2_mwo>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               #power-domain-cells = <0>;
+
+
+                               power-domain@RK3588_PD_AV1 {
+                                       reg = <RK3588_PD_AV1>;
+                                       clocks = <&cru PCLK_AV1>,
+                                                <&cru ACLK_AV1>,
+                                                <&cru HCLK_VDPU_ROOT>;
+                                       pm_qos = <&qos_av1>;
+                                       #power-domain-cells = <0>;
+                               };
+                               power-domain@RK3588_PD_RKVDEC0 {
+                                       reg = <RK3588_PD_RKVDEC0>;
+                                       clocks = <&cru HCLK_RKVDEC0>,
+                                                <&cru HCLK_VDPU_ROOT>,
+                                                <&cru ACLK_VDPU_ROOT>,
+                                                <&cru ACLK_RKVDEC0>;
+                                       pm_qos = <&qos_rkvdec0>;
+                                       #power-domain-cells = <0>;
+                               };
+                               power-domain@RK3588_PD_RKVDEC1 {
+                                       reg = <RK3588_PD_RKVDEC1>;
+                                       clocks = <&cru HCLK_RKVDEC1>,
+                                                <&cru HCLK_VDPU_ROOT>,
+                                                <&cru ACLK_VDPU_ROOT>;
+                                       pm_qos = <&qos_rkvdec1>;
+                                       #power-domain-cells = <0>;
+                               };
+                               power-domain@RK3588_PD_RGA30 {
+                                       reg = <RK3588_PD_RGA30>;
+                                       clocks = <&cru ACLK_RGA3_0>,
+                                                <&cru HCLK_RGA3_0>;
+                                       pm_qos = <&qos_rga3_0>;
+                                       #power-domain-cells = <0>;
+                               };
+                       };
+                       power-domain@RK3588_PD_VOP {
+                               reg = <RK3588_PD_VOP>;
+                               clocks = <&cru PCLK_VOP_ROOT>,
+                                        <&cru HCLK_VOP_ROOT>,
+                                        <&cru ACLK_VOP>;
+                               pm_qos = <&qos_vop_m0>,
+                                        <&qos_vop_m1>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               #power-domain-cells = <0>;
+
+                               power-domain@RK3588_PD_VO0 {
+                                       reg = <RK3588_PD_VO0>;
+                                       clocks = <&cru PCLK_VO0_ROOT>,
+                                                <&cru PCLK_VO0_S_ROOT>,
+                                                <&cru HCLK_VO0_S_ROOT>,
+                                                <&cru ACLK_VO0_ROOT>,
+                                                <&cru HCLK_HDCP0>,
+                                                <&cru ACLK_HDCP0>,
+                                                <&cru HCLK_VOP_ROOT>;
+                                       pm_qos = <&qos_hdcp0>;
+                                       #power-domain-cells = <0>;
+                               };
+                       };
+                       power-domain@RK3588_PD_VO1 {
+                               reg = <RK3588_PD_VO1>;
+                               clocks = <&cru PCLK_VO1_ROOT>,
+                                        <&cru PCLK_VO1_S_ROOT>,
+                                        <&cru HCLK_VO1_S_ROOT>,
+                                        <&cru HCLK_HDCP1>,
+                                        <&cru ACLK_HDCP1>,
+                                        <&cru ACLK_HDMIRX_ROOT>,
+                                        <&cru HCLK_VO1USB_TOP_ROOT>;
+                               pm_qos = <&qos_hdcp1>,
+                                        <&qos_hdmirx>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3588_PD_VI {
+                               reg = <RK3588_PD_VI>;
+                               clocks = <&cru HCLK_VI_ROOT>,
+                                        <&cru PCLK_VI_ROOT>,
+                                        <&cru HCLK_ISP0>,
+                                        <&cru ACLK_ISP0>,
+                                        <&cru HCLK_VICAP>,
+                                        <&cru ACLK_VICAP>;
+                               pm_qos = <&qos_isp0_mro>,
+                                        <&qos_isp0_mwo>,
+                                        <&qos_vicap_m0>,
+                                        <&qos_vicap_m1>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               #power-domain-cells = <0>;
+
+                               power-domain@RK3588_PD_ISP1 {
+                                       reg = <RK3588_PD_ISP1>;
+                                       clocks = <&cru HCLK_ISP1>,
+                                                <&cru ACLK_ISP1>,
+                                                <&cru HCLK_VI_ROOT>,
+                                                <&cru PCLK_VI_ROOT>;
+                                       pm_qos = <&qos_isp1_mwo>,
+                                                <&qos_isp1_mro>;
+                                       #power-domain-cells = <0>;
+                               };
+                               power-domain@RK3588_PD_FEC {
+                                       reg = <RK3588_PD_FEC>;
+                                       clocks = <&cru HCLK_FISHEYE0>,
+                                                <&cru ACLK_FISHEYE0>,
+                                                <&cru HCLK_FISHEYE1>,
+                                                <&cru ACLK_FISHEYE1>,
+                                                <&cru PCLK_VI_ROOT>;
+                                       pm_qos = <&qos_fisheye0>,
+                                                <&qos_fisheye1>;
+                                       #power-domain-cells = <0>;
+                               };
+                       };
+                       power-domain@RK3588_PD_RGA31 {
+                               reg = <RK3588_PD_RGA31>;
+                               clocks = <&cru HCLK_RGA3_1>,
+                                        <&cru ACLK_RGA3_1>;
+                               pm_qos = <&qos_rga3_1>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3588_PD_USB {
+                               reg = <RK3588_PD_USB>;
+                               clocks = <&cru PCLK_PHP_ROOT>,
+                                        <&cru ACLK_USB_ROOT>,
+                                        <&cru ACLK_USB>,
+                                        <&cru HCLK_USB_ROOT>,
+                                        <&cru HCLK_HOST0>,
+                                        <&cru HCLK_HOST_ARB0>,
+                                        <&cru HCLK_HOST1>,
+                                        <&cru HCLK_HOST_ARB1>;
+                               pm_qos = <&qos_usb3_0>,
+                                        <&qos_usb3_1>,
+                                        <&qos_usb2host_0>,
+                                        <&qos_usb2host_1>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3588_PD_GMAC {
+                               reg = <RK3588_PD_GMAC>;
+                               clocks = <&cru PCLK_PHP_ROOT>,
+                                        <&cru ACLK_PCIE_ROOT>,
+                                        <&cru ACLK_PHP_ROOT>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3588_PD_PCIE {
+                               reg = <RK3588_PD_PCIE>;
+                               clocks = <&cru PCLK_PHP_ROOT>,
+                                        <&cru ACLK_PCIE_ROOT>,
+                                        <&cru ACLK_PHP_ROOT>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3588_PD_SDIO {
+                               reg = <RK3588_PD_SDIO>;
+                               clocks = <&cru HCLK_SDIO>,
+                                        <&cru HCLK_NVM_ROOT>;
+                               pm_qos = <&qos_sdio>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3588_PD_AUDIO {
+                               reg = <RK3588_PD_AUDIO>;
+                               clocks = <&cru HCLK_AUDIO_ROOT>,
+                                        <&cru PCLK_AUDIO_ROOT>;
+                               #power-domain-cells = <0>;
+                       };
+                       power-domain@RK3588_PD_SDMMC {
+                               reg = <RK3588_PD_SDMMC>;
+                               pm_qos = <&qos_sdmmc>;
+                               #power-domain-cells = <0>;
+                       };
+               };
+       };
+
+       av1d: video-codec@fdc70000 {
+               compatible = "rockchip,rk3588-av1-vpu";
+               reg = <0x0 0xfdc70000 0x0 0x800>;
+               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "vdpu";
+               assigned-clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
+               assigned-clock-rates = <400000000>, <400000000>;
+               clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
+               clock-names = "aclk", "hclk";
+               power-domains = <&power RK3588_PD_AV1>;
+               resets = <&cru SRST_A_AV1>, <&cru SRST_P_AV1>, <&cru SRST_A_AV1_BIU>, <&cru SRST_P_AV1_BIU>;
+       };
+
+       vop: vop@fdd90000 {
+               compatible = "rockchip,rk3588-vop";
+               reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;
+               reg-names = "vop", "gamma-lut";
+               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_VOP>,
+                        <&cru HCLK_VOP>,
+                        <&cru DCLK_VOP0>,
+                        <&cru DCLK_VOP1>,
+                        <&cru DCLK_VOP2>,
+                        <&cru DCLK_VOP3>,
+                        <&cru PCLK_VOP_ROOT>;
+               clock-names = "aclk",
+                             "hclk",
+                             "dclk_vp0",
+                             "dclk_vp1",
+                             "dclk_vp2",
+                             "dclk_vp3",
+                             "pclk_vop";
+               iommus = <&vop_mmu>;
+               power-domains = <&power RK3588_PD_VOP>;
+               rockchip,grf = <&sys_grf>;
+               rockchip,vop-grf = <&vop_grf>;
+               rockchip,vo1-grf = <&vo1_grf>;
+               rockchip,pmu = <&pmu>;
+               status = "disabled";
+
+               vop_out: ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       vp0: port@0 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0>;
+                       };
+
+                       vp1: port@1 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <1>;
+                       };
+
+                       vp2: port@2 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <2>;
+                       };
+
+                       vp3: port@3 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <3>;
+                       };
+               };
+       };
+
+       vop_mmu: iommu@fdd97e00 {
+               compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
+               reg = <0x0 0xfdd97e00 0x0 0x100>, <0x0 0xfdd97f00 0x0 0x100>;
+               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
+               clock-names = "aclk", "iface";
+               #iommu-cells = <0>;
+               power-domains = <&power RK3588_PD_VOP>;
+               status = "disabled";
+       };
+
+       i2s4_8ch: i2s@fddc0000 {
+               compatible = "rockchip,rk3588-i2s-tdm";
+               reg = <0x0 0xfddc0000 0x0 0x1000>;
+               interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru MCLK_I2S4_8CH_TX>, <&cru MCLK_I2S4_8CH_TX>, <&cru HCLK_I2S4_8CH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               assigned-clocks = <&cru CLK_I2S4_8CH_TX_SRC>;
+               assigned-clock-parents = <&cru PLL_AUPLL>;
+               dmas = <&dmac2 0>;
+               dma-names = "tx";
+               power-domains = <&power RK3588_PD_VO0>;
+               resets = <&cru SRST_M_I2S4_8CH_TX>;
+               reset-names = "tx-m";
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s5_8ch: i2s@fddf0000 {
+               compatible = "rockchip,rk3588-i2s-tdm";
+               reg = <0x0 0xfddf0000 0x0 0x1000>;
+               interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru MCLK_I2S5_8CH_TX>, <&cru MCLK_I2S5_8CH_TX>, <&cru HCLK_I2S5_8CH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               assigned-clocks = <&cru CLK_I2S5_8CH_TX_SRC>;
+               assigned-clock-parents = <&cru PLL_AUPLL>;
+               dmas = <&dmac2 2>;
+               dma-names = "tx";
+               power-domains = <&power RK3588_PD_VO1>;
+               resets = <&cru SRST_M_I2S5_8CH_TX>;
+               reset-names = "tx-m";
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s9_8ch: i2s@fddfc000 {
+               compatible = "rockchip,rk3588-i2s-tdm";
+               reg = <0x0 0xfddfc000 0x0 0x1000>;
+               interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru MCLK_I2S9_8CH_RX>, <&cru MCLK_I2S9_8CH_RX>, <&cru HCLK_I2S9_8CH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               assigned-clocks = <&cru CLK_I2S9_8CH_RX_SRC>;
+               assigned-clock-parents = <&cru PLL_AUPLL>;
+               dmas = <&dmac2 23>;
+               dma-names = "rx";
+               power-domains = <&power RK3588_PD_VO1>;
+               resets = <&cru SRST_M_I2S9_8CH_RX>;
+               reset-names = "rx-m";
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       qos_gpu_m0: qos@fdf35000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf35000 0x0 0x20>;
+       };
+
+       qos_gpu_m1: qos@fdf35200 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf35200 0x0 0x20>;
+       };
+
+       qos_gpu_m2: qos@fdf35400 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf35400 0x0 0x20>;
+       };
+
+       qos_gpu_m3: qos@fdf35600 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf35600 0x0 0x20>;
+       };
+
+       qos_rga3_1: qos@fdf36000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf36000 0x0 0x20>;
+       };
+
+       qos_sdio: qos@fdf39000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf39000 0x0 0x20>;
+       };
+
+       qos_sdmmc: qos@fdf3d800 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf3d800 0x0 0x20>;
+       };
+
+       qos_usb3_1: qos@fdf3e000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf3e000 0x0 0x20>;
+       };
+
+       qos_usb3_0: qos@fdf3e200 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf3e200 0x0 0x20>;
+       };
+
+       qos_usb2host_0: qos@fdf3e400 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf3e400 0x0 0x20>;
+       };
+
+       qos_usb2host_1: qos@fdf3e600 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf3e600 0x0 0x20>;
+       };
+
+       qos_fisheye0: qos@fdf40000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf40000 0x0 0x20>;
+       };
+
+       qos_fisheye1: qos@fdf40200 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf40200 0x0 0x20>;
+       };
+
+       qos_isp0_mro: qos@fdf40400 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf40400 0x0 0x20>;
+       };
+
+       qos_isp0_mwo: qos@fdf40500 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf40500 0x0 0x20>;
+       };
+
+       qos_vicap_m0: qos@fdf40600 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf40600 0x0 0x20>;
+       };
+
+       qos_vicap_m1: qos@fdf40800 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf40800 0x0 0x20>;
+       };
+
+       qos_isp1_mwo: qos@fdf41000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf41000 0x0 0x20>;
+       };
+
+       qos_isp1_mro: qos@fdf41100 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf41100 0x0 0x20>;
+       };
+
+       qos_rkvenc0_m0ro: qos@fdf60000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf60000 0x0 0x20>;
+       };
+
+       qos_rkvenc0_m1ro: qos@fdf60200 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf60200 0x0 0x20>;
+       };
+
+       qos_rkvenc0_m2wo: qos@fdf60400 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf60400 0x0 0x20>;
+       };
+
+       qos_rkvenc1_m0ro: qos@fdf61000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf61000 0x0 0x20>;
+       };
+
+       qos_rkvenc1_m1ro: qos@fdf61200 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf61200 0x0 0x20>;
+       };
+
+       qos_rkvenc1_m2wo: qos@fdf61400 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf61400 0x0 0x20>;
+       };
+
+       qos_rkvdec0: qos@fdf62000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf62000 0x0 0x20>;
+       };
+
+       qos_rkvdec1: qos@fdf63000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf63000 0x0 0x20>;
+       };
+
+       qos_av1: qos@fdf64000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf64000 0x0 0x20>;
+       };
+
+       qos_iep: qos@fdf66000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf66000 0x0 0x20>;
+       };
+
+       qos_jpeg_dec: qos@fdf66200 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf66200 0x0 0x20>;
+       };
+
+       qos_jpeg_enc0: qos@fdf66400 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf66400 0x0 0x20>;
+       };
+
+       qos_jpeg_enc1: qos@fdf66600 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf66600 0x0 0x20>;
+       };
+
+       qos_jpeg_enc2: qos@fdf66800 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf66800 0x0 0x20>;
+       };
+
+       qos_jpeg_enc3: qos@fdf66a00 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf66a00 0x0 0x20>;
+       };
+
+       qos_rga2_mro: qos@fdf66c00 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf66c00 0x0 0x20>;
+       };
+
+       qos_rga2_mwo: qos@fdf66e00 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf66e00 0x0 0x20>;
+       };
+
+       qos_rga3_0: qos@fdf67000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf67000 0x0 0x20>;
+       };
+
+       qos_vdpu: qos@fdf67200 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf67200 0x0 0x20>;
+       };
+
+       qos_npu1: qos@fdf70000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf70000 0x0 0x20>;
+       };
+
+       qos_npu2: qos@fdf71000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf71000 0x0 0x20>;
+       };
+
+       qos_npu0_mwr: qos@fdf72000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf72000 0x0 0x20>;
+       };
+
+       qos_npu0_mro: qos@fdf72200 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf72200 0x0 0x20>;
+       };
+
+       qos_mcu_npu: qos@fdf72400 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf72400 0x0 0x20>;
+       };
+
+       qos_hdcp0: qos@fdf80000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf80000 0x0 0x20>;
+       };
+
+       qos_hdcp1: qos@fdf81000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf81000 0x0 0x20>;
+       };
+
+       qos_hdmirx: qos@fdf81200 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf81200 0x0 0x20>;
+       };
+
+       qos_vop_m0: qos@fdf82000 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf82000 0x0 0x20>;
+       };
+
+       qos_vop_m1: qos@fdf82200 {
+               compatible = "rockchip,rk3588-qos", "syscon";
+               reg = <0x0 0xfdf82200 0x0 0x20>;
+       };
+
+       dfi: dfi@fe060000 {
+               reg = <0x00 0xfe060000 0x00 0x10000>;
+               compatible = "rockchip,rk3588-dfi";
+               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
+               rockchip,pmu = <&pmu1grf>;
+       };
+
+       pcie2x1l1: pcie@fe180000 {
+               compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
+               bus-range = <0x30 0x3f>;
+               clocks = <&cru ACLK_PCIE_1L1_MSTR>, <&cru ACLK_PCIE_1L1_SLV>,
+                        <&cru ACLK_PCIE_1L1_DBI>, <&cru PCLK_PCIE_1L1>,
+                        <&cru CLK_PCIE_AUX3>, <&cru CLK_PCIE1L1_PIPE>;
+               clock-names = "aclk_mst", "aclk_slv",
+                             "aclk_dbi", "pclk",
+                             "aux", "pipe";
+               device_type = "pci";
+               interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "sys", "pmc", "msg", "legacy", "err";
+               #interrupt-cells = <1>;
+               interrupt-map-mask = <0 0 0 7>;
+               interrupt-map = <0 0 0 1 &pcie2x1l1_intc 0>,
+                               <0 0 0 2 &pcie2x1l1_intc 1>,
+                               <0 0 0 3 &pcie2x1l1_intc 2>,
+                               <0 0 0 4 &pcie2x1l1_intc 3>;
+               linux,pci-domain = <3>;
+               max-link-speed = <2>;
+               msi-map = <0x3000 &its0 0x3000 0x1000>;
+               num-lanes = <1>;
+               phys = <&combphy2_psu PHY_TYPE_PCIE>;
+               phy-names = "pcie-phy";
+               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>;
+               reg = <0xa 0x40c00000 0x0 0x00400000>,
+                     <0x0 0xfe180000 0x0 0x00010000>,
+                     <0x0 0xf3000000 0x0 0x00100000>;
+               reg-names = "dbi", "apb", "config";
+               resets = <&cru SRST_PCIE3_POWER_UP>, <&cru SRST_P_PCIE3>;
+               reset-names = "pwr", "pipe";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               status = "disabled";
+
+               pcie2x1l1_intc: legacy-interrupt-controller {
+                       interrupt-controller;
+                       #address-cells = <0>;
+                       #interrupt-cells = <1>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <GIC_SPI 245 IRQ_TYPE_EDGE_RISING 0>;
+               };
+       };
+
+       pcie2x1l2: pcie@fe190000 {
+               compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
+               bus-range = <0x40 0x4f>;
+               clocks = <&cru ACLK_PCIE_1L2_MSTR>, <&cru ACLK_PCIE_1L2_SLV>,
+                        <&cru ACLK_PCIE_1L2_DBI>, <&cru PCLK_PCIE_1L2>,
+                        <&cru CLK_PCIE_AUX4>, <&cru CLK_PCIE1L2_PIPE>;
+               clock-names = "aclk_mst", "aclk_slv",
+                             "aclk_dbi", "pclk",
+                             "aux", "pipe";
+               device_type = "pci";
+               interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "sys", "pmc", "msg", "legacy", "err";
+               #interrupt-cells = <1>;
+               interrupt-map-mask = <0 0 0 7>;
+               interrupt-map = <0 0 0 1 &pcie2x1l2_intc 0>,
+                               <0 0 0 2 &pcie2x1l2_intc 1>,
+                               <0 0 0 3 &pcie2x1l2_intc 2>,
+                               <0 0 0 4 &pcie2x1l2_intc 3>;
+               linux,pci-domain = <4>;
+               max-link-speed = <2>;
+               msi-map = <0x4000 &its0 0x4000 0x1000>;
+               num-lanes = <1>;
+               phys = <&combphy0_ps PHY_TYPE_PCIE>;
+               phy-names = "pcie-phy";
+               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>;
+               reg = <0xa 0x41000000 0x0 0x00400000>,
+                     <0x0 0xfe190000 0x0 0x00010000>,
+                     <0x0 0xf4000000 0x0 0x00100000>;
+               reg-names = "dbi", "apb", "config";
+               resets = <&cru SRST_PCIE4_POWER_UP>, <&cru SRST_P_PCIE4>;
+               reset-names = "pwr", "pipe";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               status = "disabled";
+
+               pcie2x1l2_intc: legacy-interrupt-controller {
+                       interrupt-controller;
+                       #address-cells = <0>;
+                       #interrupt-cells = <1>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <GIC_SPI 250 IRQ_TYPE_EDGE_RISING 0>;
+               };
+       };
+
+       gmac1: ethernet@fe1c0000 {
+               compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
+               reg = <0x0 0xfe1c0000 0x0 0x10000>;
+               interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "macirq", "eth_wake_irq";
+               clocks = <&cru CLK_GMAC_125M>, <&cru CLK_GMAC_50M>,
+                        <&cru PCLK_GMAC1>, <&cru ACLK_GMAC1>,
+                        <&cru CLK_GMAC1_PTP_REF>;
+               clock-names = "stmmaceth", "clk_mac_ref",
+                             "pclk_mac", "aclk_mac",
+                             "ptp_ref";
+               power-domains = <&power RK3588_PD_GMAC>;
+               resets = <&cru SRST_A_GMAC1>;
+               reset-names = "stmmaceth";
+               rockchip,grf = <&sys_grf>;
+               rockchip,php-grf = <&php_grf>;
+               snps,axi-config = <&gmac1_stmmac_axi_setup>;
+               snps,mixed-burst;
+               snps,mtl-rx-config = <&gmac1_mtl_rx_setup>;
+               snps,mtl-tx-config = <&gmac1_mtl_tx_setup>;
+               snps,tso;
+               status = "disabled";
+
+               mdio1: mdio {
+                       compatible = "snps,dwmac-mdio";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+               };
+
+               gmac1_stmmac_axi_setup: stmmac-axi-config {
+                       snps,blen = <0 0 0 0 16 8 4>;
+                       snps,wr_osr_lmt = <4>;
+                       snps,rd_osr_lmt = <8>;
+               };
+
+               gmac1_mtl_rx_setup: rx-queues-config {
+                       snps,rx-queues-to-use = <2>;
+                       queue0 {};
+                       queue1 {};
+               };
+
+               gmac1_mtl_tx_setup: tx-queues-config {
+                       snps,tx-queues-to-use = <2>;
+                       queue0 {};
+                       queue1 {};
+               };
+       };
+
+       sata0: sata@fe210000 {
+               compatible = "rockchip,rk3588-dwc-ahci", "snps,dwc-ahci";
+               reg = <0 0xfe210000 0 0x1000>;
+               interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_SATA0>, <&cru CLK_PMALIVE0>,
+                        <&cru CLK_RXOOB0>, <&cru CLK_PIPEPHY0_REF>,
+                        <&cru CLK_PIPEPHY0_PIPE_ASIC_G>;
+               clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
+               ports-implemented = <0x1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+
+               sata-port@0 {
+                       reg = <0>;
+                       hba-port-cap = <HBA_PORT_FBSCP>;
+                       phys = <&combphy0_ps PHY_TYPE_SATA>;
+                       phy-names = "sata-phy";
+                       snps,rx-ts-max = <32>;
+                       snps,tx-ts-max = <32>;
+               };
+       };
+
+       sata2: sata@fe230000 {
+               compatible = "rockchip,rk3588-dwc-ahci", "snps,dwc-ahci";
+               reg = <0 0xfe230000 0 0x1000>;
+               interrupts = <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_SATA2>, <&cru CLK_PMALIVE2>,
+                        <&cru CLK_RXOOB2>, <&cru CLK_PIPEPHY2_REF>,
+                        <&cru CLK_PIPEPHY2_PIPE_ASIC_G>;
+               clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
+               ports-implemented = <0x1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+
+               sata-port@0 {
+                       reg = <0>;
+                       hba-port-cap = <HBA_PORT_FBSCP>;
+                       phys = <&combphy2_psu PHY_TYPE_SATA>;
+                       phy-names = "sata-phy";
+                       snps,rx-ts-max = <32>;
+                       snps,tx-ts-max = <32>;
+               };
+       };
+
+       sfc: spi@fe2b0000 {
+               compatible = "rockchip,sfc";
+               reg = <0x0 0xfe2b0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
+               clock-names = "clk_sfc", "hclk_sfc";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       sdmmc: mmc@fe2c0000 {
+               compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc";
+               reg = <0x0 0xfe2c0000 0x0 0x4000>;
+               interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&scmi_clk SCMI_HCLK_SD>, <&scmi_clk SCMI_CCLK_SD>,
+                        <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
+               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               fifo-depth = <0x100>;
+               max-frequency = <200000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_det &sdmmc_bus4>;
+               power-domains = <&power RK3588_PD_SDMMC>;
+               status = "disabled";
+       };
+
+       sdio: mmc@fe2d0000 {
+               compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc";
+               reg = <0x00 0xfe2d0000 0x00 0x4000>;
+               interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru HCLK_SDIO>, <&cru CCLK_SRC_SDIO>,
+                        <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
+               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
+               fifo-depth = <0x100>;
+               max-frequency = <200000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdiom1_pins>;
+               power-domains = <&power RK3588_PD_SDIO>;
+               status = "disabled";
+       };
+
+       sdhci: mmc@fe2e0000 {
+               compatible = "rockchip,rk3588-dwcmshc";
+               reg = <0x0 0xfe2e0000 0x0 0x10000>;
+               interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH 0>;
+               assigned-clocks = <&cru BCLK_EMMC>, <&cru TMCLK_EMMC>, <&cru CCLK_EMMC>;
+               assigned-clock-rates = <200000000>, <24000000>, <200000000>;
+               clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>,
+                        <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
+                        <&cru TMCLK_EMMC>;
+               clock-names = "core", "bus", "axi", "block", "timer";
+               max-frequency = <200000000>;
+               pinctrl-0 = <&emmc_rstnout>, <&emmc_bus8>, <&emmc_clk>,
+                           <&emmc_cmd>, <&emmc_data_strobe>;
+               pinctrl-names = "default";
+               resets = <&cru SRST_C_EMMC>, <&cru SRST_H_EMMC>,
+                        <&cru SRST_A_EMMC>, <&cru SRST_B_EMMC>,
+                        <&cru SRST_T_EMMC>;
+               reset-names = "core", "bus", "axi", "block", "timer";
+               status = "disabled";
+       };
+
+       i2s0_8ch: i2s@fe470000 {
+               compatible = "rockchip,rk3588-i2s-tdm";
+               reg = <0x0 0xfe470000 0x0 0x1000>;
+               interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru MCLK_I2S0_8CH_TX>, <&cru MCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0_8CH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               assigned-clocks = <&cru CLK_I2S0_8CH_TX_SRC>, <&cru CLK_I2S0_8CH_RX_SRC>;
+               assigned-clock-parents = <&cru PLL_AUPLL>, <&cru PLL_AUPLL>;
+               dmas = <&dmac0 0>, <&dmac0 1>;
+               dma-names = "tx", "rx";
+               power-domains = <&power RK3588_PD_AUDIO>;
+               resets = <&cru SRST_M_I2S0_8CH_TX>, <&cru SRST_M_I2S0_8CH_RX>;
+               reset-names = "tx-m", "rx-m";
+               rockchip,trcm-sync-tx-only;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s0_lrck
+                            &i2s0_sclk
+                            &i2s0_sdi0
+                            &i2s0_sdi1
+                            &i2s0_sdi2
+                            &i2s0_sdi3
+                            &i2s0_sdo0
+                            &i2s0_sdo1
+                            &i2s0_sdo2
+                            &i2s0_sdo3>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s1_8ch: i2s@fe480000 {
+               compatible = "rockchip,rk3588-i2s-tdm";
+               reg = <0x0 0xfe480000 0x0 0x1000>;
+               interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>, <&cru HCLK_I2S1_8CH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               dmas = <&dmac0 2>, <&dmac0 3>;
+               dma-names = "tx", "rx";
+               resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>;
+               reset-names = "tx-m", "rx-m";
+               rockchip,trcm-sync-tx-only;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s1m0_lrck
+                            &i2s1m0_sclk
+                            &i2s1m0_sdi0
+                            &i2s1m0_sdi1
+                            &i2s1m0_sdi2
+                            &i2s1m0_sdi3
+                            &i2s1m0_sdo0
+                            &i2s1m0_sdo1
+                            &i2s1m0_sdo2
+                            &i2s1m0_sdo3>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s2_2ch: i2s@fe490000 {
+               compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s";
+               reg = <0x0 0xfe490000 0x0 0x1000>;
+               interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru MCLK_I2S2_2CH>, <&cru HCLK_I2S2_2CH>;
+               clock-names = "i2s_clk", "i2s_hclk";
+               assigned-clocks = <&cru CLK_I2S2_2CH_SRC>;
+               assigned-clock-parents = <&cru PLL_AUPLL>;
+               dmas = <&dmac1 0>, <&dmac1 1>;
+               dma-names = "tx", "rx";
+               power-domains = <&power RK3588_PD_AUDIO>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s2m1_lrck
+                            &i2s2m1_sclk
+                            &i2s2m1_sdi
+                            &i2s2m1_sdo>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s3_2ch: i2s@fe4a0000 {
+               compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s";
+               reg = <0x0 0xfe4a0000 0x0 0x1000>;
+               interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru MCLK_I2S3_2CH>, <&cru HCLK_I2S3_2CH>;
+               clock-names = "i2s_clk", "i2s_hclk";
+               assigned-clocks = <&cru CLK_I2S3_2CH_SRC>;
+               assigned-clock-parents = <&cru PLL_AUPLL>;
+               dmas = <&dmac1 2>, <&dmac1 3>;
+               dma-names = "tx", "rx";
+               power-domains = <&power RK3588_PD_AUDIO>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2s3_lrck
+                            &i2s3_sclk
+                            &i2s3_sdi
+                            &i2s3_sdo>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       gic: interrupt-controller@fe600000 {
+               compatible = "arm,gic-v3";
+               reg = <0x0 0xfe600000 0 0x10000>, /* GICD */
+                     <0x0 0xfe680000 0 0x100000>; /* GICR */
+               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-controller;
+               mbi-alias = <0x0 0xfe610000>;
+               mbi-ranges = <424 56>;
+               msi-controller;
+               ranges;
+               #address-cells = <2>;
+               #interrupt-cells = <4>;
+               #size-cells = <2>;
+
+               its0: msi-controller@fe640000 {
+                       compatible = "arm,gic-v3-its";
+                       reg = <0x0 0xfe640000 0x0 0x20000>;
+                       msi-controller;
+                       #msi-cells = <1>;
+               };
+
+               its1: msi-controller@fe660000 {
+                       compatible = "arm,gic-v3-its";
+                       reg = <0x0 0xfe660000 0x0 0x20000>;
+                       msi-controller;
+                       #msi-cells = <1>;
+               };
+
+               ppi-partitions {
+                       ppi_partition0: interrupt-partition-0 {
+                               affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
+                       };
+
+                       ppi_partition1: interrupt-partition-1 {
+                               affinity = <&cpu_b0 &cpu_b1 &cpu_b2 &cpu_b3>;
+                       };
+               };
+       };
+
+       dmac0: dma-controller@fea10000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xfea10000 0x0 0x4000>;
+               interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH 0>;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_DMAC0>;
+               clock-names = "apb_pclk";
+               #dma-cells = <1>;
+       };
+
+       dmac1: dma-controller@fea30000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xfea30000 0x0 0x4000>;
+               interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH 0>;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_DMAC1>;
+               clock-names = "apb_pclk";
+               #dma-cells = <1>;
+       };
+
+       i2c1: i2c@fea90000 {
+               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfea90000 0x0 0x1000>;
+               clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-0 = <&i2c1m0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c2: i2c@feaa0000 {
+               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfeaa0000 0x0 0x1000>;
+               clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-0 = <&i2c2m0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c3: i2c@feab0000 {
+               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfeab0000 0x0 0x1000>;
+               clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-0 = <&i2c3m0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c4: i2c@feac0000 {
+               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfeac0000 0x0 0x1000>;
+               clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-0 = <&i2c4m0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c5: i2c@fead0000 {
+               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfead0000 0x0 0x1000>;
+               clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-0 = <&i2c5m0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       timer0: timer@feae0000 {
+               compatible = "rockchip,rk3588-timer", "rockchip,rk3288-timer";
+               reg = <0x0 0xfeae0000 0x0 0x20>;
+               interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru PCLK_BUSTIMER0>, <&cru CLK_BUSTIMER0>;
+               clock-names = "pclk", "timer";
+       };
+
+       wdt: watchdog@feaf0000 {
+               compatible = "rockchip,rk3588-wdt", "snps,dw-wdt";
+               reg = <0x0 0xfeaf0000 0x0 0x100>;
+               clocks = <&cru TCLK_WDT0>, <&cru PCLK_WDT0>;
+               clock-names = "tclk", "pclk";
+               interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       spi0: spi@feb00000 {
+               compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xfeb00000 0x0 0x1000>;
+               interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac0 14>, <&dmac0 15>;
+               dma-names = "tx", "rx";
+               num-cs = <2>;
+               pinctrl-0 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi1: spi@feb10000 {
+               compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xfeb10000 0x0 0x1000>;
+               interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac0 16>, <&dmac0 17>;
+               dma-names = "tx", "rx";
+               num-cs = <2>;
+               pinctrl-0 = <&spi1m1_cs0 &spi1m1_cs1 &spi1m1_pins>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi2: spi@feb20000 {
+               compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xfeb20000 0x0 0x1000>;
+               interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru CLK_SPI2>, <&cru PCLK_SPI2>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac1 15>, <&dmac1 16>;
+               dma-names = "tx", "rx";
+               num-cs = <2>;
+               pinctrl-0 = <&spi2m2_cs0 &spi2m2_cs1 &spi2m2_pins>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi3: spi@feb30000 {
+               compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xfeb30000 0x0 0x1000>;
+               interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru CLK_SPI3>, <&cru PCLK_SPI3>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac1 17>, <&dmac1 18>;
+               dma-names = "tx", "rx";
+               num-cs = <2>;
+               pinctrl-0 = <&spi3m1_cs0 &spi3m1_cs1 &spi3m1_pins>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       uart1: serial@feb40000 {
+               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfeb40000 0x0 0x100>;
+               interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 8>, <&dmac0 9>;
+               dma-names = "tx", "rx";
+               pinctrl-0 = <&uart1m1_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart2: serial@feb50000 {
+               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfeb50000 0x0 0x100>;
+               interrupts = <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 10>, <&dmac0 11>;
+               dma-names = "tx", "rx";
+               pinctrl-0 = <&uart2m1_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart3: serial@feb60000 {
+               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfeb60000 0x0 0x100>;
+               interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac0 12>, <&dmac0 13>;
+               dma-names = "tx", "rx";
+               pinctrl-0 = <&uart3m1_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart4: serial@feb70000 {
+               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfeb70000 0x0 0x100>;
+               interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac1 9>, <&dmac1 10>;
+               dma-names = "tx", "rx";
+               pinctrl-0 = <&uart4m1_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart5: serial@feb80000 {
+               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfeb80000 0x0 0x100>;
+               interrupts = <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac1 11>, <&dmac1 12>;
+               dma-names = "tx", "rx";
+               pinctrl-0 = <&uart5m1_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart6: serial@feb90000 {
+               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfeb90000 0x0 0x100>;
+               interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac1 13>, <&dmac1 14>;
+               dma-names = "tx", "rx";
+               pinctrl-0 = <&uart6m1_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart7: serial@feba0000 {
+               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfeba0000 0x0 0x100>;
+               interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac2 7>, <&dmac2 8>;
+               dma-names = "tx", "rx";
+               pinctrl-0 = <&uart7m1_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart8: serial@febb0000 {
+               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfebb0000 0x0 0x100>;
+               interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac2 9>, <&dmac2 10>;
+               dma-names = "tx", "rx";
+               pinctrl-0 = <&uart8m1_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       uart9: serial@febc0000 {
+               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
+               reg = <0x0 0xfebc0000 0x0 0x100>;
+               interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
+               clock-names = "baudclk", "apb_pclk";
+               dmas = <&dmac2 11>, <&dmac2 12>;
+               dma-names = "tx", "rx";
+               pinctrl-0 = <&uart9m1_xfer>;
+               pinctrl-names = "default";
+               reg-io-width = <4>;
+               reg-shift = <2>;
+               status = "disabled";
+       };
+
+       pwm4: pwm@febd0000 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfebd0000 0x0 0x10>;
+               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm4m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm5: pwm@febd0010 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfebd0010 0x0 0x10>;
+               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm5m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm6: pwm@febd0020 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfebd0020 0x0 0x10>;
+               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm6m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm7: pwm@febd0030 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfebd0030 0x0 0x10>;
+               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm7m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm8: pwm@febe0000 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfebe0000 0x0 0x10>;
+               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm8m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm9: pwm@febe0010 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfebe0010 0x0 0x10>;
+               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm9m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm10: pwm@febe0020 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfebe0020 0x0 0x10>;
+               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm10m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm11: pwm@febe0030 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfebe0030 0x0 0x10>;
+               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm11m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm12: pwm@febf0000 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfebf0000 0x0 0x10>;
+               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm12m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm13: pwm@febf0010 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfebf0010 0x0 0x10>;
+               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm13m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm14: pwm@febf0020 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfebf0020 0x0 0x10>;
+               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm14m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm15: pwm@febf0030 {
+               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
+               reg = <0x0 0xfebf0030 0x0 0x10>;
+               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
+               clock-names = "pwm", "pclk";
+               pinctrl-0 = <&pwm15m0_pins>;
+               pinctrl-names = "default";
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       thermal_zones: thermal-zones {
+               /* sensor near the center of the SoC */
+               package_thermal: package-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsadc 0>;
+
+                       trips {
+                               package_crit: package-crit {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               /* sensor between A76 cores 0 and 1 */
+               bigcore0_thermal: bigcore0-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsadc 1>;
+
+                       trips {
+                               bigcore0_alert: bigcore0-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               bigcore0_crit: bigcore0-crit {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&bigcore0_alert>;
+                                       cooling-device =
+                                               <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               /* sensor between A76 cores 2 and 3 */
+               bigcore2_thermal: bigcore2-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsadc 2>;
+
+                       trips {
+                               bigcore2_alert: bigcore2-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               bigcore2_crit: bigcore2-crit {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&bigcore2_alert>;
+                                       cooling-device =
+                                               <&cpu_b2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&cpu_b3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               /* sensor between the four A55 cores */
+               little_core_thermal: littlecore-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsadc 3>;
+
+                       trips {
+                               littlecore_alert: littlecore-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               littlecore_crit: littlecore-crit {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&littlecore_alert>;
+                                       cooling-device =
+                                               <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&cpu_l1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&cpu_l2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                               <&cpu_l3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               /* sensor near the PD_CENTER power domain */
+               center_thermal: center-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsadc 4>;
+
+                       trips {
+                               center_crit: center-crit {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               gpu_thermal: gpu-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsadc 5>;
+
+                       trips {
+                               gpu_alert: gpu-alert {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               gpu_crit: gpu-crit {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu_alert>;
+                                       cooling-device =
+                                               <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               npu_thermal: npu-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsadc 6>;
+
+                       trips {
+                               npu_crit: npu-crit {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
+       tsadc: tsadc@fec00000 {
+               compatible = "rockchip,rk3588-tsadc";
+               reg = <0x0 0xfec00000 0x0 0x400>;
+               interrupts = <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>;
+               clock-names = "tsadc", "apb_pclk";
+               assigned-clocks = <&cru CLK_TSADC>;
+               assigned-clock-rates = <2000000>;
+               resets = <&cru SRST_P_TSADC>, <&cru SRST_TSADC>;
+               reset-names = "tsadc-apb", "tsadc";
+               rockchip,hw-tshut-temp = <120000>;
+               rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
+               rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
+               pinctrl-0 = <&tsadc_gpio_func>;
+               pinctrl-1 = <&tsadc_shut>;
+               pinctrl-names = "gpio", "otpout";
+               #thermal-sensor-cells = <1>;
+               status = "disabled";
+       };
+
+       saradc: adc@fec10000 {
+               compatible = "rockchip,rk3588-saradc";
+               reg = <0x0 0xfec10000 0x0 0x10000>;
+               interrupts = <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH 0>;
+               #io-channel-cells = <1>;
+               clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
+               clock-names = "saradc", "apb_pclk";
+               resets = <&cru SRST_P_SARADC>;
+               reset-names = "saradc-apb";
+               status = "disabled";
+       };
+
+       i2c6: i2c@fec80000 {
+               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfec80000 0x0 0x1000>;
+               clocks = <&cru CLK_I2C6>, <&cru PCLK_I2C6>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-0 = <&i2c6m0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c7: i2c@fec90000 {
+               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfec90000 0x0 0x1000>;
+               clocks = <&cru CLK_I2C7>, <&cru PCLK_I2C7>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-0 = <&i2c7m0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       i2c8: i2c@feca0000 {
+               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
+               reg = <0x0 0xfeca0000 0x0 0x1000>;
+               clocks = <&cru CLK_I2C8>, <&cru PCLK_I2C8>;
+               clock-names = "i2c", "pclk";
+               interrupts = <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH 0>;
+               pinctrl-0 = <&i2c8m0_xfer>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       spi4: spi@fecb0000 {
+               compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
+               reg = <0x0 0xfecb0000 0x0 0x1000>;
+               interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru CLK_SPI4>, <&cru PCLK_SPI4>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&dmac2 13>, <&dmac2 14>;
+               dma-names = "tx", "rx";
+               num-cs = <2>;
+               pinctrl-0 = <&spi4m0_cs0 &spi4m0_cs1 &spi4m0_pins>;
+               pinctrl-names = "default";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       otp: efuse@fecc0000 {
+               compatible = "rockchip,rk3588-otp";
+               reg = <0x0 0xfecc0000 0x0 0x400>;
+               clocks = <&cru CLK_OTPC_NS>, <&cru PCLK_OTPC_NS>,
+                        <&cru CLK_OTP_PHY_G>, <&cru CLK_OTPC_ARB>;
+               clock-names = "otp", "apb_pclk", "phy", "arb";
+               resets = <&cru SRST_OTPC_NS>, <&cru SRST_P_OTPC_NS>,
+                        <&cru SRST_OTPC_ARB>;
+               reset-names = "otp", "apb", "arb";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               cpu_code: cpu-code@2 {
+                       reg = <0x02 0x2>;
+               };
+
+               otp_id: id@7 {
+                       reg = <0x07 0x10>;
+               };
+
+               cpub0_leakage: cpu-leakage@17 {
+                       reg = <0x17 0x1>;
+               };
+
+               cpub1_leakage: cpu-leakage@18 {
+                       reg = <0x18 0x1>;
+               };
+
+               cpul_leakage: cpu-leakage@19 {
+                       reg = <0x19 0x1>;
+               };
+
+               log_leakage: log-leakage@1a {
+                       reg = <0x1a 0x1>;
+               };
+
+               gpu_leakage: gpu-leakage@1b {
+                       reg = <0x1b 0x1>;
+               };
+
+               otp_cpu_version: cpu-version@1c {
+                       reg = <0x1c 0x1>;
+                       bits = <3 3>;
+               };
+
+               npu_leakage: npu-leakage@28 {
+                       reg = <0x28 0x1>;
+               };
+
+               codec_leakage: codec-leakage@29 {
+                       reg = <0x29 0x1>;
+               };
+       };
+
+       dmac2: dma-controller@fed10000 {
+               compatible = "arm,pl330", "arm,primecell";
+               reg = <0x0 0xfed10000 0x0 0x4000>;
+               interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH 0>;
+               arm,pl330-periph-burst;
+               clocks = <&cru ACLK_DMAC2>;
+               clock-names = "apb_pclk";
+               #dma-cells = <1>;
+       };
+
+       hdptxphy_hdmi0: phy@fed60000 {
+               compatible = "rockchip,rk3588-hdptx-phy";
+               reg = <0x0 0xfed60000 0x0 0x2000>;
+               clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX0>;
+               clock-names = "ref", "apb";
+               #phy-cells = <0>;
+               resets = <&cru SRST_HDPTX0>, <&cru SRST_P_HDPTX0>,
+                        <&cru SRST_HDPTX0_INIT>, <&cru SRST_HDPTX0_CMN>,
+                        <&cru SRST_HDPTX0_LANE>, <&cru SRST_HDPTX0_ROPLL>,
+                        <&cru SRST_HDPTX0_LCPLL>;
+               reset-names = "phy", "apb", "init", "cmn", "lane", "ropll",
+                             "lcpll";
+               rockchip,grf = <&hdptxphy0_grf>;
+               status = "disabled";
+       };
+
+       usbdp_phy0: phy@fed80000 {
+               compatible = "rockchip,rk3588-usbdp-phy";
+               reg = <0x0 0xfed80000 0x0 0x10000>;
+               #phy-cells = <1>;
+               clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
+                        <&cru CLK_USBDP_PHY0_IMMORTAL>,
+                        <&cru PCLK_USBDPPHY0>,
+                        <&u2phy0>;
+               clock-names = "refclk", "immortal", "pclk", "utmi";
+               resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>,
+                        <&cru SRST_USBDP_COMBO_PHY0_CMN>,
+                        <&cru SRST_USBDP_COMBO_PHY0_LANE>,
+                        <&cru SRST_USBDP_COMBO_PHY0_PCS>,
+                        <&cru SRST_P_USBDPPHY0>;
+               reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
+               rockchip,u2phy-grf = <&usb2phy0_grf>;
+               rockchip,usb-grf = <&usb_grf>;
+               rockchip,usbdpphy-grf = <&usbdpphy0_grf>;
+               rockchip,vo-grf = <&vo0_grf>;
+               status = "disabled";
+       };
+
+       combphy0_ps: phy@fee00000 {
+               compatible = "rockchip,rk3588-naneng-combphy";
+               reg = <0x0 0xfee00000 0x0 0x100>;
+               clocks = <&cru CLK_REF_PIPE_PHY0>, <&cru PCLK_PCIE_COMBO_PIPE_PHY0>,
+                        <&cru PCLK_PHP_ROOT>;
+               clock-names = "ref", "apb", "pipe";
+               assigned-clocks = <&cru CLK_REF_PIPE_PHY0>;
+               assigned-clock-rates = <100000000>;
+               #phy-cells = <1>;
+               resets = <&cru SRST_REF_PIPE_PHY0>, <&cru SRST_P_PCIE2_PHY0>;
+               reset-names = "phy", "apb";
+               rockchip,pipe-grf = <&php_grf>;
+               rockchip,pipe-phy-grf = <&pipe_phy0_grf>;
+               status = "disabled";
+       };
+
+       combphy2_psu: phy@fee20000 {
+               compatible = "rockchip,rk3588-naneng-combphy";
+               reg = <0x0 0xfee20000 0x0 0x100>;
+               clocks = <&cru CLK_REF_PIPE_PHY2>, <&cru PCLK_PCIE_COMBO_PIPE_PHY2>,
+                        <&cru PCLK_PHP_ROOT>;
+               clock-names = "ref", "apb", "pipe";
+               assigned-clocks = <&cru CLK_REF_PIPE_PHY2>;
+               assigned-clock-rates = <100000000>;
+               #phy-cells = <1>;
+               resets = <&cru SRST_REF_PIPE_PHY2>, <&cru SRST_P_PCIE2_PHY2>;
+               reset-names = "phy", "apb";
+               rockchip,pipe-grf = <&php_grf>;
+               rockchip,pipe-phy-grf = <&pipe_phy2_grf>;
+               status = "disabled";
+       };
+
+       system_sram2: sram@ff001000 {
+               compatible = "mmio-sram";
+               reg = <0x0 0xff001000 0x0 0xef000>;
+               ranges = <0x0 0x0 0xff001000 0xef000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+
+       pinctrl: pinctrl {
+               compatible = "rockchip,rk3588-pinctrl";
+               ranges;
+               rockchip,grf = <&ioc>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+
+               gpio0: gpio@fd8a0000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xfd8a0000 0x0 0x100>;
+                       interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&cru PCLK_GPIO0>, <&cru DBCLK_GPIO0>;
+                       gpio-controller;
+                       gpio-ranges = <&pinctrl 0 0 32>;
+                       interrupt-controller;
+                       #gpio-cells = <2>;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio1: gpio@fec20000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xfec20000 0x0 0x100>;
+                       interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
+                       gpio-controller;
+                       gpio-ranges = <&pinctrl 0 32 32>;
+                       interrupt-controller;
+                       #gpio-cells = <2>;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio2: gpio@fec30000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xfec30000 0x0 0x100>;
+                       interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
+                       gpio-controller;
+                       gpio-ranges = <&pinctrl 0 64 32>;
+                       interrupt-controller;
+                       #gpio-cells = <2>;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio3: gpio@fec40000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xfec40000 0x0 0x100>;
+                       interrupts = <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
+                       gpio-controller;
+                       gpio-ranges = <&pinctrl 0 96 32>;
+                       interrupt-controller;
+                       #gpio-cells = <2>;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio4: gpio@fec50000 {
+                       compatible = "rockchip,gpio-bank";
+                       reg = <0x0 0xfec50000 0x0 0x100>;
+                       interrupts = <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
+                       gpio-controller;
+                       gpio-ranges = <&pinctrl 0 128 32>;
+                       interrupt-controller;
+                       #gpio-cells = <2>;
+                       #interrupt-cells = <2>;
+               };
+       };
+};
+
+#include "rk3588-base-pinctrl.dtsi"
index 709d348cf06b81781f68fdcbb776ca8b3742941a..03fd193be253daeda37fd8fd9d938d057b89d954 100644 (file)
                };
        };
 };
+
+&tsadc {
+       status = "okay";
+};
index 7be2190244bafb2fabdd7b2ab37aee1d16351d72..00f660d50127f75e9f4952fd0ea80bb0680916fe 100644 (file)
                        vdd_cpu_big1_s0: dcdc-reg1 {
                                regulator-always-on;
                                regulator-boot-on;
+                               regulator-coupled-with = <&vdd_cpu_big1_mem_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-min-microvolt = <550000>;
                                regulator-max-microvolt = <1050000>;
                                regulator-ramp-delay = <12500>;
                        vdd_cpu_big0_s0: dcdc-reg2 {
                                regulator-always-on;
                                regulator-boot-on;
+                               regulator-coupled-with = <&vdd_cpu_big0_mem_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-min-microvolt = <550000>;
                                regulator-max-microvolt = <1050000>;
                                regulator-ramp-delay = <12500>;
                        vdd_cpu_lit_s0: dcdc-reg3 {
                                regulator-always-on;
                                regulator-boot-on;
+                               regulator-coupled-with = <&vdd_cpu_lit_mem_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-min-microvolt = <550000>;
                                regulator-max-microvolt = <950000>;
                                regulator-ramp-delay = <12500>;
                        vdd_cpu_big1_mem_s0: dcdc-reg5 {
                                regulator-always-on;
                                regulator-boot-on;
+                               regulator-coupled-with = <&vdd_cpu_big1_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-min-microvolt = <675000>;
                                regulator-max-microvolt = <1050000>;
                                regulator-ramp-delay = <12500>;
                        vdd_cpu_big0_mem_s0: dcdc-reg6 {
                                regulator-always-on;
                                regulator-boot-on;
+                               regulator-coupled-with = <&vdd_cpu_big0_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-min-microvolt = <675000>;
                                regulator-max-microvolt = <1050000>;
                                regulator-ramp-delay = <12500>;
                        vdd_cpu_lit_mem_s0: dcdc-reg8 {
                                regulator-always-on;
                                regulator-boot-on;
+                               regulator-coupled-with = <&vdd_cpu_lit_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-min-microvolt = <675000>;
                                regulator-max-microvolt = <950000>;
                                regulator-ramp-delay = <12500>;
        status = "okay";
 };
 
+&tsadc {
+       status = "okay";
+};
+
 &u2phy0 {
        status = "okay";
 };
diff --git a/src/arm64/rockchip/rk3588-extra.dtsi b/src/arm64/rockchip/rk3588-extra.dtsi
new file mode 100644 (file)
index 0000000..0ce0934
--- /dev/null
@@ -0,0 +1,448 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
+ */
+
+#include "rk3588-base.dtsi"
+#include "rk3588-extra-pinctrl.dtsi"
+
+/ {
+       usb_host1_xhci: usb@fc400000 {
+               compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
+               reg = <0x0 0xfc400000 0x0 0x400000>;
+               interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru REF_CLK_USB3OTG1>, <&cru SUSPEND_CLK_USB3OTG1>,
+                        <&cru ACLK_USB3OTG1>;
+               clock-names = "ref_clk", "suspend_clk", "bus_clk";
+               dr_mode = "otg";
+               phys = <&u2phy1_otg>, <&usbdp_phy1 PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+               phy_type = "utmi_wide";
+               power-domains = <&power RK3588_PD_USB>;
+               resets = <&cru SRST_A_USB3OTG1>;
+               snps,dis_enblslpm_quirk;
+               snps,dis-u2-freeclk-exists-quirk;
+               snps,dis-del-phy-power-chg-quirk;
+               snps,dis-tx-ipgap-linecheck-quirk;
+               status = "disabled";
+       };
+
+       pcie30_phy_grf: syscon@fd5b8000 {
+               compatible = "rockchip,rk3588-pcie3-phy-grf", "syscon";
+               reg = <0x0 0xfd5b8000 0x0 0x10000>;
+       };
+
+       pipe_phy1_grf: syscon@fd5c0000 {
+               compatible = "rockchip,rk3588-pipe-phy-grf", "syscon";
+               reg = <0x0 0xfd5c0000 0x0 0x100>;
+       };
+
+       usbdpphy1_grf: syscon@fd5cc000 {
+               compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
+               reg = <0x0 0xfd5cc000 0x0 0x4000>;
+       };
+
+       usb2phy1_grf: syscon@fd5d4000 {
+               compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
+               reg = <0x0 0xfd5d4000 0x0 0x4000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               u2phy1: usb2phy@4000 {
+                       compatible = "rockchip,rk3588-usb2phy";
+                       reg = <0x4000 0x10>;
+                       #clock-cells = <0>;
+                       clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
+                       clock-names = "phyclk";
+                       clock-output-names = "usb480m_phy1";
+                       interrupts = <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH 0>;
+                       resets = <&cru SRST_OTGPHY_U3_1>, <&cru SRST_P_USB2PHY_U3_1_GRF0>;
+                       reset-names = "phy", "apb";
+                       status = "disabled";
+
+                       u2phy1_otg: otg-port {
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+       };
+
+       i2s8_8ch: i2s@fddc8000 {
+               compatible = "rockchip,rk3588-i2s-tdm";
+               reg = <0x0 0xfddc8000 0x0 0x1000>;
+               interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru MCLK_I2S8_8CH_TX>, <&cru MCLK_I2S8_8CH_TX>, <&cru HCLK_I2S8_8CH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               assigned-clocks = <&cru CLK_I2S8_8CH_TX_SRC>;
+               assigned-clock-parents = <&cru PLL_AUPLL>;
+               dmas = <&dmac2 22>;
+               dma-names = "tx";
+               power-domains = <&power RK3588_PD_VO0>;
+               resets = <&cru SRST_M_I2S8_8CH_TX>;
+               reset-names = "tx-m";
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s6_8ch: i2s@fddf4000 {
+               compatible = "rockchip,rk3588-i2s-tdm";
+               reg = <0x0 0xfddf4000 0x0 0x1000>;
+               interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru MCLK_I2S6_8CH_TX>, <&cru MCLK_I2S6_8CH_TX>, <&cru HCLK_I2S6_8CH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               assigned-clocks = <&cru CLK_I2S6_8CH_TX_SRC>;
+               assigned-clock-parents = <&cru PLL_AUPLL>;
+               dmas = <&dmac2 4>;
+               dma-names = "tx";
+               power-domains = <&power RK3588_PD_VO1>;
+               resets = <&cru SRST_M_I2S6_8CH_TX>;
+               reset-names = "tx-m";
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s7_8ch: i2s@fddf8000 {
+               compatible = "rockchip,rk3588-i2s-tdm";
+               reg = <0x0 0xfddf8000 0x0 0x1000>;
+               interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru MCLK_I2S7_8CH_RX>, <&cru MCLK_I2S7_8CH_RX>, <&cru HCLK_I2S7_8CH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               assigned-clocks = <&cru CLK_I2S7_8CH_RX_SRC>;
+               assigned-clock-parents = <&cru PLL_AUPLL>;
+               dmas = <&dmac2 21>;
+               dma-names = "rx";
+               power-domains = <&power RK3588_PD_VO1>;
+               resets = <&cru SRST_M_I2S7_8CH_RX>;
+               reset-names = "rx-m";
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       i2s10_8ch: i2s@fde00000 {
+               compatible = "rockchip,rk3588-i2s-tdm";
+               reg = <0x0 0xfde00000 0x0 0x1000>;
+               interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru MCLK_I2S10_8CH_RX>, <&cru MCLK_I2S10_8CH_RX>, <&cru HCLK_I2S10_8CH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               assigned-clocks = <&cru CLK_I2S10_8CH_RX_SRC>;
+               assigned-clock-parents = <&cru PLL_AUPLL>;
+               dmas = <&dmac2 24>;
+               dma-names = "rx";
+               power-domains = <&power RK3588_PD_VO1>;
+               resets = <&cru SRST_M_I2S10_8CH_RX>;
+               reset-names = "rx-m";
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
+       pcie3x4: pcie@fe150000 {
+               compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               bus-range = <0x00 0x0f>;
+               clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>,
+                        <&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>,
+                        <&cru CLK_PCIE_AUX0>, <&cru CLK_PCIE4L_PIPE>;
+               clock-names = "aclk_mst", "aclk_slv",
+                             "aclk_dbi", "pclk",
+                             "aux", "pipe";
+               device_type = "pci";
+               interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "sys", "pmc", "msg", "legacy", "err";
+               #interrupt-cells = <1>;
+               interrupt-map-mask = <0 0 0 7>;
+               interrupt-map = <0 0 0 1 &pcie3x4_intc 0>,
+                               <0 0 0 2 &pcie3x4_intc 1>,
+                               <0 0 0 3 &pcie3x4_intc 2>,
+                               <0 0 0 4 &pcie3x4_intc 3>;
+               linux,pci-domain = <0>;
+               max-link-speed = <3>;
+               msi-map = <0x0000 &its1 0x0000 0x1000>;
+               num-lanes = <4>;
+               phys = <&pcie30phy>;
+               phy-names = "pcie-phy";
+               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>;
+               reg = <0xa 0x40000000 0x0 0x00400000>,
+                     <0x0 0xfe150000 0x0 0x00010000>,
+                     <0x0 0xf0000000 0x0 0x00100000>;
+               reg-names = "dbi", "apb", "config";
+               resets = <&cru SRST_PCIE0_POWER_UP>, <&cru SRST_P_PCIE0>;
+               reset-names = "pwr", "pipe";
+               status = "disabled";
+
+               pcie3x4_intc: legacy-interrupt-controller {
+                       interrupt-controller;
+                       #address-cells = <0>;
+                       #interrupt-cells = <1>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <GIC_SPI 260 IRQ_TYPE_EDGE_RISING 0>;
+               };
+       };
+
+       pcie3x4_ep: pcie-ep@fe150000 {
+               compatible = "rockchip,rk3588-pcie-ep";
+               reg = <0xa 0x40000000 0x0 0x00100000>,
+                     <0xa 0x40100000 0x0 0x00100000>,
+                     <0x0 0xfe150000 0x0 0x00010000>,
+                     <0x9 0x00000000 0x0 0x40000000>,
+                     <0xa 0x40300000 0x0 0x00100000>;
+               reg-names = "dbi", "dbi2", "apb", "addr_space", "atu";
+               clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>,
+                        <&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>,
+                        <&cru CLK_PCIE_AUX0>, <&cru CLK_PCIE4L_PIPE>;
+               clock-names = "aclk_mst", "aclk_slv",
+                             "aclk_dbi", "pclk",
+                             "aux", "pipe";
+               interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "sys", "pmc", "msg", "legacy", "err",
+                                 "dma0", "dma1", "dma2", "dma3";
+               max-link-speed = <3>;
+               num-lanes = <4>;
+               phys = <&pcie30phy>;
+               phy-names = "pcie-phy";
+               power-domains = <&power RK3588_PD_PCIE>;
+               resets = <&cru SRST_PCIE0_POWER_UP>, <&cru SRST_P_PCIE0>;
+               reset-names = "pwr", "pipe";
+               status = "disabled";
+       };
+
+       pcie3x2: pcie@fe160000 {
+               compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               bus-range = <0x10 0x1f>;
+               clocks = <&cru ACLK_PCIE_2L_MSTR>, <&cru ACLK_PCIE_2L_SLV>,
+                        <&cru ACLK_PCIE_2L_DBI>, <&cru PCLK_PCIE_2L>,
+                        <&cru CLK_PCIE_AUX1>, <&cru CLK_PCIE2L_PIPE>;
+               clock-names = "aclk_mst", "aclk_slv",
+                             "aclk_dbi", "pclk",
+                             "aux", "pipe";
+               device_type = "pci";
+               interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "sys", "pmc", "msg", "legacy", "err";
+               #interrupt-cells = <1>;
+               interrupt-map-mask = <0 0 0 7>;
+               interrupt-map = <0 0 0 1 &pcie3x2_intc 0>,
+                               <0 0 0 2 &pcie3x2_intc 1>,
+                               <0 0 0 3 &pcie3x2_intc 2>,
+                               <0 0 0 4 &pcie3x2_intc 3>;
+               linux,pci-domain = <1>;
+               max-link-speed = <3>;
+               msi-map = <0x1000 &its1 0x1000 0x1000>;
+               num-lanes = <2>;
+               phys = <&pcie30phy>;
+               phy-names = "pcie-phy";
+               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>;
+               reg = <0xa 0x40400000 0x0 0x00400000>,
+                     <0x0 0xfe160000 0x0 0x00010000>,
+                     <0x0 0xf1000000 0x0 0x00100000>;
+               reg-names = "dbi", "apb", "config";
+               resets = <&cru SRST_PCIE1_POWER_UP>, <&cru SRST_P_PCIE1>;
+               reset-names = "pwr", "pipe";
+               status = "disabled";
+
+               pcie3x2_intc: legacy-interrupt-controller {
+                       interrupt-controller;
+                       #address-cells = <0>;
+                       #interrupt-cells = <1>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <GIC_SPI 255 IRQ_TYPE_EDGE_RISING 0>;
+               };
+       };
+
+       pcie2x1l0: pcie@fe170000 {
+               compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
+               bus-range = <0x20 0x2f>;
+               clocks = <&cru ACLK_PCIE_1L0_MSTR>, <&cru ACLK_PCIE_1L0_SLV>,
+                        <&cru ACLK_PCIE_1L0_DBI>, <&cru PCLK_PCIE_1L0>,
+                        <&cru CLK_PCIE_AUX2>, <&cru CLK_PCIE1L0_PIPE>;
+               clock-names = "aclk_mst", "aclk_slv",
+                             "aclk_dbi", "pclk",
+                             "aux", "pipe";
+               device_type = "pci";
+               interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "sys", "pmc", "msg", "legacy", "err";
+               #interrupt-cells = <1>;
+               interrupt-map-mask = <0 0 0 7>;
+               interrupt-map = <0 0 0 1 &pcie2x1l0_intc 0>,
+                               <0 0 0 2 &pcie2x1l0_intc 1>,
+                               <0 0 0 3 &pcie2x1l0_intc 2>,
+                               <0 0 0 4 &pcie2x1l0_intc 3>;
+               linux,pci-domain = <2>;
+               max-link-speed = <2>;
+               msi-map = <0x2000 &its0 0x2000 0x1000>;
+               num-lanes = <1>;
+               phys = <&combphy1_ps PHY_TYPE_PCIE>;
+               phy-names = "pcie-phy";
+               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>;
+               reg = <0xa 0x40800000 0x0 0x00400000>,
+                     <0x0 0xfe170000 0x0 0x00010000>,
+                     <0x0 0xf2000000 0x0 0x00100000>;
+               reg-names = "dbi", "apb", "config";
+               resets = <&cru SRST_PCIE2_POWER_UP>, <&cru SRST_P_PCIE2>;
+               reset-names = "pwr", "pipe";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               status = "disabled";
+
+               pcie2x1l0_intc: legacy-interrupt-controller {
+                       interrupt-controller;
+                       #address-cells = <0>;
+                       #interrupt-cells = <1>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <GIC_SPI 240 IRQ_TYPE_EDGE_RISING 0>;
+               };
+       };
+
+       gmac0: ethernet@fe1b0000 {
+               compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
+               reg = <0x0 0xfe1b0000 0x0 0x10000>;
+               interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "macirq", "eth_wake_irq";
+               clocks = <&cru CLK_GMAC_125M>, <&cru CLK_GMAC_50M>,
+                        <&cru PCLK_GMAC0>, <&cru ACLK_GMAC0>,
+                        <&cru CLK_GMAC0_PTP_REF>;
+               clock-names = "stmmaceth", "clk_mac_ref",
+                             "pclk_mac", "aclk_mac",
+                             "ptp_ref";
+               power-domains = <&power RK3588_PD_GMAC>;
+               resets = <&cru SRST_A_GMAC0>;
+               reset-names = "stmmaceth";
+               rockchip,grf = <&sys_grf>;
+               rockchip,php-grf = <&php_grf>;
+               snps,axi-config = <&gmac0_stmmac_axi_setup>;
+               snps,mixed-burst;
+               snps,mtl-rx-config = <&gmac0_mtl_rx_setup>;
+               snps,mtl-tx-config = <&gmac0_mtl_tx_setup>;
+               snps,tso;
+               status = "disabled";
+
+               mdio0: mdio {
+                       compatible = "snps,dwmac-mdio";
+                       #address-cells = <0x1>;
+                       #size-cells = <0x0>;
+               };
+
+               gmac0_stmmac_axi_setup: stmmac-axi-config {
+                       snps,blen = <0 0 0 0 16 8 4>;
+                       snps,wr_osr_lmt = <4>;
+                       snps,rd_osr_lmt = <8>;
+               };
+
+               gmac0_mtl_rx_setup: rx-queues-config {
+                       snps,rx-queues-to-use = <2>;
+                       queue0 {};
+                       queue1 {};
+               };
+
+               gmac0_mtl_tx_setup: tx-queues-config {
+                       snps,tx-queues-to-use = <2>;
+                       queue0 {};
+                       queue1 {};
+               };
+       };
+
+       sata1: sata@fe220000 {
+               compatible = "rockchip,rk3588-dwc-ahci", "snps,dwc-ahci";
+               reg = <0 0xfe220000 0 0x1000>;
+               interrupts = <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_SATA1>, <&cru CLK_PMALIVE1>,
+                        <&cru CLK_RXOOB1>, <&cru CLK_PIPEPHY1_REF>,
+                        <&cru CLK_PIPEPHY1_PIPE_ASIC_G>;
+               clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
+               ports-implemented = <0x1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+
+               sata-port@0 {
+                       reg = <0>;
+                       hba-port-cap = <HBA_PORT_FBSCP>;
+                       phys = <&combphy1_ps PHY_TYPE_SATA>;
+                       phy-names = "sata-phy";
+                       snps,rx-ts-max = <32>;
+                       snps,tx-ts-max = <32>;
+               };
+       };
+
+       usbdp_phy1: phy@fed90000 {
+               compatible = "rockchip,rk3588-usbdp-phy";
+               reg = <0x0 0xfed90000 0x0 0x10000>;
+               #phy-cells = <1>;
+               clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
+                        <&cru CLK_USBDP_PHY1_IMMORTAL>,
+                        <&cru PCLK_USBDPPHY1>,
+                        <&u2phy1>;
+               clock-names = "refclk", "immortal", "pclk", "utmi";
+               resets = <&cru SRST_USBDP_COMBO_PHY1_INIT>,
+                        <&cru SRST_USBDP_COMBO_PHY1_CMN>,
+                        <&cru SRST_USBDP_COMBO_PHY1_LANE>,
+                        <&cru SRST_USBDP_COMBO_PHY1_PCS>,
+                        <&cru SRST_P_USBDPPHY1>;
+               reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
+               rockchip,u2phy-grf = <&usb2phy1_grf>;
+               rockchip,usb-grf = <&usb_grf>;
+               rockchip,usbdpphy-grf = <&usbdpphy1_grf>;
+               rockchip,vo-grf = <&vo0_grf>;
+               status = "disabled";
+       };
+
+       combphy1_ps: phy@fee10000 {
+               compatible = "rockchip,rk3588-naneng-combphy";
+               reg = <0x0 0xfee10000 0x0 0x100>;
+               clocks = <&cru CLK_REF_PIPE_PHY1>, <&cru PCLK_PCIE_COMBO_PIPE_PHY1>,
+                        <&cru PCLK_PHP_ROOT>;
+               clock-names = "ref", "apb", "pipe";
+               assigned-clocks = <&cru CLK_REF_PIPE_PHY1>;
+               assigned-clock-rates = <100000000>;
+               #phy-cells = <1>;
+               resets = <&cru SRST_REF_PIPE_PHY1>, <&cru SRST_P_PCIE2_PHY1>;
+               reset-names = "phy", "apb";
+               rockchip,pipe-grf = <&php_grf>;
+               rockchip,pipe-phy-grf = <&pipe_phy1_grf>;
+               status = "disabled";
+       };
+
+       pcie30phy: phy@fee80000 {
+               compatible = "rockchip,rk3588-pcie3-phy";
+               reg = <0x0 0xfee80000 0x0 0x20000>;
+               #phy-cells = <0>;
+               clocks = <&cru PCLK_PCIE_COMBO_PIPE_PHY>;
+               clock-names = "pclk";
+               resets = <&cru SRST_PCIE30_PHY>;
+               reset-names = "phy";
+               rockchip,pipe-grf = <&php_grf>;
+               rockchip,phy-grf = <&pcie30_phy_grf>;
+               status = "disabled";
+       };
+};
diff --git a/src/arm64/rockchip/rk3588-friendlyelec-cm3588-nas.dts b/src/arm64/rockchip/rk3588-friendlyelec-cm3588-nas.dts
new file mode 100644 (file)
index 0000000..83103e4
--- /dev/null
@@ -0,0 +1,778 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
+ * Copyright (c) 2023 Thomas McKahan
+ * Copyright (c) 2024 Sebastian Kropatsch
+ *
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/usb/pd.h>
+#include "rk3588-friendlyelec-cm3588.dtsi"
+
+/ {
+       model = "FriendlyElec CM3588 NAS";
+       compatible = "friendlyarm,cm3588-nas", "friendlyarm,cm3588", "rockchip,rk3588";
+
+       adc_key_recovery: adc-key-recovery {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-recovery {
+                       label = "Recovery";
+                       linux,code = <KEY_VENDOR>;
+                       press-threshold-microvolt = <17000>;
+               };
+       };
+
+       analog-sound {
+               compatible = "simple-audio-card";
+               pinctrl-names = "default";
+               pinctrl-0 = <&headphone_detect>;
+
+               simple-audio-card,format = "i2s";
+               simple-audio-card,hp-det-gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>;
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,name = "realtek,rt5616-codec";
+
+               simple-audio-card,routing =
+                       "Headphones", "HPOL",
+                       "Headphones", "HPOR",
+                       "MIC1", "Microphone Jack",
+                       "Microphone Jack", "micbias1";
+               simple-audio-card,widgets =
+                       "Headphone", "Headphones",
+                       "Microphone", "Microphone Jack";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s0_8ch>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&rt5616>;
+               };
+       };
+
+       buzzer: pwm-beeper {
+               compatible = "pwm-beeper";
+               amp-supply = <&vcc_5v0_sys>;
+               beeper-hz = <500>;
+               pwms = <&pwm8 0 500000 0>;
+       };
+
+       fan: pwm-fan {
+               compatible = "pwm-fan";
+               #cooling-cells = <2>;
+               cooling-levels = <0 50 80 120 160 220>;
+               fan-supply = <&vcc_5v0_sys>;
+               pwms = <&pwm1 0 50000 0>;
+       };
+
+       gpio_keys: gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&key1_pin>;
+
+               button-user {
+                       debounce-interval = <50>;
+                       gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_LOW>;
+                       label = "User Button";
+                       linux,code = <BTN_1>;
+                       wakeup-source;
+               };
+       };
+
+       ir-receiver {
+               compatible = "gpio-ir-receiver";
+               gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_LOW>;
+       };
+
+       vcc_12v_dcin: regulator-vcc-12v-dcin {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_12v_dcin";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       vcc_3v3_m2_a: regulator-vcc-3v3-m2-a {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_3v3_m2_a";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_12v_dcin>;
+       };
+
+       vcc_3v3_m2_b: regulator-vcc-3v3-m2-b {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_3v3_m2_b";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_12v_dcin>;
+       };
+
+       vcc_3v3_m2_c: regulator-vcc-3v3-m2-c {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_3v3_m2_c";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_12v_dcin>;
+       };
+
+       vcc_3v3_m2_d: regulator-vcc-3v3-m2-d {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_3v3_m2_d";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_12v_dcin>;
+       };
+
+       /* vcc_5v0_sys powers the peripherals */
+       vcc_5v0_sys: regulator-vcc-5v0-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc_12v_dcin>;
+       };
+
+       /* SY6280AAC power switch (U14 in schematics) */
+       vcc_5v0_host_20: regulator-vcc-5v0-host-20 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc_5v0_host20_en>;
+               regulator-name = "vcc_5v0_host_20";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc_5v0_sys>;
+       };
+
+       /* SY6280AAC power switch (U8 in schematics) */
+       vcc_5v0_host_30_p1: regulator-vcc-5v0-host-30-p1 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc_5v0_host30p1_en>;
+               regulator-name = "vcc_5v0_host_30_p1";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc_5v0_sys>;
+       };
+
+       /* SY6280AAC power switch (U9 in schematics) */
+       vcc_5v0_host_30_p2: regulator-vcc-5v0-host-30-p2 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc_5v0_host30p2_en>;
+               regulator-name = "vcc_5v0_host_30_p2";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc_5v0_sys>;
+       };
+
+       /* SY6280AAC power switch (U10 in schematics) */
+       vbus_5v0_typec: regulator-vbus-5v0-typec {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&typec_5v_pwr_en>;
+               regulator-name = "vbus_5v0_typec";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc_5v0_sys>;
+       };
+};
+
+/* vcc_4v0_sys powers the RK806 and RK860's */
+&vcc_4v0_sys {
+       vin-supply = <&vcc_12v_dcin>;
+};
+
+/* Combo PHY 1 is configured to act as as PCIe 2.0 PHY */
+/* Used by PCIe controller 2 (pcie2x1l0) */
+&combphy1_ps {
+       status = "okay";
+};
+
+/* Combo PHY 2 is configured to act as USB3 PHY */
+/* Used by USB 3.0 OTG 2 controller (USB 3.0 Type-A port 2) */
+/* CM3588 USB Controller Config Table: USB30 HOST2 */
+&combphy2_psu {
+       status = "okay";
+};
+
+/* GPIO names are in the format "Human-readable-name [SIGNAL_LABEL]" */
+/* Signal labels match the official CM3588 NAS SDK schematic revision 2309 */
+&gpio0 {
+       gpio-line-names =
+               /* GPIO0 A0-A7 */
+               "", "", "", "",
+               "MicroSD detect [SDMMC_DET_L]", "", "", "",
+               /* GPIO0 B0-B7 */
+               "", "", "", "",
+               "", "", "", "",
+               /* GPIO0 C0-C7 */
+               "", "", "", "",
+               "Pin 10 [UART0_RX_M0]", "Pin 08 [UART0_TX_M0/PWM4_M0]", "Pin 32 [PWM5_M1]", "",
+               /* GPIO0 D0-D7 */
+               "", "", "", "USB3 Type-C [CC_INT_L]",
+               "IR receiver [PWM3_IR_M0]", "User Button", "", "";
+};
+
+&gpio1 {
+       gpio-line-names =
+               /* GPIO1 A0-A7 */
+               "Pin 27 [UART6_RX_M1]", "Pin 28 [UART6_TX_M1]", "", "",
+               "USB2 Type-A [USB2_PWREN]", "", "", "Pin 15",
+               /* GPIO1 B0-B7 */
+               "Pin 26", "Pin 21 [SPI0_MISO_M2]", "Pin 19 [SPI0_MOSI_M2/UART4_RX_M2]", "Pin 23 [SPI0_CLK_M2/UART4_TX_M2]",
+               "Pin 24 [SPI0_CS0_M2/UART7_RX_M2]", "Pin 22 [SPI0_CS1_M0/UART7_TX_M2]", "", "CSI-Pin 14 [MIPI_CAM2_CLKOUT]",
+               /* GPIO1 C0-C7 */
+               "", "", "", "",
+               "Headphone detect [HP_DET_L]", "", "", "",
+               /* GPIO1 D0-D7 */
+               "", "", "USB3 Type-C [TYPEC5V_PWREN_H]", "5V Fan [PWM1_M1]",
+               "", "HDMI-in detect [HDMIIRX_DET_L]", "Pin 05 [I2C8_SCL_M2]", "Pin 03 [I2C8_SDA_M2]";
+};
+
+&gpio2 {
+       gpio-line-names =
+               /* GPIO2 A0-A7 */
+               "", "", "", "",
+               "", "", "SPI NOR Flash [FSPI_D0_M1]", "SPI NOR Flash [FSPI_D1_M1]",
+               /* GPIO2 B0-B7 */
+               "SPI NOR Flash [FSPI_D2_M1]", "SPI NOR Flash [FSPI_D3_M1]", "", "SPI NOR Flash [FSPI_CLK_M1]",
+               "SPI NOR Flash [FSPI_CSN0_M1]", "", "", "",
+               /* GPIO2 C0-C7 */
+               "", "CSI-Pin 11 [MIPI_CAM2_RESET_L]", "CSI-Pin 12 [MIPI_CAM2_PDN_L]", "",
+               "", "", "", "",
+               /* GPIO2 D0-D7 */
+               "", "", "", "",
+               "", "", "", "";
+};
+
+&gpio3 {
+       gpio-line-names =
+               /* GPIO3 A0-A7 */
+               "Pin 35 [SPI4_MISO_M1/PWM10_M0]", "Pin 38 [SPI4_MOSI_M1]", "Pin 40 [SPI4_CLK_M1/UART8_TX_M1]", "Pin 36 [SPI4_CS0_M1/UART8_RX_M1]",
+               "Pin 37 [SPI4_CS1_M1]", "USB3-A #2 [USB3_2_PWREN]", "DSI-Pin 12 [LCD_RST]", "Buzzer [PWM8_M0]",
+               /* GPIO3 B0-B7 */
+               "Pin 33 [PWM9_M0]", "DSI-Pin 10 [PWM2_M1/LCD_BL]", "Pin 07", "Pin 16",
+               "Pin 18", "Pin 29 [UART3_TX_M1/PWM12_M0]", "Pin 31 [UART3_RX_M1/PWM13_M0]", "Pin 12",
+               /* GPIO3 C0-C7 */
+               "DSI-Pin 08 [TP_INT_L]", "DSI-Pin 14 [TP_RST_L]", "Pin 11 [PWM14_M0]", "Pin 13 [PWM15_IR_M0]",
+               "", "", "", "DSI-Pin 06 [I2C5_SCL_M0_TP]",
+               /* GPIO3 D0-D7 */
+               "DSI-Pin 05 [I2C5_SDA_M0_TP]", "", "", "",
+               "", "", "", "";
+};
+
+&gpio4 {
+       gpio-line-names =
+               /* GPIO4 A0-A7 */
+               "", "", "M.2 M-Key Slot4 [M2_D_PERST_L]", "",
+               "", "", "", "",
+               /* GPIO4 B0-B7 */
+               "USB3-A #1 [USB3_TYPEC1_PWREN]", "", "", "M.2 M-Key Slot3 [M2_C_PERST_L]",
+               "M.2 M-Key Slot2 [M2_B_PERST_L]", "M.2 M-Key Slot1 [M2_A_CLKREQ_L]", "M.2 M-Key Slot1 [M2_A_PERST_L]", "",
+               /* GPIO4 C0-C7 */
+               "", "", "", "",
+               "", "", "", "",
+               /* GPIO4 D0-D7 */
+               "", "", "", "",
+               "", "", "", "";
+};
+
+/* Connected to MIPI-DSI0 */
+&i2c5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c5m0_xfer>;
+       status = "disabled";
+};
+
+&i2c6 {
+       fusb302: typec-portc@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usbc0_int>;
+               vbus-supply = <&vbus_5v0_typec>;
+
+               usb_con: connector {
+                       compatible = "usb-c-connector";
+                       data-role = "dual";
+                       label = "USB-C";
+                       power-role = "source";
+                       source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>;
+                       try-power-role = "source";
+                       vbus-supply = <&vbus_5v0_typec>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usbc0_orien_sw: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_orientation_switch>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usbc0_role_sw: endpoint {
+                                               remote-endpoint = <&dwc3_0_role_switch>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       dp_altmode_mux: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+/* Connected to MIPI-CSI1 */
+/* &i2c7 */
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+&i2c8 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c8m2_xfer>;
+       status = "okay";
+};
+
+&pcie2x1l0 {
+       /* 2. M.2 socket, CON14: pcie30phy port0 lane1, @fe170000 */
+       max-link-speed = <3>;
+       num-lanes = <1>;
+       phys = <&pcie30phy>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_0_rst>;
+       reset-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc_3v3_m2_b>;
+       status = "okay";
+};
+
+&pcie2x1l1 {
+       /* 4. M.2 socket, CON16: pcie30phy port1 lane1, @fe180000 */
+       max-link-speed = <3>;
+       num-lanes = <1>;
+       phys = <&pcie30phy>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_1_rst>;
+       reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc_3v3_m2_d>;
+       status = "okay";
+};
+
+&pcie30phy {
+       /*
+       * Data lane mapping <1 3 2 4> = x1x1 x1x1 (bifurcation of both ports)
+       * port 0 lane 0 - always mapped to controller 0 (4L)
+       * port 0 lane 1 - map to controller 2 (1L0)
+       * port 1 lane 0 - map to controller 1 (2L)
+       * port 1 lane 1 - map to controller 3 (1L1)
+       */
+       data-lanes = <1 3 2 4>;
+       status = "okay";
+};
+
+&pcie3x4 {
+       /* 1. M.2 socket, CON13: pcie30phy port0 lane0, @fe150000 */
+       max-link-speed = <3>;
+       num-lanes = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie3x4_rst>;
+       reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc_3v3_m2_a>;
+       status = "okay";
+};
+
+&pcie3x2 {
+       /* 3. M.2 socket, CON15: pcie30phy port1 lane0, @fe160000 */
+       max-link-speed = <3>;
+       num-lanes = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie3x2_rst>;
+       reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc_3v3_m2_c>;
+       status = "okay";
+};
+
+&pinctrl {
+       audio {
+               headphone_detect: headphone-detect {
+                       rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       gpio-key {
+               key1_pin: key1-pin {
+                       rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       pcie {
+               pcie2_0_rst: pcie2-0-rst {
+                       rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie2_1_rst: pcie2-1-rst {
+                       rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie3x2_rst: pcie3x2-rst {
+                       rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie3x4_rst: pcie3x4-rst {
+                       rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               vcc_5v0_host20_en: vcc-5v0-host20-en {
+                       rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc_5v0_host30p1_en: vcc-5v0-host30p1-en {
+                       rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc_5v0_host30p2_en: vcc-5v0-host30p2-en {
+                       rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb-typec {
+               usbc0_int: usbc0-int {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               typec_5v_pwr_en: typec-5v-pwr-en {
+                       rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+/* Connected to 5V Fan */
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm1m1_pins>;
+       status = "okay";
+};
+
+/* Connected to MIPI-DSI0 */
+&pwm2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm2m1_pins>;
+};
+
+/* Connected to IR Receiver */
+&pwm3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm3m0_pins>;
+       status = "okay";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+/* Shared with UART0 */
+&pwm4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm4m1_pins>;
+       status = "disabled";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+&pwm5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm5m1_pins>;
+       status = "okay";
+};
+
+/* Connected to Buzzer */
+&pwm8 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm8m0_pins>;
+       status = "okay";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+&pwm9 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm9m0_pins>;
+       status = "okay";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+/* Shared with SPI4 */
+&pwm10 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm10m0_pins>;
+       status = "disabled";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+/* Shared with UART3 */
+&pwm12 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm12m0_pins>;
+       status = "disabled";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+/* Shared with UART3 */
+&pwm13 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm13m0_pins>;
+       status = "disabled";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+&pwm14 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm14m0_pins>;
+       status = "okay";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+/* Optimized for infrared applications */
+&pwm15 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm15m0_pins>;
+       status = "disabled";
+};
+
+/* microSD card */
+&sdmmc {
+       status = "okay";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+/* Shared with UART4, UART7 and PWM10 */
+&spi0 {
+       num-cs = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0m2_cs0 &spi0m2_pins>;
+       status = "disabled";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+/* Shared with UART8 */
+&spi4 {
+       num-cs = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi4m1_cs0 &spi4m1_pins>;
+       status = "disabled";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+/* Shared with PWM4 */
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0m0_xfer>;
+       status = "disabled";
+};
+
+/* Debug UART */
+&uart2 {
+       status = "okay";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+/* Shared with PWM12 and PWM13 */
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart3m1_xfer>;
+       status = "disabled";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+/* Shared with SPI0 */
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart4m2_xfer>;
+       status = "disabled";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+&uart6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart6m1_xfer>;
+       status = "okay";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+/* Shared with SPI0 */
+&uart7 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart7m2_xfer>;
+       status = "disabled";
+};
+
+/* GPIO Connector, connected to 40-pin GPIO header */
+/* Shared with SPI4 */
+&uart8 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart8m1_xfer>;
+       status = "disabled";
+};
+
+/* USB2 PHY for USB Type-C port */
+/* CM3588 USB Controller Config Table: USB20 OTG0 */
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       phy-supply = <&vbus_5v0_typec>;
+       status = "okay";
+};
+
+/* USB2 PHY for USB 3.0 Type-A port 1 */
+/* CM3588 USB Controller Config Table: USB20 OTG1 */
+&u2phy1 {
+       status = "okay";
+};
+
+&u2phy1_otg {
+       phy-supply = <&vcc_5v0_host_30_p1>;
+       status = "okay";
+};
+
+/* USB2 PHY for USB 2.0 Type-A */
+/* CM3588 USB Controller Config Table: USB20 HOST0 */
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy2_host {
+       phy-supply = <&vcc_5v0_host_20>;
+       status = "okay";
+};
+
+/* USB2 PHY for USB 3.0 Type-A port 2 */
+/* CM3588 USB Controller Config Table: USB20 HOST1 */
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy3_host {
+       phy-supply = <&vcc_5v0_host_30_p2>;
+       status = "okay";
+};
+
+/* USB 2.0 Type-A */
+/* PHY: <&u2phy2_host> */
+&usb_host0_ehci {
+       status = "okay";
+};
+
+/* USB 2.0 Type-A */
+/* PHY: <&u2phy2_host> */
+&usb_host0_ohci {
+       status = "okay";
+};
+
+/* USB Type-C */
+/* PHYs: <&u2phy0_otg>, <&usbdp_phy0 PHY_TYPE_USB3> */
+&usb_host0_xhci {
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               dwc3_0_role_switch: endpoint {
+                       remote-endpoint = <&usbc0_role_sw>;
+               };
+       };
+};
+
+/* Lower USB 3.0 Type-A (port 2) */
+/* PHY: <&u2phy3_host> */
+&usb_host1_ehci {
+       status = "okay";
+};
+
+/* Lower USB 3.0 Type-A (port 2) */
+/* PHY: <&u2phy3_host> */
+&usb_host1_ohci {
+       status = "okay";
+};
+
+/* Upper USB 3.0 Type-A (port 1) */
+/* PHYs: <&u2phy1_otg>, <&usbdp_phy1 PHY_TYPE_USB3> */
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
+
+/* Lower USB 3.0 Type-A (port 2) */
+/* PHYs: <&combphy2_psu PHY_TYPE_USB3> */
+&usb_host2_xhci {
+       status = "okay";
+};
+
+/* USB3 PHY for USB Type-C port */
+/* CM3588 USB Controller Config Table: USB30 OTG0 */
+&usbdp_phy0 {
+       mode-switch;
+       orientation-switch;
+       sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
+       sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               usbdp_phy0_orientation_switch: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_orien_sw>;
+               };
+
+               usbdp_phy0_dp_altmode_mux: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&dp_altmode_mux>;
+               };
+       };
+};
+
+/* USB3 PHY for USB 3.0 Type-A port 1 */
+/* CM3588 USB Controller Config Table: USB30 OTG1 */
+&usbdp_phy1 {
+       status = "okay";
+};
diff --git a/src/arm64/rockchip/rk3588-friendlyelec-cm3588.dtsi b/src/arm64/rockchip/rk3588-friendlyelec-cm3588.dtsi
new file mode 100644 (file)
index 0000000..e3a9598
--- /dev/null
@@ -0,0 +1,653 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
+ * Copyright (c) 2023 Thomas McKahan
+ * Copyright (c) 2024 Sebastian Kropatsch
+ *
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3588.dtsi"
+
+/ {
+       model = "FriendlyElec CM3588";
+       compatible = "friendlyarm,cm3588", "rockchip,rk3588";
+
+       aliases {
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_sys: led-0 {
+                       color = <LED_COLOR_ID_AMBER>;
+                       function = LED_FUNCTION_HEARTBEAT;
+                       gpios = <&gpio2 RK_PC5 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&led_sys_pin>;
+               };
+
+               led_usr: led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_INDICATOR;
+                       gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&led_usr_pin>;
+               };
+       };
+
+       /* vcc_4v0_sys powers the RK806 and RK860's */
+       vcc_4v0_sys: regulator-vcc-4v0-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_4v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <4000000>;
+               regulator-max-microvolt = <4000000>;
+       };
+
+       vcc_3v3_pcie20: regulator-vcc-3v3-pcie20 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_3v3_pcie20";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_3v3_s3>;
+       };
+
+       vcc_3v3_sd_s0: regulator-vcc-3v3-sd-s0 {
+               compatible = "regulator-fixed";
+               gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sd_s0_pwr>;
+               regulator-boot-on;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "vcc_3v3_sd_s0";
+               vin-supply = <&vcc_3v3_s3>;
+       };
+
+       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 = <&vcc_4v0_sys>;
+       };
+};
+
+/* Combo PHY 0 is configured to act as as PCIe 2.0 PHY */
+/* Used by PCIe controller 4 (pcie2x1l2) */
+&combphy0_ps {
+       status = "okay";
+};
+
+&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>;
+};
+
+&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>;
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       sram-supply = <&vdd_gpu_mem_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 = <&vcc_4v0_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 = <&vcc_4v0_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 = <&vcc_4v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c6 {
+       clock-frequency = <200000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c6m0_xfer>;
+       status = "okay";
+
+       hym8563: 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 = <&hym8563_int>;
+               wakeup-source;
+       };
+};
+
+&i2c7 {
+       clock-frequency = <200000>;
+       status = "okay";
+
+       rt5616: audio-codec@1b {
+               compatible = "realtek,rt5616";
+               reg = <0x1b>;
+               #sound-dai-cells = <0>;
+       };
+};
+
+&i2s0_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s0_lrck
+                               &i2s0_mclk
+                               &i2s0_sclk
+                               &i2s0_sdi0
+                               &i2s0_sdo0>;
+       status = "okay";
+};
+
+&i2s5_8ch {
+       status = "okay";
+};
+
+&i2s6_8ch {
+       status = "okay";
+};
+
+&i2s7_8ch {
+       status = "okay";
+};
+
+&pcie2x1l2 {
+       /* r8125 ethernet, @fe190000 */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_2_rst>;
+       reset-gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc_3v3_pcie20>;
+       status = "okay";
+};
+
+&pinctrl {
+       gpio-leds {
+               led_sys_pin: led-sys-pin {
+                       rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               led_usr_pin: led-usr-pin {
+                       rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       hym8563 {
+               hym8563_int: rtc-int {
+                       rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       pcie {
+               pcie2_2_rst: pcie2-2-rst {
+                       rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       sdmmc {
+               sd_s0_pwr: sd-s0-pwr {
+                       rockchip,pins = <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&saradc {
+       vref-supply = <&avcc_1v8_s0>;
+       status = "okay";
+};
+
+/* eMMC */
+&sdhci {
+       bus-width = <8>;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       no-sd;
+       no-sdio;
+       non-removable;
+       vmmc-supply = <&vcc_3v3_s3>;
+       vqmmc-supply = <&vcc_1v8_s3>;
+       status = "okay";
+};
+
+/* microSD card */
+&sdmmc {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       disable-wp;
+       max-frequency = <150000000>;
+       no-mmc;
+       no-sdio;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_3v3_sd_s0>;
+       vqmmc-supply = <&vccio_sd_s0>;
+};
+
+&spi2 {
+       assigned-clocks = <&cru CLK_SPI2>;
+       assigned-clock-rates = <200000000>;
+       num-cs = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
+       status = "okay";
+
+       rk806_single: 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 = <&vcc_4v0_sys>;
+               vcc2-supply = <&vcc_4v0_sys>;
+               vcc3-supply = <&vcc_4v0_sys>;
+               vcc4-supply = <&vcc_4v0_sys>;
+               vcc5-supply = <&vcc_4v0_sys>;
+               vcc6-supply = <&vcc_4v0_sys>;
+               vcc7-supply = <&vcc_4v0_sys>;
+               vcc8-supply = <&vcc_4v0_sys>;
+               vcc9-supply = <&vcc_4v0_sys>;
+               vcc10-supply = <&vcc_4v0_sys>;
+               vcc11-supply = <&vcc_2v0_pldo_s3>;
+               vcc12-supply = <&vcc_4v0_sys>;
+               vcc13-supply = <&vcc_1v1_nldo_s3>;
+               vcc14-supply = <&vcc_1v1_nldo_s3>;
+               vcca-supply = <&vcc_4v0_sys>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl1";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs2_null: dvs2-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs3_null: dvs3-null-pins {
+                       pins = "gpio_pwrctrl3";
+                       function = "pin_fun0";
+               };
+
+               regulators {
+                       vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_gpu_s0";
+                               regulator-enable-ramp-delay = <400>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_cpu_lit_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_log_s0: dcdc-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_log_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_vdenc_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_ddr_s0: dcdc-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdd2_ddr_s3: dcdc-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vdd2_ddr_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_2v0_pldo_s3: dcdc-reg7 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_2v0_pldo_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <2000000>;
+                               };
+                       };
+
+                       vcc_3v3_s3: dcdc-reg8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc_3v3_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vddq_ddr_s0: dcdc-reg9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vddq_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3: dcdc-reg10 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avcc_1v8_s0: pldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "avcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s0: pldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avdd_1v2_s0: pldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-name = "avdd_1v2_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3_s0: pldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vcc_3v3_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vccio_sd_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       pldo6_s3: pldo-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "pldo6_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_0v75_s3: nldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_ddr_pll_s0: nldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_ddr_pll_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       avdd_0v75_s0: nldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "avdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v85_s0: nldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_0v85_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v75_s0: nldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
+/* Debug UART */
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2m0_xfer>;
+};
index 009566d881f3ecc8bf114c374dfae2171aa5f412..c2a08bdf09e8397702beb8157a54ef7e2fc41fb4 100644 (file)
 &mdio0 {
        rgmii_phy0: ethernet-phy@1 {
                /* RTL8211F */
-               compatible = "ethernet-phy-id001c.c916",
-                            "ethernet-phy-ieee802.3-c22";
+               compatible = "ethernet-phy-id001c.c916";
                reg = <0x1>;
                pinctrl-names = "default";
                pinctrl-0 = <&rtl8211f_0_rst>;
 &mdio1 {
        rgmii_phy1: ethernet-phy@2 {
                /* RTL8211F */
-               compatible = "ethernet-phy-id001c.c916",
-                            "ethernet-phy-ieee802.3-c22";
+               compatible = "ethernet-phy-id001c.c916";
                reg = <0x2>;
                pinctrl-names = "default";
                pinctrl-0 = <&rtl8211f_1_rst>;
        status = "okay";
 };
 
+&tsadc {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
diff --git a/src/arm64/rockchip/rk3588-opp.dtsi b/src/arm64/rockchip/rk3588-opp.dtsi
new file mode 100644 (file)
index 0000000..0f1a776
--- /dev/null
@@ -0,0 +1,190 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/ {
+       cluster0_opp_table: opp-table-cluster0 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-1008000000 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt = <675000 675000 950000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <712500 712500 950000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1416000000 {
+                       opp-hz = /bits/ 64 <1416000000>;
+                       opp-microvolt = <762500 762500 950000>;
+                       clock-latency-ns = <40000>;
+                       opp-suspend;
+               };
+               opp-1608000000 {
+                       opp-hz = /bits/ 64 <1608000000>;
+                       opp-microvolt = <850000 850000 950000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1800000000 {
+                       opp-hz = /bits/ 64 <1800000000>;
+                       opp-microvolt = <950000 950000 950000>;
+                       clock-latency-ns = <40000>;
+               };
+       };
+
+       cluster1_opp_table: opp-table-cluster1 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <675000 675000 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1416000000 {
+                       opp-hz = /bits/ 64 <1416000000>;
+                       opp-microvolt = <725000 725000 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1608000000 {
+                       opp-hz = /bits/ 64 <1608000000>;
+                       opp-microvolt = <762500 762500 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1800000000 {
+                       opp-hz = /bits/ 64 <1800000000>;
+                       opp-microvolt = <850000 850000 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-2016000000 {
+                       opp-hz = /bits/ 64 <2016000000>;
+                       opp-microvolt = <925000 925000 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-2208000000 {
+                       opp-hz = /bits/ 64 <2208000000>;
+                       opp-microvolt = <987500 987500 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-2400000000 {
+                       opp-hz = /bits/ 64 <2400000000>;
+                       opp-microvolt = <1000000 1000000 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+       };
+
+       cluster2_opp_table: opp-table-cluster2 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <675000 675000 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1416000000 {
+                       opp-hz = /bits/ 64 <1416000000>;
+                       opp-microvolt = <725000 725000 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1608000000 {
+                       opp-hz = /bits/ 64 <1608000000>;
+                       opp-microvolt = <762500 762500 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1800000000 {
+                       opp-hz = /bits/ 64 <1800000000>;
+                       opp-microvolt = <850000 850000 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-2016000000 {
+                       opp-hz = /bits/ 64 <2016000000>;
+                       opp-microvolt = <925000 925000 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-2208000000 {
+                       opp-hz = /bits/ 64 <2208000000>;
+                       opp-microvolt = <987500 987500 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-2400000000 {
+                       opp-hz = /bits/ 64 <2400000000>;
+                       opp-microvolt = <1000000 1000000 1000000>;
+                       clock-latency-ns = <40000>;
+               };
+       };
+
+       gpu_opp_table: opp-table {
+               compatible = "operating-points-v2";
+
+               opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-microvolt = <675000 675000 850000>;
+               };
+               opp-400000000 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <675000 675000 850000>;
+               };
+               opp-500000000 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-microvolt = <675000 675000 850000>;
+               };
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <675000 675000 850000>;
+               };
+               opp-700000000 {
+                       opp-hz = /bits/ 64 <700000000>;
+                       opp-microvolt = <700000 700000 850000>;
+               };
+               opp-800000000 {
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <750000 750000 850000>;
+               };
+               opp-900000000 {
+                       opp-hz = /bits/ 64 <900000000>;
+                       opp-microvolt = <800000 800000 850000>;
+               };
+               opp-1000000000 {
+                       opp-hz = /bits/ 64 <1000000000>;
+                       opp-microvolt = <850000 850000 850000>;
+               };
+       };
+};
+
+&cpu_b0 {
+       operating-points-v2 = <&cluster1_opp_table>;
+};
+
+&cpu_b1 {
+       operating-points-v2 = <&cluster1_opp_table>;
+};
+
+&cpu_b2 {
+       operating-points-v2 = <&cluster2_opp_table>;
+};
+
+&cpu_b3 {
+       operating-points-v2 = <&cluster2_opp_table>;
+};
+
+&cpu_l0 {
+       operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_l1 {
+       operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_l2 {
+       operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_l3 {
+       operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&gpu {
+       operating-points-v2 = <&gpu_opp_table>;
+};
index e80caa36f8e44ee05b4d0c0f01fafc313f987d13..e4a20cda65ed63f43892a535d536672aae97496c 100644 (file)
                                regulator-name = "vdd_cpu_big1_s0";
                                regulator-always-on;
                                regulator-boot-on;
+                               regulator-coupled-with = <&vdd_cpu_big1_mem_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-min-microvolt = <550000>;
                                regulator-max-microvolt = <1050000>;
                                regulator-ramp-delay = <12500>;
                                regulator-name = "vdd_cpu_big0_s0";
                                regulator-always-on;
                                regulator-boot-on;
+                               regulator-coupled-with = <&vdd_cpu_big0_mem_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-min-microvolt = <550000>;
                                regulator-max-microvolt = <1050000>;
                                regulator-ramp-delay = <12500>;
                                regulator-name = "vdd_cpu_lit_s0";
                                regulator-always-on;
                                regulator-boot-on;
+                               regulator-coupled-with = <&vdd_cpu_lit_mem_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-min-microvolt = <550000>;
                                regulator-max-microvolt = <950000>;
                                regulator-ramp-delay = <12500>;
                                regulator-name = "vdd_cpu_big1_mem_s0";
                                regulator-always-on;
                                regulator-boot-on;
+                               regulator-coupled-with = <&vdd_cpu_big1_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-min-microvolt = <675000>;
                                regulator-max-microvolt = <1050000>;
                                regulator-ramp-delay = <12500>;
                                regulator-name = "vdd_cpu_big0_mem_s0";
                                regulator-always-on;
                                regulator-boot-on;
+                               regulator-coupled-with = <&vdd_cpu_big0_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-min-microvolt = <675000>;
                                regulator-max-microvolt = <1050000>;
                                regulator-ramp-delay = <12500>;
                                regulator-name = "vdd_cpu_lit_mem_s0";
                                regulator-always-on;
                                regulator-boot-on;
+                               regulator-coupled-with = <&vdd_cpu_lit_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-min-microvolt = <675000>;
                                regulator-max-microvolt = <950000>;
                                regulator-ramp-delay = <12500>;
diff --git a/src/arm64/rockchip/rk3588-rock-5-itx.dts b/src/arm64/rockchip/rk3588-rock-5-itx.dts
new file mode 100644 (file)
index 0000000..d0b922b
--- /dev/null
@@ -0,0 +1,1177 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Radxa Limited
+ * Copyright (c) 2024 Heiko Stuebner <heiko@sntech.de>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/pwm/pwm.h>
+#include "dt-bindings/usb/pd.h"
+#include "rk3588.dtsi"
+
+/ {
+       model = "Radxa ROCK 5 ITX";
+       compatible = "radxa,rock-5-itx", "rockchip,rk3588";
+
+       aliases {
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc;
+               mmc2 = &sdio;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       adc_keys: adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 0>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-maskrom {
+                       label = "Mask Rom";
+                       linux,code = <KEY_SETUP>;
+                       press-threshold-microvolt = <1750>;
+               };
+       };
+
+       analog-sound {
+               compatible = "audio-graph-card";
+               label = "rk3588-es8316";
+               dais = <&i2s0_8ch_p0>;
+               hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&hp_detect>;
+               routing = "MIC2", "Mic Jack",
+                         "Headphones", "HPOL",
+                         "Headphones", "HPOR";
+               widgets = "Microphone", "Mic Jack",
+                         "Headphone", "Headphones";
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins>;
+
+               power-led1 {
+                       gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-on";
+               };
+
+               hdd-led2 {
+                       gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "disk-activity";
+               };
+       };
+
+       fan0: pwm-fan {
+               compatible = "pwm-fan";
+               #cooling-cells = <2>;
+               cooling-levels = <0 64 128 192 255>;
+               fan-supply = <&vcc12v_dcin>;
+               pwms = <&pwm14 0 10000 0>;
+       };
+
+       /* M.2 E-KEY */
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&hym8563>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_enable_h>;
+               reset-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_LOW>;
+       };
+
+       typec_vin: regulator-typec-vin {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PB6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vbus5v0_typec_en>;
+               regulator-name = "typec_vin";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc12v_dcin: regulator-vcc12v-dcin {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc12v_dcin";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       vcc33_io64: regulator-vcc33-io64 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc33_io64";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+
+       vcc3v3_ekey: regulator-vcc3v3-ekey {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ekey_en>;
+               regulator-name = "vcc3v3_ekey";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <50000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_lan: vcc3v3_lan_phy2: regulator-vcc3v3-lan {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_lan";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_3v3_s3>;
+       };
+
+       vcc3v3_mkey: regulator-vcc3v3-mkey {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie30x4_pwren_h>;
+               regulator-name = "vcc3v3_mkey";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <5000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_sys: regulator-vcc3v3-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+
+       vcc5v0_sys: regulator-vcc5v0-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+
+       vcc5v0_usb20: vcc5v0_usb12: vcc5v0_usb34: regulator-vcc5v0-usb {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_host_pwren_h>;
+               regulator-name = "vcc5v0_usb";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       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>;
+       };
+};
+
+&combphy0_ps {
+       status = "okay";
+};
+
+&combphy1_ps {
+       status = "okay";
+};
+
+&combphy2_psu {
+       status = "okay";
+};
+
+&cpu_b0 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b1 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b2 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_b3 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_l0 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l1 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l2 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l3 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0m2_xfer>;
+       status = "okay";
+
+       vdd_cpu_big0_s0: regulator@42 {
+               compatible = "rockchip,rk8602";
+               reg = <0x42>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big0_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_cpu_big1_s0: regulator@43 {
+               compatible = "rockchip,rk8603", "rockchip,rk8602";
+               reg = <0x43>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big1_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1m2_xfer>;
+       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;
+               };
+       };
+};
+
+/* CAM0 connector */
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3m0_xfer>;
+};
+
+/* M.2 E-key */
+&i2c4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4m1_xfer>;
+};
+
+/* RTC and LCD0 connector */
+&i2c6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c6m0_xfer>;
+       status = "okay";
+
+       hym8563: rtc@51 {
+               compatible = "haoyu,hym8563";
+               reg = <0x51>;
+               #clock-cells = <0>;
+               clock-output-names = "wifi_32kout";
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&rtc_int>;
+       };
+};
+
+/* Audio codec and CAM1 connector */
+&i2c7 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c7m0_xfer>;
+       status = "okay";
+
+       es8316: audio-codec@11 {
+               compatible = "everest,es8316";
+               reg = <0x11>;
+               assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
+               assigned-clock-rates = <12288000>;
+               clocks = <&cru I2S0_8CH_MCLKOUT>;
+               clock-names = "mclk";
+               #sound-dai-cells = <0>;
+
+               port {
+                       es8316_p0_0: endpoint {
+                               remote-endpoint = <&i2s0_8ch_p0_0>;
+                       };
+               };
+       };
+};
+
+/* FUSB302 and LCD1 connector */
+&i2c8 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c8m4_xfer>;
+       status = "okay";
+
+       usbc0: usb-typec@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usbc0_int>;
+               vbus-supply = <&typec_vin>;
+
+               usb_con: connector {
+                       compatible = "usb-c-connector";
+                       data-role = "dual";
+                       label = "USB-C";
+                       power-role = "source";
+                       source-pdos =
+                               <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usbc0_orien_sw: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_orientation_switch>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usbc0_role_sw: endpoint {
+                                               remote-endpoint = <&dwc3_0_role_switch>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       dp_altmode_mux: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&i2c8m4_xfer {
+       rockchip,pins =
+               /* i2c8_scl_m4 */
+               <3 RK_PC2 9 &pcfg_pull_up_drv_level_6>,
+               /* i2c8_sda_m4 */
+               <3 RK_PC3 9 &pcfg_pull_up_drv_level_6>;
+};
+
+&i2s0_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s0_lrck
+                    &i2s0_mclk
+                    &i2s0_sclk
+                    &i2s0_sdi0
+                    &i2s0_sdo0>;
+       status = "okay";
+
+       i2s0_8ch_p0: port {
+               i2s0_8ch_p0_0: endpoint {
+                       dai-format = "i2s";
+                       mclk-fs = <256>;
+                       remote-endpoint = <&es8316_p0_0>;
+               };
+       };
+};
+
+&package_thermal {
+       polling-delay = <1000>;
+
+       trips {
+               package_fan0: package-fan0 {
+                       hysteresis = <2000>;
+                       temperature = <50000>;
+                       type = "active";
+               };
+
+               package_fan1: package-fan1 {
+                       hysteresis = <2000>;
+                       temperature = <65000>;
+                       type = "active";
+               };
+       };
+
+       cooling-maps {
+               map0 {
+                       cooling-device = <&fan0 THERMAL_NO_LIMIT 1>;
+                       trip = <&package_fan0>;
+               };
+               map1 {
+                       cooling-device = <&fan0 2 THERMAL_NO_LIMIT>;
+                       trip = <&package_fan1>;
+               };
+       };
+};
+
+/* M.2 E-key */
+&pcie2x1l0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie30x1_0_perstn_m1_l>;
+       reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_ekey>;
+       status = "okay";
+};
+
+/* RTL8125B_1 */
+&pcie2x1l1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie30x1_1_perstn>;
+       reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_lan>;
+       status = "okay";
+};
+
+/* RTL8125B_2 */
+&pcie2x1l2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie20x1_2_perstn>;
+       reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_lan_phy2>;
+       status = "okay";
+};
+
+&pcie30phy {
+       data-lanes = <1 1 2 2>;
+       /* separate clock lines from the clock generator to phy and devices */
+       rockchip,rx-common-refclk-mode = <0 0 0 0>;
+       status = "okay";
+};
+
+/* ASMedia ASM1164 Sata controller */
+&pcie3x2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie30x2_perstn_m1_l>;
+       reset-gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc33_io64>;
+       status = "okay";
+};
+
+/* M.2 M.key */
+&pcie3x4 {
+       num-lanes = <2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie30x4_perstn_m1_l>;
+       reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_mkey>;
+       status = "okay";
+};
+
+&pinctrl {
+       hym8563 {
+               rtc_int: rtc-int {
+                       rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               led_pins: led-pins {
+                       rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>,
+                                       <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pcie {
+               pcie20x1_2_perstn: pcie20x1-2-perstn {
+                       rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie30x1_0_perstn_m1_l: pcie30x1-0-perstn-m1-l {
+                       rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie30x1_1_perstn: pcie30x1-1-perstn {
+                       rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie30x2_perstn_m1_l: pcie30x2-perstn-m1-l {
+                       rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie30x4_perstn_m1_l: pcie30x4-perstn-m1-l {
+                       rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               ekey_en: ekey-en {
+                       rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               pcie30x4_pwren_h: pcie30x4-pwren-h {
+                       rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+
+       sound {
+               hp_detect: hp-detect {
+                       rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+
+       usb {
+               usb_host_pwren_h: usb-host-pwren-h {
+                       rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc5v0_otg_en: vcc5v0-otg-en {
+                       rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               gl3523_reset: rl3523-reset {
+                       rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb-typec {
+               usbc0_int: usbc0-int {
+                       rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               vbus5v0_typec_en: vbus5v0-typec-en {
+                       rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       hdmirx {
+               hdmirx_det: hdmirx-det {
+                       rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       wireless-wlan {
+               wifi_host_wake_irq: wifi-host-wake-irq {
+                       rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+
+       bt {
+               bt_enable_h: bt-enable-h {
+                       rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_host_wake_l: bt-host-wake-l {
+                       rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_l: bt-wake-l {
+                       rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       dp {
+               dp1_hpd: dp1-hpd {
+                       rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pwm14 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm14m1_pins>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&avcc_1v8_s0>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       mmc-hs200-1_8v;
+       no-sdio;
+       no-sd;
+       non-removable;
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       disable-wp;
+       max-frequency = <200000000>;
+       no-sdio;
+       no-mmc;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_det>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_3v3_s3>;
+       vqmmc-supply = <&vccio_sd_s0>;
+       status = "okay";
+};
+
+/* M.2 E-KEY */
+&sdio {
+       broken-cd;
+       bus-width = <4>;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       max-frequency = <150000000>;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       no-sd;
+       no-mmc;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdiom0_pins>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_ekey>;
+       status = "okay";
+};
+
+&sfc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&fspim2_pins>;
+       status = "okay";
+
+       spi_flash: flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0x0>;
+               spi-max-frequency = <50000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
+&spi2 {
+       status = "okay";
+       assigned-clocks = <&cru CLK_SPI2>;
+       assigned-clock-rates = <200000000>;
+       num-cs = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
+
+       pmic@0 {
+               compatible = "rockchip,rk806";
+               reg = <0x0>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
+                           <&rk806_dvs2_null>, <&rk806_dvs3_null>;
+               spi-max-frequency = <1000000>;
+               system-power-controller;
+
+               vcc1-supply = <&vcc5v0_sys>;
+               vcc2-supply = <&vcc5v0_sys>;
+               vcc3-supply = <&vcc5v0_sys>;
+               vcc4-supply = <&vcc5v0_sys>;
+               vcc5-supply = <&vcc5v0_sys>;
+               vcc6-supply = <&vcc5v0_sys>;
+               vcc7-supply = <&vcc5v0_sys>;
+               vcc8-supply = <&vcc5v0_sys>;
+               vcc9-supply = <&vcc5v0_sys>;
+               vcc10-supply = <&vcc5v0_sys>;
+               vcc11-supply = <&vcc_2v0_pldo_s3>;
+               vcc12-supply = <&vcc5v0_sys>;
+               vcc13-supply = <&vcc_1v1_nldo_s3>;
+               vcc14-supply = <&vcc_1v1_nldo_s3>;
+               vcca-supply = <&vcc5v0_sys>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl1";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs2_null: dvs2-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs3_null: dvs3-null-pins {
+                       pins = "gpio_pwrctrl3";
+                       function = "pin_fun0";
+               };
+
+               regulators {
+                       vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_gpu_s0";
+                               regulator-enable-ramp-delay = <400>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_cpu_lit_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_log_s0: dcdc-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_log_s0";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_vdenc_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_ddr_s0: dcdc-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdd2_ddr_s3: dcdc-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vdd2_ddr_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_2v0_pldo_s3: dcdc-reg7 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_2v0_pldo_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <2000000>;
+                               };
+                       };
+
+                       vcc_3v3_s3: dcdc-reg8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc_3v3_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vddq_ddr_s0: dcdc-reg9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vddq_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3: dcdc-reg10 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avcc_1v8_s0: pldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "avcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc_1v8_s0: pldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avdd_1v2_s0: pldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-name = "avdd_1v2_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3_s0: pldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vcc_3v3_s0";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vccio_sd_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       pldo6_s3: pldo-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "pldo6_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_0v75_s3: nldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_ddr_pll_s0: nldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_ddr_pll_s0";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       avdd_0v75_s0: nldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "avdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v85_s0: nldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_0v85_s0";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <837500>;
+                               };
+                       };
+
+                       vdd_0v75_s0: nldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+               };
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2m0_xfer>;
+       status = "okay";
+};
+
+/* Connected to M.2 E-key */
+&uart6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart6m1_xfer &uart6m1_ctsn &uart6m1_rtsn>;
+       status = "okay";
+};
+
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
+&u2phy1 {
+       status = "okay";
+};
+
+&u2phy1_otg {
+       /* connected to USB3 hub, which is powered by vcc5v0_usb12 */
+       phy-supply = <&vcc5v0_usb12>;
+       status = "okay";
+};
+
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy2_host {
+       /* connected to USB2 hub, which is powered by vcc5v0_usb20 */
+       phy-supply = <&vcc5v0_usb20>;
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy3_host {
+       phy-supply = <&vcc5v0_usb20>;
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dwc3_0_role_switch: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_role_sw>;
+               };
+       };
+};
+
+&usb_host1_xhci {
+       dr_mode = "host";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       /* 2.0 hub on port 1 */
+       hub_2_0: hub@1 {
+               compatible = "usb5e3,610";
+               reg = <1>;
+               peer-hub = <&hub_3_0>;
+               vdd-supply = <&vcc_3v3_s3>;
+       };
+
+       /* 3.0 hub on port 4 */
+       hub_3_0: hub@2 {
+               compatible = "usb5e3,620";
+               reg = <2>;
+               peer-hub = <&hub_2_0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&gl3523_reset>;
+               reset-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;
+               vdd-supply = <&vcc_3v3_s3>;
+       };
+};
+
+&usbdp_phy0 {
+       mode-switch;
+       orientation-switch;
+       sbu1-dc-gpios = <&gpio4 RK_PB7 GPIO_ACTIVE_HIGH>;
+       sbu2-dc-gpios = <&gpio4 RK_PC0 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               usbdp_phy0_orientation_switch: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_orien_sw>;
+               };
+
+               usbdp_phy0_dp_altmode_mux: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&dp_altmode_mux>;
+               };
+       };
+};
+
+&usbdp_phy1 {
+       rockchip,dp-lane-mux = <2 3>;
+       status = "okay";
+};
diff --git a/src/arm64/rockchip/rk3588-rock-5b-pcie-ep.dtso b/src/arm64/rockchip/rk3588-rock-5b-pcie-ep.dtso
new file mode 100644 (file)
index 0000000..672d748
--- /dev/null
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * DT-overlay to run the PCIe3_4L Dual Mode controller in Endpoint mode
+ * in the SRNS (Separate Reference Clock No Spread) configuration.
+ *
+ * NOTE: If using a setup with two ROCK 5B:s, with one board running in
+ * RC mode and the other board running in EP mode, see also the device
+ * tree overlay: rk3588-rock-5b-pcie-srns.dtso.
+ */
+
+/dts-v1/;
+/plugin/;
+
+&pcie30phy {
+       rockchip,rx-common-refclk-mode = <0 0 0 0>;
+};
+
+&pcie3x4 {
+       status = "disabled";
+};
+
+&pcie3x4_ep {
+       vpcie3v3-supply = <&vcc3v3_pcie30>;
+       status = "okay";
+};
diff --git a/src/arm64/rockchip/rk3588-rock-5b-pcie-srns.dtso b/src/arm64/rockchip/rk3588-rock-5b-pcie-srns.dtso
new file mode 100644 (file)
index 0000000..1a0f1af
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * DT-overlay to run the PCIe3_4L Dual Mode controller in Root Complex
+ * mode in the SRNS (Separate Reference Clock No Spread) configuration.
+ *
+ * This device tree overlay is only needed (on the RC side) when running
+ * a setup with two ROCK 5B:s, with one board running in RC mode and the
+ * other board running in EP mode.
+ */
+
+/dts-v1/;
+/plugin/;
+
+&pcie30phy {
+       rockchip,rx-common-refclk-mode = <0 0 0 0>;
+};
index 2e7512676b7e13bbcb3a4ba25d885590c8086728..966bbc582d89b89c0c4847132ce789d6af1cb847 100644 (file)
@@ -52,7 +52,7 @@
 
        fan: pwm-fan {
                compatible = "pwm-fan";
-               cooling-levels = <0 95 145 195 255>;
+               cooling-levels = <0 120 150 180 210 240 255>;
                fan-supply = <&vcc5v0_sys>;
                pwms = <&pwm1 0 50000 0>;
                #cooling-cells = <2>;
                shutdown-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
        };
 
+       rfkill-bt {
+               compatible = "rfkill-gpio";
+               label = "rfkill-m2-bt";
+               radio-type = "bluetooth";
+               shutdown-gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>;
+       };
+
        vcc3v3_pcie2x1l0: vcc3v3-pcie2x1l0-regulator {
                compatible = "regulator-fixed";
                enable-active-high;
        };
 };
 
+&package_thermal {
+       polling-delay = <1000>;
+
+       trips {
+               package_fan0: package-fan0 {
+                       temperature = <55000>;
+                       hysteresis = <2000>;
+                       type = "active";
+               };
+
+               package_fan1: package-fan1 {
+                       temperature = <65000>;
+                       hysteresis = <2000>;
+                       type = "active";
+               };
+       };
+
+       cooling-maps {
+               map1 {
+                       trip = <&package_fan0>;
+                       cooling-device = <&fan THERMAL_NO_LIMIT 1>;
+               };
+
+               map2 {
+                       trip = <&package_fan1>;
+                       cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
+               };
+       };
+};
+
 &pcie2x1l0 {
        pinctrl-names = "default";
        pinctrl-0 = <&pcie2_0_rst>;
        status = "okay";
 };
 
+&sfc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&fspim2_pins>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <104000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
 &uart6 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart6m1_xfer &uart6m1_ctsn &uart6m1_rtsn>;
        };
 };
 
+&tsadc {
+       status = "okay";
+};
+
 &uart2 {
        pinctrl-0 = <&uart2m0_xfer>;
        status = "okay";
index 9090c5c99f2afba1eb6a2b8035cad986a6834528..d0021524e7f958016b322182ed5b9d139d95f8fa 100644 (file)
        };
 };
 
+&tsadc {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
index 6b9206ce4a03bf99831081fb81a936c4d5d56eeb..dbaa94ca69f47628a97d263684ad62cf746b407f 100644 (file)
 &mdio1 {
        rgmii_phy: ethernet-phy@1 {
                /* RTL8211F */
-               compatible = "ethernet-phy-id001c.c916",
-                            "ethernet-phy-ieee802.3-c22";
+               compatible = "ethernet-phy-id001c.c916";
                reg = <0x1>;
                pinctrl-names = "default";
                pinctrl-0 = <&rtl8211f_rst>;
        };
 };
 
+&tsadc {
+       status = "okay";
+};
+
 &uart2 {
        pinctrl-0 = <&uart2m0_xfer>;
        status = "okay";
index 5984016b5f96de290d9840f81b5f55061e3448d0..7462cc1e1007fb15a69c2ecb91c5aee533f6f37d 100644 (file)
@@ -1,413 +1,8 @@
 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
- * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
+ * Copyright (c) 2022 Rockchip Electronics Co., Ltd.
+ *
  */
 
-#include "rk3588s.dtsi"
-#include "rk3588-pinctrl.dtsi"
-
-/ {
-       usb_host1_xhci: usb@fc400000 {
-               compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
-               reg = <0x0 0xfc400000 0x0 0x400000>;
-               interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru REF_CLK_USB3OTG1>, <&cru SUSPEND_CLK_USB3OTG1>,
-                        <&cru ACLK_USB3OTG1>;
-               clock-names = "ref_clk", "suspend_clk", "bus_clk";
-               dr_mode = "otg";
-               phys = <&u2phy1_otg>, <&usbdp_phy1 PHY_TYPE_USB3>;
-               phy-names = "usb2-phy", "usb3-phy";
-               phy_type = "utmi_wide";
-               power-domains = <&power RK3588_PD_USB>;
-               resets = <&cru SRST_A_USB3OTG1>;
-               snps,dis_enblslpm_quirk;
-               snps,dis-u2-freeclk-exists-quirk;
-               snps,dis-del-phy-power-chg-quirk;
-               snps,dis-tx-ipgap-linecheck-quirk;
-               status = "disabled";
-       };
-
-       pcie30_phy_grf: syscon@fd5b8000 {
-               compatible = "rockchip,rk3588-pcie3-phy-grf", "syscon";
-               reg = <0x0 0xfd5b8000 0x0 0x10000>;
-       };
-
-       pipe_phy1_grf: syscon@fd5c0000 {
-               compatible = "rockchip,rk3588-pipe-phy-grf", "syscon";
-               reg = <0x0 0xfd5c0000 0x0 0x100>;
-       };
-
-       usbdpphy1_grf: syscon@fd5cc000 {
-               compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
-               reg = <0x0 0xfd5cc000 0x0 0x4000>;
-       };
-
-       usb2phy1_grf: syscon@fd5d4000 {
-               compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
-               reg = <0x0 0xfd5d4000 0x0 0x4000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               u2phy1: usb2phy@4000 {
-                       compatible = "rockchip,rk3588-usb2phy";
-                       reg = <0x4000 0x10>;
-                       #clock-cells = <0>;
-                       clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
-                       clock-names = "phyclk";
-                       clock-output-names = "usb480m_phy1";
-                       interrupts = <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH 0>;
-                       resets = <&cru SRST_OTGPHY_U3_1>, <&cru SRST_P_USB2PHY_U3_1_GRF0>;
-                       reset-names = "phy", "apb";
-                       status = "disabled";
-
-                       u2phy1_otg: otg-port {
-                               #phy-cells = <0>;
-                               status = "disabled";
-                       };
-               };
-       };
-
-       i2s8_8ch: i2s@fddc8000 {
-               compatible = "rockchip,rk3588-i2s-tdm";
-               reg = <0x0 0xfddc8000 0x0 0x1000>;
-               interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru MCLK_I2S8_8CH_TX>, <&cru MCLK_I2S8_8CH_TX>, <&cru HCLK_I2S8_8CH>;
-               clock-names = "mclk_tx", "mclk_rx", "hclk";
-               assigned-clocks = <&cru CLK_I2S8_8CH_TX_SRC>;
-               assigned-clock-parents = <&cru PLL_AUPLL>;
-               dmas = <&dmac2 22>;
-               dma-names = "tx";
-               power-domains = <&power RK3588_PD_VO0>;
-               resets = <&cru SRST_M_I2S8_8CH_TX>;
-               reset-names = "tx-m";
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       i2s6_8ch: i2s@fddf4000 {
-               compatible = "rockchip,rk3588-i2s-tdm";
-               reg = <0x0 0xfddf4000 0x0 0x1000>;
-               interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru MCLK_I2S6_8CH_TX>, <&cru MCLK_I2S6_8CH_TX>, <&cru HCLK_I2S6_8CH>;
-               clock-names = "mclk_tx", "mclk_rx", "hclk";
-               assigned-clocks = <&cru CLK_I2S6_8CH_TX_SRC>;
-               assigned-clock-parents = <&cru PLL_AUPLL>;
-               dmas = <&dmac2 4>;
-               dma-names = "tx";
-               power-domains = <&power RK3588_PD_VO1>;
-               resets = <&cru SRST_M_I2S6_8CH_TX>;
-               reset-names = "tx-m";
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       i2s7_8ch: i2s@fddf8000 {
-               compatible = "rockchip,rk3588-i2s-tdm";
-               reg = <0x0 0xfddf8000 0x0 0x1000>;
-               interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru MCLK_I2S7_8CH_RX>, <&cru MCLK_I2S7_8CH_RX>, <&cru HCLK_I2S7_8CH>;
-               clock-names = "mclk_tx", "mclk_rx", "hclk";
-               assigned-clocks = <&cru CLK_I2S7_8CH_RX_SRC>;
-               assigned-clock-parents = <&cru PLL_AUPLL>;
-               dmas = <&dmac2 21>;
-               dma-names = "rx";
-               power-domains = <&power RK3588_PD_VO1>;
-               resets = <&cru SRST_M_I2S7_8CH_RX>;
-               reset-names = "rx-m";
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       i2s10_8ch: i2s@fde00000 {
-               compatible = "rockchip,rk3588-i2s-tdm";
-               reg = <0x0 0xfde00000 0x0 0x1000>;
-               interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru MCLK_I2S10_8CH_RX>, <&cru MCLK_I2S10_8CH_RX>, <&cru HCLK_I2S10_8CH>;
-               clock-names = "mclk_tx", "mclk_rx", "hclk";
-               assigned-clocks = <&cru CLK_I2S10_8CH_RX_SRC>;
-               assigned-clock-parents = <&cru PLL_AUPLL>;
-               dmas = <&dmac2 24>;
-               dma-names = "rx";
-               power-domains = <&power RK3588_PD_VO1>;
-               resets = <&cru SRST_M_I2S10_8CH_RX>;
-               reset-names = "rx-m";
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       pcie3x4: pcie@fe150000 {
-               compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
-               #address-cells = <3>;
-               #size-cells = <2>;
-               bus-range = <0x00 0x0f>;
-               clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>,
-                        <&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>,
-                        <&cru CLK_PCIE_AUX0>, <&cru CLK_PCIE4L_PIPE>;
-               clock-names = "aclk_mst", "aclk_slv",
-                             "aclk_dbi", "pclk",
-                             "aux", "pipe";
-               device_type = "pci";
-               interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "sys", "pmc", "msg", "legacy", "err";
-               #interrupt-cells = <1>;
-               interrupt-map-mask = <0 0 0 7>;
-               interrupt-map = <0 0 0 1 &pcie3x4_intc 0>,
-                               <0 0 0 2 &pcie3x4_intc 1>,
-                               <0 0 0 3 &pcie3x4_intc 2>,
-                               <0 0 0 4 &pcie3x4_intc 3>;
-               linux,pci-domain = <0>;
-               max-link-speed = <3>;
-               msi-map = <0x0000 &its1 0x0000 0x1000>;
-               num-lanes = <4>;
-               phys = <&pcie30phy>;
-               phy-names = "pcie-phy";
-               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>;
-               reg = <0xa 0x40000000 0x0 0x00400000>,
-                     <0x0 0xfe150000 0x0 0x00010000>,
-                     <0x0 0xf0000000 0x0 0x00100000>;
-               reg-names = "dbi", "apb", "config";
-               resets = <&cru SRST_PCIE0_POWER_UP>, <&cru SRST_P_PCIE0>;
-               reset-names = "pwr", "pipe";
-               status = "disabled";
-
-               pcie3x4_intc: legacy-interrupt-controller {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <1>;
-                       interrupt-parent = <&gic>;
-                       interrupts = <GIC_SPI 260 IRQ_TYPE_EDGE_RISING 0>;
-               };
-       };
-
-       pcie3x2: pcie@fe160000 {
-               compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
-               #address-cells = <3>;
-               #size-cells = <2>;
-               bus-range = <0x10 0x1f>;
-               clocks = <&cru ACLK_PCIE_2L_MSTR>, <&cru ACLK_PCIE_2L_SLV>,
-                        <&cru ACLK_PCIE_2L_DBI>, <&cru PCLK_PCIE_2L>,
-                        <&cru CLK_PCIE_AUX1>, <&cru CLK_PCIE2L_PIPE>;
-               clock-names = "aclk_mst", "aclk_slv",
-                             "aclk_dbi", "pclk",
-                             "aux", "pipe";
-               device_type = "pci";
-               interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "sys", "pmc", "msg", "legacy", "err";
-               #interrupt-cells = <1>;
-               interrupt-map-mask = <0 0 0 7>;
-               interrupt-map = <0 0 0 1 &pcie3x2_intc 0>,
-                               <0 0 0 2 &pcie3x2_intc 1>,
-                               <0 0 0 3 &pcie3x2_intc 2>,
-                               <0 0 0 4 &pcie3x2_intc 3>;
-               linux,pci-domain = <1>;
-               max-link-speed = <3>;
-               msi-map = <0x1000 &its1 0x1000 0x1000>;
-               num-lanes = <2>;
-               phys = <&pcie30phy>;
-               phy-names = "pcie-phy";
-               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>;
-               reg = <0xa 0x40400000 0x0 0x00400000>,
-                     <0x0 0xfe160000 0x0 0x00010000>,
-                     <0x0 0xf1000000 0x0 0x00100000>;
-               reg-names = "dbi", "apb", "config";
-               resets = <&cru SRST_PCIE1_POWER_UP>, <&cru SRST_P_PCIE1>;
-               reset-names = "pwr", "pipe";
-               status = "disabled";
-
-               pcie3x2_intc: legacy-interrupt-controller {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <1>;
-                       interrupt-parent = <&gic>;
-                       interrupts = <GIC_SPI 255 IRQ_TYPE_EDGE_RISING 0>;
-               };
-       };
-
-       pcie2x1l0: pcie@fe170000 {
-               compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
-               bus-range = <0x20 0x2f>;
-               clocks = <&cru ACLK_PCIE_1L0_MSTR>, <&cru ACLK_PCIE_1L0_SLV>,
-                        <&cru ACLK_PCIE_1L0_DBI>, <&cru PCLK_PCIE_1L0>,
-                        <&cru CLK_PCIE_AUX2>, <&cru CLK_PCIE1L0_PIPE>;
-               clock-names = "aclk_mst", "aclk_slv",
-                             "aclk_dbi", "pclk",
-                             "aux", "pipe";
-               device_type = "pci";
-               interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "sys", "pmc", "msg", "legacy", "err";
-               #interrupt-cells = <1>;
-               interrupt-map-mask = <0 0 0 7>;
-               interrupt-map = <0 0 0 1 &pcie2x1l0_intc 0>,
-                               <0 0 0 2 &pcie2x1l0_intc 1>,
-                               <0 0 0 3 &pcie2x1l0_intc 2>,
-                               <0 0 0 4 &pcie2x1l0_intc 3>;
-               linux,pci-domain = <2>;
-               max-link-speed = <2>;
-               msi-map = <0x2000 &its0 0x2000 0x1000>;
-               num-lanes = <1>;
-               phys = <&combphy1_ps PHY_TYPE_PCIE>;
-               phy-names = "pcie-phy";
-               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>;
-               reg = <0xa 0x40800000 0x0 0x00400000>,
-                     <0x0 0xfe170000 0x0 0x00010000>,
-                     <0x0 0xf2000000 0x0 0x00100000>;
-               reg-names = "dbi", "apb", "config";
-               resets = <&cru SRST_PCIE2_POWER_UP>, <&cru SRST_P_PCIE2>;
-               reset-names = "pwr", "pipe";
-               #address-cells = <3>;
-               #size-cells = <2>;
-               status = "disabled";
-
-               pcie2x1l0_intc: legacy-interrupt-controller {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <1>;
-                       interrupt-parent = <&gic>;
-                       interrupts = <GIC_SPI 240 IRQ_TYPE_EDGE_RISING 0>;
-               };
-       };
-
-       gmac0: ethernet@fe1b0000 {
-               compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
-               reg = <0x0 0xfe1b0000 0x0 0x10000>;
-               interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "macirq", "eth_wake_irq";
-               clocks = <&cru CLK_GMAC_125M>, <&cru CLK_GMAC_50M>,
-                        <&cru PCLK_GMAC0>, <&cru ACLK_GMAC0>,
-                        <&cru CLK_GMAC0_PTP_REF>;
-               clock-names = "stmmaceth", "clk_mac_ref",
-                             "pclk_mac", "aclk_mac",
-                             "ptp_ref";
-               power-domains = <&power RK3588_PD_GMAC>;
-               resets = <&cru SRST_A_GMAC0>;
-               reset-names = "stmmaceth";
-               rockchip,grf = <&sys_grf>;
-               rockchip,php-grf = <&php_grf>;
-               snps,axi-config = <&gmac0_stmmac_axi_setup>;
-               snps,mixed-burst;
-               snps,mtl-rx-config = <&gmac0_mtl_rx_setup>;
-               snps,mtl-tx-config = <&gmac0_mtl_tx_setup>;
-               snps,tso;
-               status = "disabled";
-
-               mdio0: mdio {
-                       compatible = "snps,dwmac-mdio";
-                       #address-cells = <0x1>;
-                       #size-cells = <0x0>;
-               };
-
-               gmac0_stmmac_axi_setup: stmmac-axi-config {
-                       snps,blen = <0 0 0 0 16 8 4>;
-                       snps,wr_osr_lmt = <4>;
-                       snps,rd_osr_lmt = <8>;
-               };
-
-               gmac0_mtl_rx_setup: rx-queues-config {
-                       snps,rx-queues-to-use = <2>;
-                       queue0 {};
-                       queue1 {};
-               };
-
-               gmac0_mtl_tx_setup: tx-queues-config {
-                       snps,tx-queues-to-use = <2>;
-                       queue0 {};
-                       queue1 {};
-               };
-       };
-
-       sata1: sata@fe220000 {
-               compatible = "rockchip,rk3588-dwc-ahci", "snps,dwc-ahci";
-               reg = <0 0xfe220000 0 0x1000>;
-               interrupts = <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_SATA1>, <&cru CLK_PMALIVE1>,
-                        <&cru CLK_RXOOB1>, <&cru CLK_PIPEPHY1_REF>,
-                        <&cru CLK_PIPEPHY1_PIPE_ASIC_G>;
-               clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
-               ports-implemented = <0x1>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-
-               sata-port@0 {
-                       reg = <0>;
-                       hba-port-cap = <HBA_PORT_FBSCP>;
-                       phys = <&combphy1_ps PHY_TYPE_SATA>;
-                       phy-names = "sata-phy";
-                       snps,rx-ts-max = <32>;
-                       snps,tx-ts-max = <32>;
-               };
-       };
-
-       usbdp_phy1: phy@fed90000 {
-               compatible = "rockchip,rk3588-usbdp-phy";
-               reg = <0x0 0xfed90000 0x0 0x10000>;
-               #phy-cells = <1>;
-               clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
-                        <&cru CLK_USBDP_PHY1_IMMORTAL>,
-                        <&cru PCLK_USBDPPHY1>,
-                        <&u2phy1>;
-               clock-names = "refclk", "immortal", "pclk", "utmi";
-               resets = <&cru SRST_USBDP_COMBO_PHY1_INIT>,
-                        <&cru SRST_USBDP_COMBO_PHY1_CMN>,
-                        <&cru SRST_USBDP_COMBO_PHY1_LANE>,
-                        <&cru SRST_USBDP_COMBO_PHY1_PCS>,
-                        <&cru SRST_P_USBDPPHY1>;
-               reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
-               rockchip,u2phy-grf = <&usb2phy1_grf>;
-               rockchip,usb-grf = <&usb_grf>;
-               rockchip,usbdpphy-grf = <&usbdpphy1_grf>;
-               rockchip,vo-grf = <&vo0_grf>;
-               status = "disabled";
-       };
-
-       combphy1_ps: phy@fee10000 {
-               compatible = "rockchip,rk3588-naneng-combphy";
-               reg = <0x0 0xfee10000 0x0 0x100>;
-               clocks = <&cru CLK_REF_PIPE_PHY1>, <&cru PCLK_PCIE_COMBO_PIPE_PHY1>,
-                        <&cru PCLK_PHP_ROOT>;
-               clock-names = "ref", "apb", "pipe";
-               assigned-clocks = <&cru CLK_REF_PIPE_PHY1>;
-               assigned-clock-rates = <100000000>;
-               #phy-cells = <1>;
-               resets = <&cru SRST_REF_PIPE_PHY1>, <&cru SRST_P_PCIE2_PHY1>;
-               reset-names = "phy", "apb";
-               rockchip,pipe-grf = <&php_grf>;
-               rockchip,pipe-phy-grf = <&pipe_phy1_grf>;
-               status = "disabled";
-       };
-
-       pcie30phy: phy@fee80000 {
-               compatible = "rockchip,rk3588-pcie3-phy";
-               reg = <0x0 0xfee80000 0x0 0x20000>;
-               #phy-cells = <0>;
-               clocks = <&cru PCLK_PCIE_COMBO_PIPE_PHY>;
-               clock-names = "pclk";
-               resets = <&cru SRST_PCIE30_PHY>;
-               reset-names = "phy";
-               rockchip,pipe-grf = <&php_grf>;
-               rockchip,phy-grf = <&pcie30_phy_grf>;
-               status = "disabled";
-       };
-};
+#include "rk3588-extra.dtsi"
+#include "rk3588-opp.dtsi"
index 38b9dbf38a21853d3693813c0eb835ecb83c5cab..bce72bac4503b5e5fc7c3d01a240eadf6d5aaae2 100644 (file)
@@ -4,4 +4,145 @@
  *
  */
 
-#include "rk3588.dtsi"
+#include "rk3588-extra.dtsi"
+
+/ {
+       cluster0_opp_table: opp-table-cluster0 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-1416000000 {
+                       opp-hz = /bits/ 64 <1416000000>;
+                       opp-microvolt = <750000 750000 950000>;
+                       clock-latency-ns = <40000>;
+                       opp-suspend;
+               };
+               opp-1608000000 {
+                       opp-hz = /bits/ 64 <1608000000>;
+                       opp-microvolt = <887500 887500 950000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1704000000 {
+                       opp-hz = /bits/ 64 <1704000000>;
+                       opp-microvolt = <937500 937500 950000>;
+                       clock-latency-ns = <40000>;
+               };
+       };
+
+       cluster1_opp_table: opp-table-cluster1 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-1416000000 {
+                       opp-hz = /bits/ 64 <1416000000>;
+                       opp-microvolt = <750000 750000 950000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1608000000 {
+                       opp-hz = /bits/ 64 <1608000000>;
+                       opp-microvolt = <787500 787500 950000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1800000000 {
+                       opp-hz = /bits/ 64 <1800000000>;
+                       opp-microvolt = <875000 875000 950000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-2016000000 {
+                       opp-hz = /bits/ 64 <2016000000>;
+                       opp-microvolt = <950000 950000 950000>;
+                       clock-latency-ns = <40000>;
+               };
+       };
+
+       cluster2_opp_table: opp-table-cluster2 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-1416000000 {
+                       opp-hz = /bits/ 64 <1416000000>;
+                       opp-microvolt = <750000 750000 950000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1608000000 {
+                       opp-hz = /bits/ 64 <1608000000>;
+                       opp-microvolt = <787500 787500 950000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1800000000 {
+                       opp-hz = /bits/ 64 <1800000000>;
+                       opp-microvolt = <875000 875000 950000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-2016000000 {
+                       opp-hz = /bits/ 64 <2016000000>;
+                       opp-microvolt = <950000 950000 950000>;
+                       clock-latency-ns = <40000>;
+               };
+       };
+
+       gpu_opp_table: opp-table {
+               compatible = "operating-points-v2";
+
+               opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-microvolt = <750000 750000 850000>;
+               };
+               opp-400000000 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <750000 750000 850000>;
+               };
+               opp-500000000 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-microvolt = <750000 750000 850000>;
+               };
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <750000 750000 850000>;
+               };
+               opp-700000000 {
+                       opp-hz = /bits/ 64 <700000000>;
+                       opp-microvolt = <750000 750000 850000>;
+               };
+               opp-850000000 {
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <787500 787500 850000>;
+               };
+       };
+};
+
+&cpu_b0 {
+       operating-points-v2 = <&cluster1_opp_table>;
+};
+
+&cpu_b1 {
+       operating-points-v2 = <&cluster1_opp_table>;
+};
+
+&cpu_b2 {
+       operating-points-v2 = <&cluster2_opp_table>;
+};
+
+&cpu_b3 {
+       operating-points-v2 = <&cluster2_opp_table>;
+};
+
+&cpu_l0 {
+       operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_l1 {
+       operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_l2 {
+       operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&cpu_l3 {
+       operating-points-v2 = <&cluster0_opp_table>;
+};
+
+&gpu {
+       operating-points-v2 = <&gpu_opp_table>;
+};
index 3b9a349362db479a87b60ad13499e817c718ae17..03ed48246d36a23e6405dd75bcc5bf55a4d6170c 100644 (file)
        status = "okay";
 };
 
+&sfc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&fspim0_pins>;
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <104000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
 &spi2 {
        status = "okay";
        assigned-clocks = <&cru CLK_SPI2>;
        };
 };
 
+&tsadc {
+       status = "okay";
+};
+
 &u2phy0 {
        status = "okay";
 };
index 6ac5ac8b48abbd0fe9b0778501a3b60abc507a71..c7fecf8fe7ec385a62a7549b4edcd010fe3a235f 100644 (file)
 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
- * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
+ * Copyright (c) 2022 Rockchip Electronics Co., Ltd.
+ *
  */
 
-#include <dt-bindings/clock/rockchip,rk3588-cru.h>
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-#include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/power/rk3588-power.h>
-#include <dt-bindings/reset/rockchip,rk3588-cru.h>
-#include <dt-bindings/phy/phy.h>
-#include <dt-bindings/ata/ahci.h>
-
-/ {
-       compatible = "rockchip,rk3588";
-
-       interrupt-parent = <&gic>;
-       #address-cells = <2>;
-       #size-cells = <2>;
-
-       aliases {
-               gpio0 = &gpio0;
-               gpio1 = &gpio1;
-               gpio2 = &gpio2;
-               gpio3 = &gpio3;
-               gpio4 = &gpio4;
-               i2c0 = &i2c0;
-               i2c1 = &i2c1;
-               i2c2 = &i2c2;
-               i2c3 = &i2c3;
-               i2c4 = &i2c4;
-               i2c5 = &i2c5;
-               i2c6 = &i2c6;
-               i2c7 = &i2c7;
-               i2c8 = &i2c8;
-               serial0 = &uart0;
-               serial1 = &uart1;
-               serial2 = &uart2;
-               serial3 = &uart3;
-               serial4 = &uart4;
-               serial5 = &uart5;
-               serial6 = &uart6;
-               serial7 = &uart7;
-               serial8 = &uart8;
-               serial9 = &uart9;
-               spi0 = &spi0;
-               spi1 = &spi1;
-               spi2 = &spi2;
-               spi3 = &spi3;
-               spi4 = &spi4;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu-map {
-                       cluster0 {
-                               core0 {
-                                       cpu = <&cpu_l0>;
-                               };
-                               core1 {
-                                       cpu = <&cpu_l1>;
-                               };
-                               core2 {
-                                       cpu = <&cpu_l2>;
-                               };
-                               core3 {
-                                       cpu = <&cpu_l3>;
-                               };
-                       };
-                       cluster1 {
-                               core0 {
-                                       cpu = <&cpu_b0>;
-                               };
-                               core1 {
-                                       cpu = <&cpu_b1>;
-                               };
-                       };
-                       cluster2 {
-                               core0 {
-                                       cpu = <&cpu_b2>;
-                               };
-                               core1 {
-                                       cpu = <&cpu_b3>;
-                               };
-                       };
-               };
-
-               cpu_l0: cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a55";
-                       reg = <0x0>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <530>;
-                       clocks = <&scmi_clk SCMI_CLK_CPUL>;
-                       assigned-clocks = <&scmi_clk SCMI_CLK_CPUL>;
-                       assigned-clock-rates = <816000000>;
-                       cpu-idle-states = <&CPU_SLEEP>;
-                       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>;
-                       dynamic-power-coefficient = <228>;
-                       #cooling-cells = <2>;
-               };
-
-               cpu_l1: cpu@100 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a55";
-                       reg = <0x100>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <530>;
-                       clocks = <&scmi_clk SCMI_CLK_CPUL>;
-                       cpu-idle-states = <&CPU_SLEEP>;
-                       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>;
-                       dynamic-power-coefficient = <228>;
-                       #cooling-cells = <2>;
-               };
-
-               cpu_l2: cpu@200 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a55";
-                       reg = <0x200>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <530>;
-                       clocks = <&scmi_clk SCMI_CLK_CPUL>;
-                       cpu-idle-states = <&CPU_SLEEP>;
-                       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>;
-                       dynamic-power-coefficient = <228>;
-                       #cooling-cells = <2>;
-               };
-
-               cpu_l3: cpu@300 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a55";
-                       reg = <0x300>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <530>;
-                       clocks = <&scmi_clk SCMI_CLK_CPUL>;
-                       cpu-idle-states = <&CPU_SLEEP>;
-                       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>;
-                       dynamic-power-coefficient = <228>;
-                       #cooling-cells = <2>;
-               };
-
-               cpu_b0: cpu@400 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a76";
-                       reg = <0x400>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <1024>;
-                       clocks = <&scmi_clk SCMI_CLK_CPUB01>;
-                       assigned-clocks = <&scmi_clk SCMI_CLK_CPUB01>;
-                       assigned-clock-rates = <816000000>;
-                       cpu-idle-states = <&CPU_SLEEP>;
-                       i-cache-size = <65536>;
-                       i-cache-line-size = <64>;
-                       i-cache-sets = <256>;
-                       d-cache-size = <65536>;
-                       d-cache-line-size = <64>;
-                       d-cache-sets = <256>;
-                       next-level-cache = <&l2_cache_b0>;
-                       dynamic-power-coefficient = <416>;
-                       #cooling-cells = <2>;
-               };
-
-               cpu_b1: cpu@500 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a76";
-                       reg = <0x500>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <1024>;
-                       clocks = <&scmi_clk SCMI_CLK_CPUB01>;
-                       cpu-idle-states = <&CPU_SLEEP>;
-                       i-cache-size = <65536>;
-                       i-cache-line-size = <64>;
-                       i-cache-sets = <256>;
-                       d-cache-size = <65536>;
-                       d-cache-line-size = <64>;
-                       d-cache-sets = <256>;
-                       next-level-cache = <&l2_cache_b1>;
-                       dynamic-power-coefficient = <416>;
-                       #cooling-cells = <2>;
-               };
-
-               cpu_b2: cpu@600 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a76";
-                       reg = <0x600>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <1024>;
-                       clocks = <&scmi_clk SCMI_CLK_CPUB23>;
-                       assigned-clocks = <&scmi_clk SCMI_CLK_CPUB23>;
-                       assigned-clock-rates = <816000000>;
-                       cpu-idle-states = <&CPU_SLEEP>;
-                       i-cache-size = <65536>;
-                       i-cache-line-size = <64>;
-                       i-cache-sets = <256>;
-                       d-cache-size = <65536>;
-                       d-cache-line-size = <64>;
-                       d-cache-sets = <256>;
-                       next-level-cache = <&l2_cache_b2>;
-                       dynamic-power-coefficient = <416>;
-                       #cooling-cells = <2>;
-               };
-
-               cpu_b3: cpu@700 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a76";
-                       reg = <0x700>;
-                       enable-method = "psci";
-                       capacity-dmips-mhz = <1024>;
-                       clocks = <&scmi_clk SCMI_CLK_CPUB23>;
-                       cpu-idle-states = <&CPU_SLEEP>;
-                       i-cache-size = <65536>;
-                       i-cache-line-size = <64>;
-                       i-cache-sets = <256>;
-                       d-cache-size = <65536>;
-                       d-cache-line-size = <64>;
-                       d-cache-sets = <256>;
-                       next-level-cache = <&l2_cache_b3>;
-                       dynamic-power-coefficient = <416>;
-                       #cooling-cells = <2>;
-               };
-
-               idle-states {
-                       entry-method = "psci";
-                       CPU_SLEEP: cpu-sleep {
-                               compatible = "arm,idle-state";
-                               local-timer-stop;
-                               arm,psci-suspend-param = <0x0010000>;
-                               entry-latency-us = <100>;
-                               exit-latency-us = <120>;
-                               min-residency-us = <1000>;
-                       };
-               };
-
-               l2_cache_l0: l2-cache-l0 {
-                       compatible = "cache";
-                       cache-size = <131072>;
-                       cache-line-size = <64>;
-                       cache-sets = <512>;
-                       cache-level = <2>;
-                       cache-unified;
-                       next-level-cache = <&l3_cache>;
-               };
-
-               l2_cache_l1: l2-cache-l1 {
-                       compatible = "cache";
-                       cache-size = <131072>;
-                       cache-line-size = <64>;
-                       cache-sets = <512>;
-                       cache-level = <2>;
-                       cache-unified;
-                       next-level-cache = <&l3_cache>;
-               };
-
-               l2_cache_l2: l2-cache-l2 {
-                       compatible = "cache";
-                       cache-size = <131072>;
-                       cache-line-size = <64>;
-                       cache-sets = <512>;
-                       cache-level = <2>;
-                       cache-unified;
-                       next-level-cache = <&l3_cache>;
-               };
-
-               l2_cache_l3: l2-cache-l3 {
-                       compatible = "cache";
-                       cache-size = <131072>;
-                       cache-line-size = <64>;
-                       cache-sets = <512>;
-                       cache-level = <2>;
-                       cache-unified;
-                       next-level-cache = <&l3_cache>;
-               };
-
-               l2_cache_b0: l2-cache-b0 {
-                       compatible = "cache";
-                       cache-size = <524288>;
-                       cache-line-size = <64>;
-                       cache-sets = <1024>;
-                       cache-level = <2>;
-                       cache-unified;
-                       next-level-cache = <&l3_cache>;
-               };
-
-               l2_cache_b1: l2-cache-b1 {
-                       compatible = "cache";
-                       cache-size = <524288>;
-                       cache-line-size = <64>;
-                       cache-sets = <1024>;
-                       cache-level = <2>;
-                       cache-unified;
-                       next-level-cache = <&l3_cache>;
-               };
-
-               l2_cache_b2: l2-cache-b2 {
-                       compatible = "cache";
-                       cache-size = <524288>;
-                       cache-line-size = <64>;
-                       cache-sets = <1024>;
-                       cache-level = <2>;
-                       cache-unified;
-                       next-level-cache = <&l3_cache>;
-               };
-
-               l2_cache_b3: l2-cache-b3 {
-                       compatible = "cache";
-                       cache-size = <524288>;
-                       cache-line-size = <64>;
-                       cache-sets = <1024>;
-                       cache-level = <2>;
-                       cache-unified;
-                       next-level-cache = <&l3_cache>;
-               };
-
-               l3_cache: l3-cache {
-                       compatible = "cache";
-                       cache-size = <3145728>;
-                       cache-line-size = <64>;
-                       cache-sets = <4096>;
-                       cache-level = <3>;
-                       cache-unified;
-               };
-       };
-
-       display_subsystem: display-subsystem {
-               compatible = "rockchip,display-subsystem";
-               ports = <&vop_out>;
-       };
-
-       firmware {
-               optee: optee {
-                       compatible = "linaro,optee-tz";
-                       method = "smc";
-               };
-
-               scmi: scmi {
-                       compatible = "arm,scmi-smc";
-                       arm,smc-id = <0x82000010>;
-                       shmem = <&scmi_shmem>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       scmi_clk: protocol@14 {
-                               reg = <0x14>;
-                               #clock-cells = <1>;
-                       };
-
-                       scmi_reset: protocol@16 {
-                               reg = <0x16>;
-                               #reset-cells = <1>;
-                       };
-               };
-       };
-
-       pmu-a55 {
-               compatible = "arm,cortex-a55-pmu";
-               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition0>;
-       };
-
-       pmu-a76 {
-               compatible = "arm,cortex-a76-pmu";
-               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition1>;
-       };
-
-       psci {
-               compatible = "arm,psci-1.0";
-               method = "smc";
-       };
-
-       spll: clock-0 {
-               compatible = "fixed-clock";
-               clock-frequency = <702000000>;
-               clock-output-names = "spll";
-               #clock-cells = <0>;
-       };
-
-       timer {
-               compatible = "arm,armv8-timer";
-               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_PPI 12 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "sec-phys", "phys", "virt", "hyp-phys", "hyp-virt";
-       };
-
-       xin24m: clock-1 {
-               compatible = "fixed-clock";
-               clock-frequency = <24000000>;
-               clock-output-names = "xin24m";
-               #clock-cells = <0>;
-       };
-
-       xin32k: clock-2 {
-               compatible = "fixed-clock";
-               clock-frequency = <32768>;
-               clock-output-names = "xin32k";
-               #clock-cells = <0>;
-       };
-
-       pmu_sram: sram@10f000 {
-               compatible = "mmio-sram";
-               reg = <0x0 0x0010f000 0x0 0x100>;
-               ranges = <0 0x0 0x0010f000 0x100>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               scmi_shmem: sram@0 {
-                       compatible = "arm,scmi-shmem";
-                       reg = <0x0 0x100>;
-               };
-       };
-
-       gpu: gpu@fb000000 {
-               compatible = "rockchip,rk3588-mali", "arm,mali-valhall-csf";
-               reg = <0x0 0xfb000000 0x0 0x200000>;
-               #cooling-cells = <2>;
-               assigned-clocks = <&scmi_clk SCMI_CLK_GPU>;
-               assigned-clock-rates = <200000000>;
-               clocks = <&cru CLK_GPU>, <&cru CLK_GPU_COREGROUP>,
-                        <&cru CLK_GPU_STACKS>;
-               clock-names = "core", "coregroup", "stacks";
-               dynamic-power-coefficient = <2982>;
-               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "job", "mmu", "gpu";
-               operating-points-v2 = <&gpu_opp_table>;
-               power-domains = <&power RK3588_PD_GPU>;
-               status = "disabled";
-
-               gpu_opp_table: opp-table {
-                       compatible = "operating-points-v2";
-
-                       opp-300000000 {
-                               opp-hz = /bits/ 64 <300000000>;
-                               opp-microvolt = <675000 675000 850000>;
-                       };
-                       opp-400000000 {
-                               opp-hz = /bits/ 64 <400000000>;
-                               opp-microvolt = <675000 675000 850000>;
-                       };
-                       opp-500000000 {
-                               opp-hz = /bits/ 64 <500000000>;
-                               opp-microvolt = <675000 675000 850000>;
-                       };
-                       opp-600000000 {
-                               opp-hz = /bits/ 64 <600000000>;
-                               opp-microvolt = <675000 675000 850000>;
-                       };
-                       opp-700000000 {
-                               opp-hz = /bits/ 64 <700000000>;
-                               opp-microvolt = <700000 700000 850000>;
-                       };
-                       opp-800000000 {
-                               opp-hz = /bits/ 64 <800000000>;
-                               opp-microvolt = <750000 750000 850000>;
-                       };
-                       opp-900000000 {
-                               opp-hz = /bits/ 64 <900000000>;
-                               opp-microvolt = <800000 800000 850000>;
-                       };
-                       opp-1000000000 {
-                               opp-hz = /bits/ 64 <1000000000>;
-                               opp-microvolt = <850000 850000 850000>;
-                       };
-               };
-       };
-
-       usb_host0_xhci: usb@fc000000 {
-               compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
-               reg = <0x0 0xfc000000 0x0 0x400000>;
-               interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru REF_CLK_USB3OTG0>, <&cru SUSPEND_CLK_USB3OTG0>,
-                        <&cru ACLK_USB3OTG0>;
-               clock-names = "ref_clk", "suspend_clk", "bus_clk";
-               dr_mode = "otg";
-               phys = <&u2phy0_otg>, <&usbdp_phy0 PHY_TYPE_USB3>;
-               phy-names = "usb2-phy", "usb3-phy";
-               phy_type = "utmi_wide";
-               power-domains = <&power RK3588_PD_USB>;
-               resets = <&cru SRST_A_USB3OTG0>;
-               snps,dis_enblslpm_quirk;
-               snps,dis-u1-entry-quirk;
-               snps,dis-u2-entry-quirk;
-               snps,dis-u2-freeclk-exists-quirk;
-               snps,dis-del-phy-power-chg-quirk;
-               snps,dis-tx-ipgap-linecheck-quirk;
-               status = "disabled";
-       };
-
-       usb_host0_ehci: usb@fc800000 {
-               compatible = "rockchip,rk3588-ehci", "generic-ehci";
-               reg = <0x0 0xfc800000 0x0 0x40000>;
-               interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&cru ACLK_USB>, <&u2phy2>;
-               phys = <&u2phy2_host>;
-               phy-names = "usb";
-               power-domains = <&power RK3588_PD_USB>;
-               status = "disabled";
-       };
-
-       usb_host0_ohci: usb@fc840000 {
-               compatible = "rockchip,rk3588-ohci", "generic-ohci";
-               reg = <0x0 0xfc840000 0x0 0x40000>;
-               interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&cru ACLK_USB>, <&u2phy2>;
-               phys = <&u2phy2_host>;
-               phy-names = "usb";
-               power-domains = <&power RK3588_PD_USB>;
-               status = "disabled";
-       };
-
-       usb_host1_ehci: usb@fc880000 {
-               compatible = "rockchip,rk3588-ehci", "generic-ehci";
-               reg = <0x0 0xfc880000 0x0 0x40000>;
-               interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&cru ACLK_USB>, <&u2phy3>;
-               phys = <&u2phy3_host>;
-               phy-names = "usb";
-               power-domains = <&power RK3588_PD_USB>;
-               status = "disabled";
-       };
-
-       usb_host1_ohci: usb@fc8c0000 {
-               compatible = "rockchip,rk3588-ohci", "generic-ohci";
-               reg = <0x0 0xfc8c0000 0x0 0x40000>;
-               interrupts = <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru HCLK_HOST1>, <&cru HCLK_HOST_ARB1>, <&cru ACLK_USB>, <&u2phy3>;
-               phys = <&u2phy3_host>;
-               phy-names = "usb";
-               power-domains = <&power RK3588_PD_USB>;
-               status = "disabled";
-       };
-
-       usb_host2_xhci: usb@fcd00000 {
-               compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
-               reg = <0x0 0xfcd00000 0x0 0x400000>;
-               interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru REF_CLK_USB3OTG2>, <&cru SUSPEND_CLK_USB3OTG2>,
-                        <&cru ACLK_USB3OTG2>, <&cru CLK_UTMI_OTG2>,
-                        <&cru CLK_PIPEPHY2_PIPE_U3_G>;
-               clock-names = "ref_clk", "suspend_clk", "bus_clk", "utmi", "pipe";
-               dr_mode = "host";
-               phys = <&combphy2_psu PHY_TYPE_USB3>;
-               phy-names = "usb3-phy";
-               phy_type = "utmi_wide";
-               resets = <&cru SRST_A_USB3OTG2>;
-               snps,dis_enblslpm_quirk;
-               snps,dis-u2-freeclk-exists-quirk;
-               snps,dis-del-phy-power-chg-quirk;
-               snps,dis-tx-ipgap-linecheck-quirk;
-               snps,dis_rxdet_inp3_quirk;
-               status = "disabled";
-       };
-
-       mmu600_pcie: iommu@fc900000 {
-               compatible = "arm,smmu-v3";
-               reg = <0x0 0xfc900000 0x0 0x200000>;
-               interrupts = <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
-               #iommu-cells = <1>;
-               status = "disabled";
-       };
-
-       mmu600_php: iommu@fcb00000 {
-               compatible = "arm,smmu-v3";
-               reg = <0x0 0xfcb00000 0x0 0x200000>;
-               interrupts = <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
-               #iommu-cells = <1>;
-               status = "disabled";
-       };
-
-       pmu1grf: syscon@fd58a000 {
-               compatible = "rockchip,rk3588-pmugrf", "syscon", "simple-mfd";
-               reg = <0x0 0xfd58a000 0x0 0x10000>;
-       };
-
-       sys_grf: syscon@fd58c000 {
-               compatible = "rockchip,rk3588-sys-grf", "syscon";
-               reg = <0x0 0xfd58c000 0x0 0x1000>;
-       };
-
-       vop_grf: syscon@fd5a4000 {
-               compatible = "rockchip,rk3588-vop-grf", "syscon";
-               reg = <0x0 0xfd5a4000 0x0 0x2000>;
-       };
-
-       vo0_grf: syscon@fd5a6000 {
-               compatible = "rockchip,rk3588-vo-grf", "syscon";
-               reg = <0x0 0xfd5a6000 0x0 0x2000>;
-               clocks = <&cru PCLK_VO0GRF>;
-       };
-
-       vo1_grf: syscon@fd5a8000 {
-               compatible = "rockchip,rk3588-vo-grf", "syscon";
-               reg = <0x0 0xfd5a8000 0x0 0x100>;
-               clocks = <&cru PCLK_VO1GRF>;
-       };
-
-       usb_grf: syscon@fd5ac000 {
-               compatible = "rockchip,rk3588-usb-grf", "syscon";
-               reg = <0x0 0xfd5ac000 0x0 0x4000>;
-       };
-
-       php_grf: syscon@fd5b0000 {
-               compatible = "rockchip,rk3588-php-grf", "syscon";
-               reg = <0x0 0xfd5b0000 0x0 0x1000>;
-       };
-
-       pipe_phy0_grf: syscon@fd5bc000 {
-               compatible = "rockchip,rk3588-pipe-phy-grf", "syscon";
-               reg = <0x0 0xfd5bc000 0x0 0x100>;
-       };
-
-       pipe_phy2_grf: syscon@fd5c4000 {
-               compatible = "rockchip,rk3588-pipe-phy-grf", "syscon";
-               reg = <0x0 0xfd5c4000 0x0 0x100>;
-       };
-
-       usbdpphy0_grf: syscon@fd5c8000 {
-               compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
-               reg = <0x0 0xfd5c8000 0x0 0x4000>;
-       };
-
-       usb2phy0_grf: syscon@fd5d0000 {
-               compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
-               reg = <0x0 0xfd5d0000 0x0 0x4000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               u2phy0: usb2phy@0 {
-                       compatible = "rockchip,rk3588-usb2phy";
-                       reg = <0x0 0x10>;
-                       #clock-cells = <0>;
-                       clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
-                       clock-names = "phyclk";
-                       clock-output-names = "usb480m_phy0";
-                       interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH 0>;
-                       resets = <&cru SRST_OTGPHY_U3_0>, <&cru SRST_P_USB2PHY_U3_0_GRF0>;
-                       reset-names = "phy", "apb";
-                       status = "disabled";
-
-                       u2phy0_otg: otg-port {
-                               #phy-cells = <0>;
-                               status = "disabled";
-                       };
-               };
-       };
-
-       usb2phy2_grf: syscon@fd5d8000 {
-               compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
-               reg = <0x0 0xfd5d8000 0x0 0x4000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               u2phy2: usb2phy@8000 {
-                       compatible = "rockchip,rk3588-usb2phy";
-                       reg = <0x8000 0x10>;
-                       #clock-cells = <0>;
-                       clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
-                       clock-names = "phyclk";
-                       clock-output-names = "usb480m_phy2";
-                       interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH 0>;
-                       resets = <&cru SRST_OTGPHY_U2_0>, <&cru SRST_P_USB2PHY_U2_0_GRF0>;
-                       reset-names = "phy", "apb";
-                       status = "disabled";
-
-                       u2phy2_host: host-port {
-                               #phy-cells = <0>;
-                               status = "disabled";
-                       };
-               };
-       };
-
-       usb2phy3_grf: syscon@fd5dc000 {
-               compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
-               reg = <0x0 0xfd5dc000 0x0 0x4000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               u2phy3: usb2phy@c000 {
-                       compatible = "rockchip,rk3588-usb2phy";
-                       reg = <0xc000 0x10>;
-                       #clock-cells = <0>;
-                       clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
-                       clock-names = "phyclk";
-                       clock-output-names = "usb480m_phy3";
-                       interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH 0>;
-                       resets = <&cru SRST_OTGPHY_U2_1>, <&cru SRST_P_USB2PHY_U2_1_GRF0>;
-                       reset-names = "phy", "apb";
-                       status = "disabled";
-
-                       u2phy3_host: host-port {
-                               #phy-cells = <0>;
-                               status = "disabled";
-                       };
-               };
-       };
-
-       hdptxphy0_grf: syscon@fd5e0000 {
-               compatible = "rockchip,rk3588-hdptxphy-grf", "syscon";
-               reg = <0x0 0xfd5e0000 0x0 0x100>;
-       };
-
-       ioc: syscon@fd5f0000 {
-               compatible = "rockchip,rk3588-ioc", "syscon";
-               reg = <0x0 0xfd5f0000 0x0 0x10000>;
-       };
-
-       system_sram1: sram@fd600000 {
-               compatible = "mmio-sram";
-               reg = <0x0 0xfd600000 0x0 0x100000>;
-               ranges = <0x0 0x0 0xfd600000 0x100000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-       };
-
-       cru: clock-controller@fd7c0000 {
-               compatible = "rockchip,rk3588-cru";
-               reg = <0x0 0xfd7c0000 0x0 0x5c000>;
-               assigned-clocks =
-                       <&cru PLL_PPLL>, <&cru PLL_AUPLL>,
-                       <&cru PLL_NPLL>, <&cru PLL_GPLL>,
-                       <&cru ACLK_CENTER_ROOT>,
-                       <&cru HCLK_CENTER_ROOT>, <&cru ACLK_CENTER_LOW_ROOT>,
-                       <&cru ACLK_TOP_ROOT>, <&cru PCLK_TOP_ROOT>,
-                       <&cru ACLK_LOW_TOP_ROOT>, <&cru PCLK_PMU0_ROOT>,
-                       <&cru HCLK_PMU_CM0_ROOT>, <&cru ACLK_VOP>,
-                       <&cru ACLK_BUS_ROOT>, <&cru CLK_150M_SRC>,
-                       <&cru CLK_GPU>;
-               assigned-clock-rates =
-                       <1100000000>, <786432000>,
-                       <850000000>, <1188000000>,
-                       <702000000>,
-                       <400000000>, <500000000>,
-                       <800000000>, <100000000>,
-                       <400000000>, <100000000>,
-                       <200000000>, <500000000>,
-                       <375000000>, <150000000>,
-                       <200000000>;
-               rockchip,grf = <&php_grf>;
-               #clock-cells = <1>;
-               #reset-cells = <1>;
-       };
-
-       i2c0: i2c@fd880000 {
-               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfd880000 0x0 0x1000>;
-               interrupts = <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru CLK_I2C0>, <&cru PCLK_I2C0>;
-               clock-names = "i2c", "pclk";
-               pinctrl-0 = <&i2c0m0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       uart0: serial@fd890000 {
-               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfd890000 0x0 0x100>;
-               interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 6>, <&dmac0 7>;
-               dma-names = "tx", "rx";
-               pinctrl-0 = <&uart0m1_xfer>;
-               pinctrl-names = "default";
-               reg-shift = <2>;
-               reg-io-width = <4>;
-               status = "disabled";
-       };
-
-       pwm0: pwm@fd8b0000 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfd8b0000 0x0 0x10>;
-               clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm0m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm1: pwm@fd8b0010 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfd8b0010 0x0 0x10>;
-               clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm1m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm2: pwm@fd8b0020 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfd8b0020 0x0 0x10>;
-               clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm2m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm3: pwm@fd8b0030 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfd8b0030 0x0 0x10>;
-               clocks = <&cru CLK_PMU1PWM>, <&cru PCLK_PMU1PWM>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm3m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pmu: power-management@fd8d8000 {
-               compatible = "rockchip,rk3588-pmu", "syscon", "simple-mfd";
-               reg = <0x0 0xfd8d8000 0x0 0x400>;
-
-               power: power-controller {
-                       compatible = "rockchip,rk3588-power-controller";
-                       #address-cells = <1>;
-                       #power-domain-cells = <1>;
-                       #size-cells = <0>;
-                       status = "okay";
-
-                       /* These power domains are grouped by VD_NPU */
-                       power-domain@RK3588_PD_NPU {
-                               reg = <RK3588_PD_NPU>;
-                               #power-domain-cells = <0>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               power-domain@RK3588_PD_NPUTOP {
-                                       reg = <RK3588_PD_NPUTOP>;
-                                       clocks = <&cru HCLK_NPU_ROOT>,
-                                                <&cru PCLK_NPU_ROOT>,
-                                                <&cru CLK_NPU_DSU0>,
-                                                <&cru HCLK_NPU_CM0_ROOT>;
-                                       pm_qos = <&qos_npu0_mwr>,
-                                                <&qos_npu0_mro>,
-                                                <&qos_mcu_npu>;
-                                       #power-domain-cells = <0>;
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-
-                                       power-domain@RK3588_PD_NPU1 {
-                                               reg = <RK3588_PD_NPU1>;
-                                               clocks = <&cru HCLK_NPU_ROOT>,
-                                                        <&cru PCLK_NPU_ROOT>,
-                                                        <&cru CLK_NPU_DSU0>;
-                                               pm_qos = <&qos_npu1>;
-                                               #power-domain-cells = <0>;
-                                       };
-                                       power-domain@RK3588_PD_NPU2 {
-                                               reg = <RK3588_PD_NPU2>;
-                                               clocks = <&cru HCLK_NPU_ROOT>,
-                                                        <&cru PCLK_NPU_ROOT>,
-                                                        <&cru CLK_NPU_DSU0>;
-                                               pm_qos = <&qos_npu2>;
-                                               #power-domain-cells = <0>;
-                                       };
-                               };
-                       };
-                       /* These power domains are grouped by VD_GPU */
-                       power-domain@RK3588_PD_GPU {
-                               reg = <RK3588_PD_GPU>;
-                               clocks = <&cru CLK_GPU>,
-                                        <&cru CLK_GPU_COREGROUP>,
-                                        <&cru CLK_GPU_STACKS>;
-                               pm_qos = <&qos_gpu_m0>,
-                                        <&qos_gpu_m1>,
-                                        <&qos_gpu_m2>,
-                                        <&qos_gpu_m3>;
-                               #power-domain-cells = <0>;
-                       };
-                       /* These power domains are grouped by VD_VCODEC */
-                       power-domain@RK3588_PD_VCODEC {
-                               reg = <RK3588_PD_VCODEC>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               #power-domain-cells = <0>;
-
-                               power-domain@RK3588_PD_RKVDEC0 {
-                                       reg = <RK3588_PD_RKVDEC0>;
-                                       clocks = <&cru HCLK_RKVDEC0>,
-                                                <&cru HCLK_VDPU_ROOT>,
-                                                <&cru ACLK_VDPU_ROOT>,
-                                                <&cru ACLK_RKVDEC0>,
-                                                <&cru ACLK_RKVDEC_CCU>;
-                                       pm_qos = <&qos_rkvdec0>;
-                                       #power-domain-cells = <0>;
-                               };
-                               power-domain@RK3588_PD_RKVDEC1 {
-                                       reg = <RK3588_PD_RKVDEC1>;
-                                       clocks = <&cru HCLK_RKVDEC1>,
-                                                <&cru HCLK_VDPU_ROOT>,
-                                                <&cru ACLK_VDPU_ROOT>,
-                                                <&cru ACLK_RKVDEC1>;
-                                       pm_qos = <&qos_rkvdec1>;
-                                       #power-domain-cells = <0>;
-                               };
-                               power-domain@RK3588_PD_VENC0 {
-                                       reg = <RK3588_PD_VENC0>;
-                                       clocks = <&cru HCLK_RKVENC0>,
-                                                <&cru ACLK_RKVENC0>;
-                                       pm_qos = <&qos_rkvenc0_m0ro>,
-                                                <&qos_rkvenc0_m1ro>,
-                                                <&qos_rkvenc0_m2wo>;
-                                       #address-cells = <1>;
-                                       #size-cells = <0>;
-                                       #power-domain-cells = <0>;
-
-                                       power-domain@RK3588_PD_VENC1 {
-                                               reg = <RK3588_PD_VENC1>;
-                                               clocks = <&cru HCLK_RKVENC1>,
-                                                        <&cru HCLK_RKVENC0>,
-                                                        <&cru ACLK_RKVENC0>,
-                                                        <&cru ACLK_RKVENC1>;
-                                               pm_qos = <&qos_rkvenc1_m0ro>,
-                                                        <&qos_rkvenc1_m1ro>,
-                                                        <&qos_rkvenc1_m2wo>;
-                                               #power-domain-cells = <0>;
-                                       };
-                               };
-                       };
-                       /* These power domains are grouped by VD_LOGIC */
-                       power-domain@RK3588_PD_VDPU {
-                               reg = <RK3588_PD_VDPU>;
-                               clocks = <&cru HCLK_VDPU_ROOT>,
-                                        <&cru ACLK_VDPU_LOW_ROOT>,
-                                        <&cru ACLK_VDPU_ROOT>,
-                                        <&cru ACLK_JPEG_DECODER_ROOT>,
-                                        <&cru ACLK_IEP2P0>,
-                                        <&cru HCLK_IEP2P0>,
-                                        <&cru ACLK_JPEG_ENCODER0>,
-                                        <&cru HCLK_JPEG_ENCODER0>,
-                                        <&cru ACLK_JPEG_ENCODER1>,
-                                        <&cru HCLK_JPEG_ENCODER1>,
-                                        <&cru ACLK_JPEG_ENCODER2>,
-                                        <&cru HCLK_JPEG_ENCODER2>,
-                                        <&cru ACLK_JPEG_ENCODER3>,
-                                        <&cru HCLK_JPEG_ENCODER3>,
-                                        <&cru ACLK_JPEG_DECODER>,
-                                        <&cru HCLK_JPEG_DECODER>,
-                                        <&cru ACLK_RGA2>,
-                                        <&cru HCLK_RGA2>;
-                               pm_qos = <&qos_iep>,
-                                        <&qos_jpeg_dec>,
-                                        <&qos_jpeg_enc0>,
-                                        <&qos_jpeg_enc1>,
-                                        <&qos_jpeg_enc2>,
-                                        <&qos_jpeg_enc3>,
-                                        <&qos_rga2_mro>,
-                                        <&qos_rga2_mwo>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               #power-domain-cells = <0>;
-
-
-                               power-domain@RK3588_PD_AV1 {
-                                       reg = <RK3588_PD_AV1>;
-                                       clocks = <&cru PCLK_AV1>,
-                                                <&cru ACLK_AV1>,
-                                                <&cru HCLK_VDPU_ROOT>;
-                                       pm_qos = <&qos_av1>;
-                                       #power-domain-cells = <0>;
-                               };
-                               power-domain@RK3588_PD_RKVDEC0 {
-                                       reg = <RK3588_PD_RKVDEC0>;
-                                       clocks = <&cru HCLK_RKVDEC0>,
-                                                <&cru HCLK_VDPU_ROOT>,
-                                                <&cru ACLK_VDPU_ROOT>,
-                                                <&cru ACLK_RKVDEC0>;
-                                       pm_qos = <&qos_rkvdec0>;
-                                       #power-domain-cells = <0>;
-                               };
-                               power-domain@RK3588_PD_RKVDEC1 {
-                                       reg = <RK3588_PD_RKVDEC1>;
-                                       clocks = <&cru HCLK_RKVDEC1>,
-                                                <&cru HCLK_VDPU_ROOT>,
-                                                <&cru ACLK_VDPU_ROOT>;
-                                       pm_qos = <&qos_rkvdec1>;
-                                       #power-domain-cells = <0>;
-                               };
-                               power-domain@RK3588_PD_RGA30 {
-                                       reg = <RK3588_PD_RGA30>;
-                                       clocks = <&cru ACLK_RGA3_0>,
-                                                <&cru HCLK_RGA3_0>;
-                                       pm_qos = <&qos_rga3_0>;
-                                       #power-domain-cells = <0>;
-                               };
-                       };
-                       power-domain@RK3588_PD_VOP {
-                               reg = <RK3588_PD_VOP>;
-                               clocks = <&cru PCLK_VOP_ROOT>,
-                                        <&cru HCLK_VOP_ROOT>,
-                                        <&cru ACLK_VOP>;
-                               pm_qos = <&qos_vop_m0>,
-                                        <&qos_vop_m1>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               #power-domain-cells = <0>;
-
-                               power-domain@RK3588_PD_VO0 {
-                                       reg = <RK3588_PD_VO0>;
-                                       clocks = <&cru PCLK_VO0_ROOT>,
-                                                <&cru PCLK_VO0_S_ROOT>,
-                                                <&cru HCLK_VO0_S_ROOT>,
-                                                <&cru ACLK_VO0_ROOT>,
-                                                <&cru HCLK_HDCP0>,
-                                                <&cru ACLK_HDCP0>,
-                                                <&cru HCLK_VOP_ROOT>;
-                                       pm_qos = <&qos_hdcp0>;
-                                       #power-domain-cells = <0>;
-                               };
-                       };
-                       power-domain@RK3588_PD_VO1 {
-                               reg = <RK3588_PD_VO1>;
-                               clocks = <&cru PCLK_VO1_ROOT>,
-                                        <&cru PCLK_VO1_S_ROOT>,
-                                        <&cru HCLK_VO1_S_ROOT>,
-                                        <&cru HCLK_HDCP1>,
-                                        <&cru ACLK_HDCP1>,
-                                        <&cru ACLK_HDMIRX_ROOT>,
-                                        <&cru HCLK_VO1USB_TOP_ROOT>;
-                               pm_qos = <&qos_hdcp1>,
-                                        <&qos_hdmirx>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3588_PD_VI {
-                               reg = <RK3588_PD_VI>;
-                               clocks = <&cru HCLK_VI_ROOT>,
-                                        <&cru PCLK_VI_ROOT>,
-                                        <&cru HCLK_ISP0>,
-                                        <&cru ACLK_ISP0>,
-                                        <&cru HCLK_VICAP>,
-                                        <&cru ACLK_VICAP>;
-                               pm_qos = <&qos_isp0_mro>,
-                                        <&qos_isp0_mwo>,
-                                        <&qos_vicap_m0>,
-                                        <&qos_vicap_m1>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               #power-domain-cells = <0>;
-
-                               power-domain@RK3588_PD_ISP1 {
-                                       reg = <RK3588_PD_ISP1>;
-                                       clocks = <&cru HCLK_ISP1>,
-                                                <&cru ACLK_ISP1>,
-                                                <&cru HCLK_VI_ROOT>,
-                                                <&cru PCLK_VI_ROOT>;
-                                       pm_qos = <&qos_isp1_mwo>,
-                                                <&qos_isp1_mro>;
-                                       #power-domain-cells = <0>;
-                               };
-                               power-domain@RK3588_PD_FEC {
-                                       reg = <RK3588_PD_FEC>;
-                                       clocks = <&cru HCLK_FISHEYE0>,
-                                                <&cru ACLK_FISHEYE0>,
-                                                <&cru HCLK_FISHEYE1>,
-                                                <&cru ACLK_FISHEYE1>,
-                                                <&cru PCLK_VI_ROOT>;
-                                       pm_qos = <&qos_fisheye0>,
-                                                <&qos_fisheye1>;
-                                       #power-domain-cells = <0>;
-                               };
-                       };
-                       power-domain@RK3588_PD_RGA31 {
-                               reg = <RK3588_PD_RGA31>;
-                               clocks = <&cru HCLK_RGA3_1>,
-                                        <&cru ACLK_RGA3_1>;
-                               pm_qos = <&qos_rga3_1>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3588_PD_USB {
-                               reg = <RK3588_PD_USB>;
-                               clocks = <&cru PCLK_PHP_ROOT>,
-                                        <&cru ACLK_USB_ROOT>,
-                                        <&cru ACLK_USB>,
-                                        <&cru HCLK_USB_ROOT>,
-                                        <&cru HCLK_HOST0>,
-                                        <&cru HCLK_HOST_ARB0>,
-                                        <&cru HCLK_HOST1>,
-                                        <&cru HCLK_HOST_ARB1>;
-                               pm_qos = <&qos_usb3_0>,
-                                        <&qos_usb3_1>,
-                                        <&qos_usb2host_0>,
-                                        <&qos_usb2host_1>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3588_PD_GMAC {
-                               reg = <RK3588_PD_GMAC>;
-                               clocks = <&cru PCLK_PHP_ROOT>,
-                                        <&cru ACLK_PCIE_ROOT>,
-                                        <&cru ACLK_PHP_ROOT>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3588_PD_PCIE {
-                               reg = <RK3588_PD_PCIE>;
-                               clocks = <&cru PCLK_PHP_ROOT>,
-                                        <&cru ACLK_PCIE_ROOT>,
-                                        <&cru ACLK_PHP_ROOT>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3588_PD_SDIO {
-                               reg = <RK3588_PD_SDIO>;
-                               clocks = <&cru HCLK_SDIO>,
-                                        <&cru HCLK_NVM_ROOT>;
-                               pm_qos = <&qos_sdio>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3588_PD_AUDIO {
-                               reg = <RK3588_PD_AUDIO>;
-                               clocks = <&cru HCLK_AUDIO_ROOT>,
-                                        <&cru PCLK_AUDIO_ROOT>;
-                               #power-domain-cells = <0>;
-                       };
-                       power-domain@RK3588_PD_SDMMC {
-                               reg = <RK3588_PD_SDMMC>;
-                               pm_qos = <&qos_sdmmc>;
-                               #power-domain-cells = <0>;
-                       };
-               };
-       };
-
-       av1d: video-codec@fdc70000 {
-               compatible = "rockchip,rk3588-av1-vpu";
-               reg = <0x0 0xfdc70000 0x0 0x800>;
-               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "vdpu";
-               assigned-clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
-               assigned-clock-rates = <400000000>, <400000000>;
-               clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
-               clock-names = "aclk", "hclk";
-               power-domains = <&power RK3588_PD_AV1>;
-               resets = <&cru SRST_A_AV1>, <&cru SRST_P_AV1>, <&cru SRST_A_AV1_BIU>, <&cru SRST_P_AV1_BIU>;
-       };
-
-       vop: vop@fdd90000 {
-               compatible = "rockchip,rk3588-vop";
-               reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;
-               reg-names = "vop", "gamma-lut";
-               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_VOP>,
-                        <&cru HCLK_VOP>,
-                        <&cru DCLK_VOP0>,
-                        <&cru DCLK_VOP1>,
-                        <&cru DCLK_VOP2>,
-                        <&cru DCLK_VOP3>,
-                        <&cru PCLK_VOP_ROOT>;
-               clock-names = "aclk",
-                             "hclk",
-                             "dclk_vp0",
-                             "dclk_vp1",
-                             "dclk_vp2",
-                             "dclk_vp3",
-                             "pclk_vop";
-               iommus = <&vop_mmu>;
-               power-domains = <&power RK3588_PD_VOP>;
-               rockchip,grf = <&sys_grf>;
-               rockchip,vop-grf = <&vop_grf>;
-               rockchip,vo1-grf = <&vo1_grf>;
-               rockchip,pmu = <&pmu>;
-               status = "disabled";
-
-               vop_out: ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       vp0: port@0 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <0>;
-                       };
-
-                       vp1: port@1 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <1>;
-                       };
-
-                       vp2: port@2 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <2>;
-                       };
-
-                       vp3: port@3 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <3>;
-                       };
-               };
-       };
-
-       vop_mmu: iommu@fdd97e00 {
-               compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
-               reg = <0x0 0xfdd97e00 0x0 0x100>, <0x0 0xfdd97f00 0x0 0x100>;
-               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
-               clock-names = "aclk", "iface";
-               #iommu-cells = <0>;
-               power-domains = <&power RK3588_PD_VOP>;
-               status = "disabled";
-       };
-
-       i2s4_8ch: i2s@fddc0000 {
-               compatible = "rockchip,rk3588-i2s-tdm";
-               reg = <0x0 0xfddc0000 0x0 0x1000>;
-               interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru MCLK_I2S4_8CH_TX>, <&cru MCLK_I2S4_8CH_TX>, <&cru HCLK_I2S4_8CH>;
-               clock-names = "mclk_tx", "mclk_rx", "hclk";
-               assigned-clocks = <&cru CLK_I2S4_8CH_TX_SRC>;
-               assigned-clock-parents = <&cru PLL_AUPLL>;
-               dmas = <&dmac2 0>;
-               dma-names = "tx";
-               power-domains = <&power RK3588_PD_VO0>;
-               resets = <&cru SRST_M_I2S4_8CH_TX>;
-               reset-names = "tx-m";
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       i2s5_8ch: i2s@fddf0000 {
-               compatible = "rockchip,rk3588-i2s-tdm";
-               reg = <0x0 0xfddf0000 0x0 0x1000>;
-               interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru MCLK_I2S5_8CH_TX>, <&cru MCLK_I2S5_8CH_TX>, <&cru HCLK_I2S5_8CH>;
-               clock-names = "mclk_tx", "mclk_rx", "hclk";
-               assigned-clocks = <&cru CLK_I2S5_8CH_TX_SRC>;
-               assigned-clock-parents = <&cru PLL_AUPLL>;
-               dmas = <&dmac2 2>;
-               dma-names = "tx";
-               power-domains = <&power RK3588_PD_VO1>;
-               resets = <&cru SRST_M_I2S5_8CH_TX>;
-               reset-names = "tx-m";
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       i2s9_8ch: i2s@fddfc000 {
-               compatible = "rockchip,rk3588-i2s-tdm";
-               reg = <0x0 0xfddfc000 0x0 0x1000>;
-               interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru MCLK_I2S9_8CH_RX>, <&cru MCLK_I2S9_8CH_RX>, <&cru HCLK_I2S9_8CH>;
-               clock-names = "mclk_tx", "mclk_rx", "hclk";
-               assigned-clocks = <&cru CLK_I2S9_8CH_RX_SRC>;
-               assigned-clock-parents = <&cru PLL_AUPLL>;
-               dmas = <&dmac2 23>;
-               dma-names = "rx";
-               power-domains = <&power RK3588_PD_VO1>;
-               resets = <&cru SRST_M_I2S9_8CH_RX>;
-               reset-names = "rx-m";
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       qos_gpu_m0: qos@fdf35000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf35000 0x0 0x20>;
-       };
-
-       qos_gpu_m1: qos@fdf35200 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf35200 0x0 0x20>;
-       };
-
-       qos_gpu_m2: qos@fdf35400 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf35400 0x0 0x20>;
-       };
-
-       qos_gpu_m3: qos@fdf35600 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf35600 0x0 0x20>;
-       };
-
-       qos_rga3_1: qos@fdf36000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf36000 0x0 0x20>;
-       };
-
-       qos_sdio: qos@fdf39000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf39000 0x0 0x20>;
-       };
-
-       qos_sdmmc: qos@fdf3d800 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf3d800 0x0 0x20>;
-       };
-
-       qos_usb3_1: qos@fdf3e000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf3e000 0x0 0x20>;
-       };
-
-       qos_usb3_0: qos@fdf3e200 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf3e200 0x0 0x20>;
-       };
-
-       qos_usb2host_0: qos@fdf3e400 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf3e400 0x0 0x20>;
-       };
-
-       qos_usb2host_1: qos@fdf3e600 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf3e600 0x0 0x20>;
-       };
-
-       qos_fisheye0: qos@fdf40000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf40000 0x0 0x20>;
-       };
-
-       qos_fisheye1: qos@fdf40200 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf40200 0x0 0x20>;
-       };
-
-       qos_isp0_mro: qos@fdf40400 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf40400 0x0 0x20>;
-       };
-
-       qos_isp0_mwo: qos@fdf40500 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf40500 0x0 0x20>;
-       };
-
-       qos_vicap_m0: qos@fdf40600 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf40600 0x0 0x20>;
-       };
-
-       qos_vicap_m1: qos@fdf40800 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf40800 0x0 0x20>;
-       };
-
-       qos_isp1_mwo: qos@fdf41000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf41000 0x0 0x20>;
-       };
-
-       qos_isp1_mro: qos@fdf41100 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf41100 0x0 0x20>;
-       };
-
-       qos_rkvenc0_m0ro: qos@fdf60000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf60000 0x0 0x20>;
-       };
-
-       qos_rkvenc0_m1ro: qos@fdf60200 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf60200 0x0 0x20>;
-       };
-
-       qos_rkvenc0_m2wo: qos@fdf60400 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf60400 0x0 0x20>;
-       };
-
-       qos_rkvenc1_m0ro: qos@fdf61000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf61000 0x0 0x20>;
-       };
-
-       qos_rkvenc1_m1ro: qos@fdf61200 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf61200 0x0 0x20>;
-       };
-
-       qos_rkvenc1_m2wo: qos@fdf61400 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf61400 0x0 0x20>;
-       };
-
-       qos_rkvdec0: qos@fdf62000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf62000 0x0 0x20>;
-       };
-
-       qos_rkvdec1: qos@fdf63000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf63000 0x0 0x20>;
-       };
-
-       qos_av1: qos@fdf64000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf64000 0x0 0x20>;
-       };
-
-       qos_iep: qos@fdf66000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf66000 0x0 0x20>;
-       };
-
-       qos_jpeg_dec: qos@fdf66200 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf66200 0x0 0x20>;
-       };
-
-       qos_jpeg_enc0: qos@fdf66400 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf66400 0x0 0x20>;
-       };
-
-       qos_jpeg_enc1: qos@fdf66600 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf66600 0x0 0x20>;
-       };
-
-       qos_jpeg_enc2: qos@fdf66800 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf66800 0x0 0x20>;
-       };
-
-       qos_jpeg_enc3: qos@fdf66a00 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf66a00 0x0 0x20>;
-       };
-
-       qos_rga2_mro: qos@fdf66c00 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf66c00 0x0 0x20>;
-       };
-
-       qos_rga2_mwo: qos@fdf66e00 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf66e00 0x0 0x20>;
-       };
-
-       qos_rga3_0: qos@fdf67000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf67000 0x0 0x20>;
-       };
-
-       qos_vdpu: qos@fdf67200 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf67200 0x0 0x20>;
-       };
-
-       qos_npu1: qos@fdf70000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf70000 0x0 0x20>;
-       };
-
-       qos_npu2: qos@fdf71000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf71000 0x0 0x20>;
-       };
-
-       qos_npu0_mwr: qos@fdf72000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf72000 0x0 0x20>;
-       };
-
-       qos_npu0_mro: qos@fdf72200 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf72200 0x0 0x20>;
-       };
-
-       qos_mcu_npu: qos@fdf72400 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf72400 0x0 0x20>;
-       };
-
-       qos_hdcp0: qos@fdf80000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf80000 0x0 0x20>;
-       };
-
-       qos_hdcp1: qos@fdf81000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf81000 0x0 0x20>;
-       };
-
-       qos_hdmirx: qos@fdf81200 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf81200 0x0 0x20>;
-       };
-
-       qos_vop_m0: qos@fdf82000 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf82000 0x0 0x20>;
-       };
-
-       qos_vop_m1: qos@fdf82200 {
-               compatible = "rockchip,rk3588-qos", "syscon";
-               reg = <0x0 0xfdf82200 0x0 0x20>;
-       };
-
-       dfi: dfi@fe060000 {
-               reg = <0x00 0xfe060000 0x00 0x10000>;
-               compatible = "rockchip,rk3588-dfi";
-               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
-               rockchip,pmu = <&pmu1grf>;
-       };
-
-       pcie2x1l1: pcie@fe180000 {
-               compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
-               bus-range = <0x30 0x3f>;
-               clocks = <&cru ACLK_PCIE_1L1_MSTR>, <&cru ACLK_PCIE_1L1_SLV>,
-                        <&cru ACLK_PCIE_1L1_DBI>, <&cru PCLK_PCIE_1L1>,
-                        <&cru CLK_PCIE_AUX3>, <&cru CLK_PCIE1L1_PIPE>;
-               clock-names = "aclk_mst", "aclk_slv",
-                             "aclk_dbi", "pclk",
-                             "aux", "pipe";
-               device_type = "pci";
-               interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "sys", "pmc", "msg", "legacy", "err";
-               #interrupt-cells = <1>;
-               interrupt-map-mask = <0 0 0 7>;
-               interrupt-map = <0 0 0 1 &pcie2x1l1_intc 0>,
-                               <0 0 0 2 &pcie2x1l1_intc 1>,
-                               <0 0 0 3 &pcie2x1l1_intc 2>,
-                               <0 0 0 4 &pcie2x1l1_intc 3>;
-               linux,pci-domain = <3>;
-               max-link-speed = <2>;
-               msi-map = <0x3000 &its0 0x3000 0x1000>;
-               num-lanes = <1>;
-               phys = <&combphy2_psu PHY_TYPE_PCIE>;
-               phy-names = "pcie-phy";
-               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>;
-               reg = <0xa 0x40c00000 0x0 0x00400000>,
-                     <0x0 0xfe180000 0x0 0x00010000>,
-                     <0x0 0xf3000000 0x0 0x00100000>;
-               reg-names = "dbi", "apb", "config";
-               resets = <&cru SRST_PCIE3_POWER_UP>, <&cru SRST_P_PCIE3>;
-               reset-names = "pwr", "pipe";
-               #address-cells = <3>;
-               #size-cells = <2>;
-               status = "disabled";
-
-               pcie2x1l1_intc: legacy-interrupt-controller {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <1>;
-                       interrupt-parent = <&gic>;
-                       interrupts = <GIC_SPI 245 IRQ_TYPE_EDGE_RISING 0>;
-               };
-       };
-
-       pcie2x1l2: pcie@fe190000 {
-               compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
-               bus-range = <0x40 0x4f>;
-               clocks = <&cru ACLK_PCIE_1L2_MSTR>, <&cru ACLK_PCIE_1L2_SLV>,
-                        <&cru ACLK_PCIE_1L2_DBI>, <&cru PCLK_PCIE_1L2>,
-                        <&cru CLK_PCIE_AUX4>, <&cru CLK_PCIE1L2_PIPE>;
-               clock-names = "aclk_mst", "aclk_slv",
-                             "aclk_dbi", "pclk",
-                             "aux", "pipe";
-               device_type = "pci";
-               interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "sys", "pmc", "msg", "legacy", "err";
-               #interrupt-cells = <1>;
-               interrupt-map-mask = <0 0 0 7>;
-               interrupt-map = <0 0 0 1 &pcie2x1l2_intc 0>,
-                               <0 0 0 2 &pcie2x1l2_intc 1>,
-                               <0 0 0 3 &pcie2x1l2_intc 2>,
-                               <0 0 0 4 &pcie2x1l2_intc 3>;
-               linux,pci-domain = <4>;
-               max-link-speed = <2>;
-               msi-map = <0x4000 &its0 0x4000 0x1000>;
-               num-lanes = <1>;
-               phys = <&combphy0_ps PHY_TYPE_PCIE>;
-               phy-names = "pcie-phy";
-               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>;
-               reg = <0xa 0x41000000 0x0 0x00400000>,
-                     <0x0 0xfe190000 0x0 0x00010000>,
-                     <0x0 0xf4000000 0x0 0x00100000>;
-               reg-names = "dbi", "apb", "config";
-               resets = <&cru SRST_PCIE4_POWER_UP>, <&cru SRST_P_PCIE4>;
-               reset-names = "pwr", "pipe";
-               #address-cells = <3>;
-               #size-cells = <2>;
-               status = "disabled";
-
-               pcie2x1l2_intc: legacy-interrupt-controller {
-                       interrupt-controller;
-                       #address-cells = <0>;
-                       #interrupt-cells = <1>;
-                       interrupt-parent = <&gic>;
-                       interrupts = <GIC_SPI 250 IRQ_TYPE_EDGE_RISING 0>;
-               };
-       };
-
-       gmac1: ethernet@fe1c0000 {
-               compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
-               reg = <0x0 0xfe1c0000 0x0 0x10000>;
-               interrupts = <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "macirq", "eth_wake_irq";
-               clocks = <&cru CLK_GMAC_125M>, <&cru CLK_GMAC_50M>,
-                        <&cru PCLK_GMAC1>, <&cru ACLK_GMAC1>,
-                        <&cru CLK_GMAC1_PTP_REF>;
-               clock-names = "stmmaceth", "clk_mac_ref",
-                             "pclk_mac", "aclk_mac",
-                             "ptp_ref";
-               power-domains = <&power RK3588_PD_GMAC>;
-               resets = <&cru SRST_A_GMAC1>;
-               reset-names = "stmmaceth";
-               rockchip,grf = <&sys_grf>;
-               rockchip,php-grf = <&php_grf>;
-               snps,axi-config = <&gmac1_stmmac_axi_setup>;
-               snps,mixed-burst;
-               snps,mtl-rx-config = <&gmac1_mtl_rx_setup>;
-               snps,mtl-tx-config = <&gmac1_mtl_tx_setup>;
-               snps,tso;
-               status = "disabled";
-
-               mdio1: mdio {
-                       compatible = "snps,dwmac-mdio";
-                       #address-cells = <0x1>;
-                       #size-cells = <0x0>;
-               };
-
-               gmac1_stmmac_axi_setup: stmmac-axi-config {
-                       snps,blen = <0 0 0 0 16 8 4>;
-                       snps,wr_osr_lmt = <4>;
-                       snps,rd_osr_lmt = <8>;
-               };
-
-               gmac1_mtl_rx_setup: rx-queues-config {
-                       snps,rx-queues-to-use = <2>;
-                       queue0 {};
-                       queue1 {};
-               };
-
-               gmac1_mtl_tx_setup: tx-queues-config {
-                       snps,tx-queues-to-use = <2>;
-                       queue0 {};
-                       queue1 {};
-               };
-       };
-
-       sata0: sata@fe210000 {
-               compatible = "rockchip,rk3588-dwc-ahci", "snps,dwc-ahci";
-               reg = <0 0xfe210000 0 0x1000>;
-               interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_SATA0>, <&cru CLK_PMALIVE0>,
-                        <&cru CLK_RXOOB0>, <&cru CLK_PIPEPHY0_REF>,
-                        <&cru CLK_PIPEPHY0_PIPE_ASIC_G>;
-               clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
-               ports-implemented = <0x1>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-
-               sata-port@0 {
-                       reg = <0>;
-                       hba-port-cap = <HBA_PORT_FBSCP>;
-                       phys = <&combphy0_ps PHY_TYPE_SATA>;
-                       phy-names = "sata-phy";
-                       snps,rx-ts-max = <32>;
-                       snps,tx-ts-max = <32>;
-               };
-       };
-
-       sata2: sata@fe230000 {
-               compatible = "rockchip,rk3588-dwc-ahci", "snps,dwc-ahci";
-               reg = <0 0xfe230000 0 0x1000>;
-               interrupts = <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_SATA2>, <&cru CLK_PMALIVE2>,
-                        <&cru CLK_RXOOB2>, <&cru CLK_PIPEPHY2_REF>,
-                        <&cru CLK_PIPEPHY2_PIPE_ASIC_G>;
-               clock-names = "sata", "pmalive", "rxoob", "ref", "asic";
-               ports-implemented = <0x1>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-
-               sata-port@0 {
-                       reg = <0>;
-                       hba-port-cap = <HBA_PORT_FBSCP>;
-                       phys = <&combphy2_psu PHY_TYPE_SATA>;
-                       phy-names = "sata-phy";
-                       snps,rx-ts-max = <32>;
-                       snps,tx-ts-max = <32>;
-               };
-       };
-
-       sfc: spi@fe2b0000 {
-               compatible = "rockchip,sfc";
-               reg = <0x0 0xfe2b0000 0x0 0x4000>;
-               interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
-               clock-names = "clk_sfc", "hclk_sfc";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       sdmmc: mmc@fe2c0000 {
-               compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc";
-               reg = <0x0 0xfe2c0000 0x0 0x4000>;
-               interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&scmi_clk SCMI_HCLK_SD>, <&scmi_clk SCMI_CCLK_SD>,
-                        <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
-               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
-               fifo-depth = <0x100>;
-               max-frequency = <200000000>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_det &sdmmc_bus4>;
-               power-domains = <&power RK3588_PD_SDMMC>;
-               status = "disabled";
-       };
-
-       sdio: mmc@fe2d0000 {
-               compatible = "rockchip,rk3588-dw-mshc", "rockchip,rk3288-dw-mshc";
-               reg = <0x00 0xfe2d0000 0x00 0x4000>;
-               interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru HCLK_SDIO>, <&cru CCLK_SRC_SDIO>,
-                        <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
-               clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
-               fifo-depth = <0x100>;
-               max-frequency = <200000000>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdiom1_pins>;
-               power-domains = <&power RK3588_PD_SDIO>;
-               status = "disabled";
-       };
-
-       sdhci: mmc@fe2e0000 {
-               compatible = "rockchip,rk3588-dwcmshc";
-               reg = <0x0 0xfe2e0000 0x0 0x10000>;
-               interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH 0>;
-               assigned-clocks = <&cru BCLK_EMMC>, <&cru TMCLK_EMMC>, <&cru CCLK_EMMC>;
-               assigned-clock-rates = <200000000>, <24000000>, <200000000>;
-               clocks = <&cru CCLK_EMMC>, <&cru HCLK_EMMC>,
-                        <&cru ACLK_EMMC>, <&cru BCLK_EMMC>,
-                        <&cru TMCLK_EMMC>;
-               clock-names = "core", "bus", "axi", "block", "timer";
-               max-frequency = <200000000>;
-               pinctrl-0 = <&emmc_rstnout>, <&emmc_bus8>, <&emmc_clk>,
-                           <&emmc_cmd>, <&emmc_data_strobe>;
-               pinctrl-names = "default";
-               resets = <&cru SRST_C_EMMC>, <&cru SRST_H_EMMC>,
-                        <&cru SRST_A_EMMC>, <&cru SRST_B_EMMC>,
-                        <&cru SRST_T_EMMC>;
-               reset-names = "core", "bus", "axi", "block", "timer";
-               status = "disabled";
-       };
-
-       i2s0_8ch: i2s@fe470000 {
-               compatible = "rockchip,rk3588-i2s-tdm";
-               reg = <0x0 0xfe470000 0x0 0x1000>;
-               interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru MCLK_I2S0_8CH_TX>, <&cru MCLK_I2S0_8CH_RX>, <&cru HCLK_I2S0_8CH>;
-               clock-names = "mclk_tx", "mclk_rx", "hclk";
-               assigned-clocks = <&cru CLK_I2S0_8CH_TX_SRC>, <&cru CLK_I2S0_8CH_RX_SRC>;
-               assigned-clock-parents = <&cru PLL_AUPLL>, <&cru PLL_AUPLL>;
-               dmas = <&dmac0 0>, <&dmac0 1>;
-               dma-names = "tx", "rx";
-               power-domains = <&power RK3588_PD_AUDIO>;
-               resets = <&cru SRST_M_I2S0_8CH_TX>, <&cru SRST_M_I2S0_8CH_RX>;
-               reset-names = "tx-m", "rx-m";
-               rockchip,trcm-sync-tx-only;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2s0_lrck
-                            &i2s0_sclk
-                            &i2s0_sdi0
-                            &i2s0_sdi1
-                            &i2s0_sdi2
-                            &i2s0_sdi3
-                            &i2s0_sdo0
-                            &i2s0_sdo1
-                            &i2s0_sdo2
-                            &i2s0_sdo3>;
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       i2s1_8ch: i2s@fe480000 {
-               compatible = "rockchip,rk3588-i2s-tdm";
-               reg = <0x0 0xfe480000 0x0 0x1000>;
-               interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru MCLK_I2S1_8CH_TX>, <&cru MCLK_I2S1_8CH_RX>, <&cru HCLK_I2S1_8CH>;
-               clock-names = "mclk_tx", "mclk_rx", "hclk";
-               dmas = <&dmac0 2>, <&dmac0 3>;
-               dma-names = "tx", "rx";
-               resets = <&cru SRST_M_I2S1_8CH_TX>, <&cru SRST_M_I2S1_8CH_RX>;
-               reset-names = "tx-m", "rx-m";
-               rockchip,trcm-sync-tx-only;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2s1m0_lrck
-                            &i2s1m0_sclk
-                            &i2s1m0_sdi0
-                            &i2s1m0_sdi1
-                            &i2s1m0_sdi2
-                            &i2s1m0_sdi3
-                            &i2s1m0_sdo0
-                            &i2s1m0_sdo1
-                            &i2s1m0_sdo2
-                            &i2s1m0_sdo3>;
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       i2s2_2ch: i2s@fe490000 {
-               compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s";
-               reg = <0x0 0xfe490000 0x0 0x1000>;
-               interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru MCLK_I2S2_2CH>, <&cru HCLK_I2S2_2CH>;
-               clock-names = "i2s_clk", "i2s_hclk";
-               assigned-clocks = <&cru CLK_I2S2_2CH_SRC>;
-               assigned-clock-parents = <&cru PLL_AUPLL>;
-               dmas = <&dmac1 0>, <&dmac1 1>;
-               dma-names = "tx", "rx";
-               power-domains = <&power RK3588_PD_AUDIO>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2s2m1_lrck
-                            &i2s2m1_sclk
-                            &i2s2m1_sdi
-                            &i2s2m1_sdo>;
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       i2s3_2ch: i2s@fe4a0000 {
-               compatible = "rockchip,rk3588-i2s", "rockchip,rk3066-i2s";
-               reg = <0x0 0xfe4a0000 0x0 0x1000>;
-               interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru MCLK_I2S3_2CH>, <&cru HCLK_I2S3_2CH>;
-               clock-names = "i2s_clk", "i2s_hclk";
-               assigned-clocks = <&cru CLK_I2S3_2CH_SRC>;
-               assigned-clock-parents = <&cru PLL_AUPLL>;
-               dmas = <&dmac1 2>, <&dmac1 3>;
-               dma-names = "tx", "rx";
-               power-domains = <&power RK3588_PD_AUDIO>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2s3_lrck
-                            &i2s3_sclk
-                            &i2s3_sdi
-                            &i2s3_sdo>;
-               #sound-dai-cells = <0>;
-               status = "disabled";
-       };
-
-       gic: interrupt-controller@fe600000 {
-               compatible = "arm,gic-v3";
-               reg = <0x0 0xfe600000 0 0x10000>, /* GICD */
-                     <0x0 0xfe680000 0 0x100000>; /* GICR */
-               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-controller;
-               mbi-alias = <0x0 0xfe610000>;
-               mbi-ranges = <424 56>;
-               msi-controller;
-               ranges;
-               #address-cells = <2>;
-               #interrupt-cells = <4>;
-               #size-cells = <2>;
-
-               its0: msi-controller@fe640000 {
-                       compatible = "arm,gic-v3-its";
-                       reg = <0x0 0xfe640000 0x0 0x20000>;
-                       msi-controller;
-                       #msi-cells = <1>;
-               };
-
-               its1: msi-controller@fe660000 {
-                       compatible = "arm,gic-v3-its";
-                       reg = <0x0 0xfe660000 0x0 0x20000>;
-                       msi-controller;
-                       #msi-cells = <1>;
-               };
-
-               ppi-partitions {
-                       ppi_partition0: interrupt-partition-0 {
-                               affinity = <&cpu_l0 &cpu_l1 &cpu_l2 &cpu_l3>;
-                       };
-
-                       ppi_partition1: interrupt-partition-1 {
-                               affinity = <&cpu_b0 &cpu_b1 &cpu_b2 &cpu_b3>;
-                       };
-               };
-       };
-
-       dmac0: dma-controller@fea10000 {
-               compatible = "arm,pl330", "arm,primecell";
-               reg = <0x0 0xfea10000 0x0 0x4000>;
-               interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH 0>;
-               arm,pl330-periph-burst;
-               clocks = <&cru ACLK_DMAC0>;
-               clock-names = "apb_pclk";
-               #dma-cells = <1>;
-       };
-
-       dmac1: dma-controller@fea30000 {
-               compatible = "arm,pl330", "arm,primecell";
-               reg = <0x0 0xfea30000 0x0 0x4000>;
-               interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH 0>;
-               arm,pl330-periph-burst;
-               clocks = <&cru ACLK_DMAC1>;
-               clock-names = "apb_pclk";
-               #dma-cells = <1>;
-       };
-
-       i2c1: i2c@fea90000 {
-               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfea90000 0x0 0x1000>;
-               clocks = <&cru CLK_I2C1>, <&cru PCLK_I2C1>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-0 = <&i2c1m0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c2: i2c@feaa0000 {
-               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfeaa0000 0x0 0x1000>;
-               clocks = <&cru CLK_I2C2>, <&cru PCLK_I2C2>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-0 = <&i2c2m0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c3: i2c@feab0000 {
-               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfeab0000 0x0 0x1000>;
-               clocks = <&cru CLK_I2C3>, <&cru PCLK_I2C3>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-0 = <&i2c3m0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c4: i2c@feac0000 {
-               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfeac0000 0x0 0x1000>;
-               clocks = <&cru CLK_I2C4>, <&cru PCLK_I2C4>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-0 = <&i2c4m0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c5: i2c@fead0000 {
-               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfead0000 0x0 0x1000>;
-               clocks = <&cru CLK_I2C5>, <&cru PCLK_I2C5>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-0 = <&i2c5m0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       timer0: timer@feae0000 {
-               compatible = "rockchip,rk3588-timer", "rockchip,rk3288-timer";
-               reg = <0x0 0xfeae0000 0x0 0x20>;
-               interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru PCLK_BUSTIMER0>, <&cru CLK_BUSTIMER0>;
-               clock-names = "pclk", "timer";
-       };
-
-       wdt: watchdog@feaf0000 {
-               compatible = "rockchip,rk3588-wdt", "snps,dw-wdt";
-               reg = <0x0 0xfeaf0000 0x0 0x100>;
-               clocks = <&cru TCLK_WDT0>, <&cru PCLK_WDT0>;
-               clock-names = "tclk", "pclk";
-               interrupts = <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH 0>;
-       };
-
-       spi0: spi@feb00000 {
-               compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
-               reg = <0x0 0xfeb00000 0x0 0x1000>;
-               interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru CLK_SPI0>, <&cru PCLK_SPI0>;
-               clock-names = "spiclk", "apb_pclk";
-               dmas = <&dmac0 14>, <&dmac0 15>;
-               dma-names = "tx", "rx";
-               num-cs = <2>;
-               pinctrl-0 = <&spi0m0_cs0 &spi0m0_cs1 &spi0m0_pins>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       spi1: spi@feb10000 {
-               compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
-               reg = <0x0 0xfeb10000 0x0 0x1000>;
-               interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru CLK_SPI1>, <&cru PCLK_SPI1>;
-               clock-names = "spiclk", "apb_pclk";
-               dmas = <&dmac0 16>, <&dmac0 17>;
-               dma-names = "tx", "rx";
-               num-cs = <2>;
-               pinctrl-0 = <&spi1m1_cs0 &spi1m1_cs1 &spi1m1_pins>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       spi2: spi@feb20000 {
-               compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
-               reg = <0x0 0xfeb20000 0x0 0x1000>;
-               interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru CLK_SPI2>, <&cru PCLK_SPI2>;
-               clock-names = "spiclk", "apb_pclk";
-               dmas = <&dmac1 15>, <&dmac1 16>;
-               dma-names = "tx", "rx";
-               num-cs = <2>;
-               pinctrl-0 = <&spi2m2_cs0 &spi2m2_cs1 &spi2m2_pins>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       spi3: spi@feb30000 {
-               compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
-               reg = <0x0 0xfeb30000 0x0 0x1000>;
-               interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru CLK_SPI3>, <&cru PCLK_SPI3>;
-               clock-names = "spiclk", "apb_pclk";
-               dmas = <&dmac1 17>, <&dmac1 18>;
-               dma-names = "tx", "rx";
-               num-cs = <2>;
-               pinctrl-0 = <&spi3m1_cs0 &spi3m1_cs1 &spi3m1_pins>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       uart1: serial@feb40000 {
-               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfeb40000 0x0 0x100>;
-               interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 8>, <&dmac0 9>;
-               dma-names = "tx", "rx";
-               pinctrl-0 = <&uart1m1_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart2: serial@feb50000 {
-               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfeb50000 0x0 0x100>;
-               interrupts = <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 10>, <&dmac0 11>;
-               dma-names = "tx", "rx";
-               pinctrl-0 = <&uart2m1_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart3: serial@feb60000 {
-               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfeb60000 0x0 0x100>;
-               interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac0 12>, <&dmac0 13>;
-               dma-names = "tx", "rx";
-               pinctrl-0 = <&uart3m1_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart4: serial@feb70000 {
-               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfeb70000 0x0 0x100>;
-               interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac1 9>, <&dmac1 10>;
-               dma-names = "tx", "rx";
-               pinctrl-0 = <&uart4m1_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart5: serial@feb80000 {
-               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfeb80000 0x0 0x100>;
-               interrupts = <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac1 11>, <&dmac1 12>;
-               dma-names = "tx", "rx";
-               pinctrl-0 = <&uart5m1_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart6: serial@feb90000 {
-               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfeb90000 0x0 0x100>;
-               interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_UART6>, <&cru PCLK_UART6>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac1 13>, <&dmac1 14>;
-               dma-names = "tx", "rx";
-               pinctrl-0 = <&uart6m1_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart7: serial@feba0000 {
-               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfeba0000 0x0 0x100>;
-               interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_UART7>, <&cru PCLK_UART7>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac2 7>, <&dmac2 8>;
-               dma-names = "tx", "rx";
-               pinctrl-0 = <&uart7m1_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart8: serial@febb0000 {
-               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfebb0000 0x0 0x100>;
-               interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_UART8>, <&cru PCLK_UART8>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac2 9>, <&dmac2 10>;
-               dma-names = "tx", "rx";
-               pinctrl-0 = <&uart8m1_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       uart9: serial@febc0000 {
-               compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
-               reg = <0x0 0xfebc0000 0x0 0x100>;
-               interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru SCLK_UART9>, <&cru PCLK_UART9>;
-               clock-names = "baudclk", "apb_pclk";
-               dmas = <&dmac2 11>, <&dmac2 12>;
-               dma-names = "tx", "rx";
-               pinctrl-0 = <&uart9m1_xfer>;
-               pinctrl-names = "default";
-               reg-io-width = <4>;
-               reg-shift = <2>;
-               status = "disabled";
-       };
-
-       pwm4: pwm@febd0000 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfebd0000 0x0 0x10>;
-               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm4m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm5: pwm@febd0010 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfebd0010 0x0 0x10>;
-               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm5m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm6: pwm@febd0020 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfebd0020 0x0 0x10>;
-               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm6m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm7: pwm@febd0030 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfebd0030 0x0 0x10>;
-               clocks = <&cru CLK_PWM1>, <&cru PCLK_PWM1>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm7m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm8: pwm@febe0000 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfebe0000 0x0 0x10>;
-               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm8m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm9: pwm@febe0010 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfebe0010 0x0 0x10>;
-               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm9m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm10: pwm@febe0020 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfebe0020 0x0 0x10>;
-               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm10m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm11: pwm@febe0030 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfebe0030 0x0 0x10>;
-               clocks = <&cru CLK_PWM2>, <&cru PCLK_PWM2>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm11m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm12: pwm@febf0000 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfebf0000 0x0 0x10>;
-               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm12m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm13: pwm@febf0010 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfebf0010 0x0 0x10>;
-               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm13m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm14: pwm@febf0020 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfebf0020 0x0 0x10>;
-               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm14m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm15: pwm@febf0030 {
-               compatible = "rockchip,rk3588-pwm", "rockchip,rk3328-pwm";
-               reg = <0x0 0xfebf0030 0x0 0x10>;
-               clocks = <&cru CLK_PWM3>, <&cru PCLK_PWM3>;
-               clock-names = "pwm", "pclk";
-               pinctrl-0 = <&pwm15m0_pins>;
-               pinctrl-names = "default";
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       tsadc: tsadc@fec00000 {
-               compatible = "rockchip,rk3588-tsadc";
-               reg = <0x0 0xfec00000 0x0 0x400>;
-               interrupts = <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru CLK_TSADC>, <&cru PCLK_TSADC>;
-               clock-names = "tsadc", "apb_pclk";
-               assigned-clocks = <&cru CLK_TSADC>;
-               assigned-clock-rates = <2000000>;
-               resets = <&cru SRST_P_TSADC>, <&cru SRST_TSADC>;
-               reset-names = "tsadc-apb", "tsadc";
-               rockchip,hw-tshut-temp = <120000>;
-               rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
-               rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
-               pinctrl-0 = <&tsadc_gpio_func>;
-               pinctrl-1 = <&tsadc_shut>;
-               pinctrl-names = "gpio", "otpout";
-               #thermal-sensor-cells = <1>;
-               status = "disabled";
-       };
-
-       saradc: adc@fec10000 {
-               compatible = "rockchip,rk3588-saradc";
-               reg = <0x0 0xfec10000 0x0 0x10000>;
-               interrupts = <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH 0>;
-               #io-channel-cells = <1>;
-               clocks = <&cru CLK_SARADC>, <&cru PCLK_SARADC>;
-               clock-names = "saradc", "apb_pclk";
-               resets = <&cru SRST_P_SARADC>;
-               reset-names = "saradc-apb";
-               status = "disabled";
-       };
-
-       i2c6: i2c@fec80000 {
-               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfec80000 0x0 0x1000>;
-               clocks = <&cru CLK_I2C6>, <&cru PCLK_I2C6>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-0 = <&i2c6m0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c7: i2c@fec90000 {
-               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfec90000 0x0 0x1000>;
-               clocks = <&cru CLK_I2C7>, <&cru PCLK_I2C7>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-0 = <&i2c7m0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       i2c8: i2c@feca0000 {
-               compatible = "rockchip,rk3588-i2c", "rockchip,rk3399-i2c";
-               reg = <0x0 0xfeca0000 0x0 0x1000>;
-               clocks = <&cru CLK_I2C8>, <&cru PCLK_I2C8>;
-               clock-names = "i2c", "pclk";
-               interrupts = <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH 0>;
-               pinctrl-0 = <&i2c8m0_xfer>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       spi4: spi@fecb0000 {
-               compatible = "rockchip,rk3588-spi", "rockchip,rk3066-spi";
-               reg = <0x0 0xfecb0000 0x0 0x1000>;
-               interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru CLK_SPI4>, <&cru PCLK_SPI4>;
-               clock-names = "spiclk", "apb_pclk";
-               dmas = <&dmac2 13>, <&dmac2 14>;
-               dma-names = "tx", "rx";
-               num-cs = <2>;
-               pinctrl-0 = <&spi4m0_cs0 &spi4m0_cs1 &spi4m0_pins>;
-               pinctrl-names = "default";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-       };
-
-       otp: efuse@fecc0000 {
-               compatible = "rockchip,rk3588-otp";
-               reg = <0x0 0xfecc0000 0x0 0x400>;
-               clocks = <&cru CLK_OTPC_NS>, <&cru PCLK_OTPC_NS>,
-                        <&cru CLK_OTP_PHY_G>, <&cru CLK_OTPC_ARB>;
-               clock-names = "otp", "apb_pclk", "phy", "arb";
-               resets = <&cru SRST_OTPC_NS>, <&cru SRST_P_OTPC_NS>,
-                        <&cru SRST_OTPC_ARB>;
-               reset-names = "otp", "apb", "arb";
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               cpu_code: cpu-code@2 {
-                       reg = <0x02 0x2>;
-               };
-
-               otp_id: id@7 {
-                       reg = <0x07 0x10>;
-               };
-
-               cpub0_leakage: cpu-leakage@17 {
-                       reg = <0x17 0x1>;
-               };
-
-               cpub1_leakage: cpu-leakage@18 {
-                       reg = <0x18 0x1>;
-               };
-
-               cpul_leakage: cpu-leakage@19 {
-                       reg = <0x19 0x1>;
-               };
-
-               log_leakage: log-leakage@1a {
-                       reg = <0x1a 0x1>;
-               };
-
-               gpu_leakage: gpu-leakage@1b {
-                       reg = <0x1b 0x1>;
-               };
-
-               otp_cpu_version: cpu-version@1c {
-                       reg = <0x1c 0x1>;
-                       bits = <3 3>;
-               };
-
-               npu_leakage: npu-leakage@28 {
-                       reg = <0x28 0x1>;
-               };
-
-               codec_leakage: codec-leakage@29 {
-                       reg = <0x29 0x1>;
-               };
-       };
-
-       dmac2: dma-controller@fed10000 {
-               compatible = "arm,pl330", "arm,primecell";
-               reg = <0x0 0xfed10000 0x0 0x4000>;
-               interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH 0>;
-               arm,pl330-periph-burst;
-               clocks = <&cru ACLK_DMAC2>;
-               clock-names = "apb_pclk";
-               #dma-cells = <1>;
-       };
-
-       hdptxphy_hdmi0: phy@fed60000 {
-               compatible = "rockchip,rk3588-hdptx-phy";
-               reg = <0x0 0xfed60000 0x0 0x2000>;
-               clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>, <&cru PCLK_HDPTX0>;
-               clock-names = "ref", "apb";
-               #phy-cells = <0>;
-               resets = <&cru SRST_HDPTX0>, <&cru SRST_P_HDPTX0>,
-                        <&cru SRST_HDPTX0_INIT>, <&cru SRST_HDPTX0_CMN>,
-                        <&cru SRST_HDPTX0_LANE>, <&cru SRST_HDPTX0_ROPLL>,
-                        <&cru SRST_HDPTX0_LCPLL>;
-               reset-names = "phy", "apb", "init", "cmn", "lane", "ropll",
-                             "lcpll";
-               rockchip,grf = <&hdptxphy0_grf>;
-               status = "disabled";
-       };
-
-       usbdp_phy0: phy@fed80000 {
-               compatible = "rockchip,rk3588-usbdp-phy";
-               reg = <0x0 0xfed80000 0x0 0x10000>;
-               #phy-cells = <1>;
-               clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
-                        <&cru CLK_USBDP_PHY0_IMMORTAL>,
-                        <&cru PCLK_USBDPPHY0>,
-                        <&u2phy0>;
-               clock-names = "refclk", "immortal", "pclk", "utmi";
-               resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>,
-                        <&cru SRST_USBDP_COMBO_PHY0_CMN>,
-                        <&cru SRST_USBDP_COMBO_PHY0_LANE>,
-                        <&cru SRST_USBDP_COMBO_PHY0_PCS>,
-                        <&cru SRST_P_USBDPPHY0>;
-               reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
-               rockchip,u2phy-grf = <&usb2phy0_grf>;
-               rockchip,usb-grf = <&usb_grf>;
-               rockchip,usbdpphy-grf = <&usbdpphy0_grf>;
-               rockchip,vo-grf = <&vo0_grf>;
-               status = "disabled";
-       };
-
-       combphy0_ps: phy@fee00000 {
-               compatible = "rockchip,rk3588-naneng-combphy";
-               reg = <0x0 0xfee00000 0x0 0x100>;
-               clocks = <&cru CLK_REF_PIPE_PHY0>, <&cru PCLK_PCIE_COMBO_PIPE_PHY0>,
-                        <&cru PCLK_PHP_ROOT>;
-               clock-names = "ref", "apb", "pipe";
-               assigned-clocks = <&cru CLK_REF_PIPE_PHY0>;
-               assigned-clock-rates = <100000000>;
-               #phy-cells = <1>;
-               resets = <&cru SRST_REF_PIPE_PHY0>, <&cru SRST_P_PCIE2_PHY0>;
-               reset-names = "phy", "apb";
-               rockchip,pipe-grf = <&php_grf>;
-               rockchip,pipe-phy-grf = <&pipe_phy0_grf>;
-               status = "disabled";
-       };
-
-       combphy2_psu: phy@fee20000 {
-               compatible = "rockchip,rk3588-naneng-combphy";
-               reg = <0x0 0xfee20000 0x0 0x100>;
-               clocks = <&cru CLK_REF_PIPE_PHY2>, <&cru PCLK_PCIE_COMBO_PIPE_PHY2>,
-                        <&cru PCLK_PHP_ROOT>;
-               clock-names = "ref", "apb", "pipe";
-               assigned-clocks = <&cru CLK_REF_PIPE_PHY2>;
-               assigned-clock-rates = <100000000>;
-               #phy-cells = <1>;
-               resets = <&cru SRST_REF_PIPE_PHY2>, <&cru SRST_P_PCIE2_PHY2>;
-               reset-names = "phy", "apb";
-               rockchip,pipe-grf = <&php_grf>;
-               rockchip,pipe-phy-grf = <&pipe_phy2_grf>;
-               status = "disabled";
-       };
-
-       system_sram2: sram@ff001000 {
-               compatible = "mmio-sram";
-               reg = <0x0 0xff001000 0x0 0xef000>;
-               ranges = <0x0 0x0 0xff001000 0xef000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-       };
-
-       pinctrl: pinctrl {
-               compatible = "rockchip,rk3588-pinctrl";
-               ranges;
-               rockchip,grf = <&ioc>;
-               #address-cells = <2>;
-               #size-cells = <2>;
-
-               gpio0: gpio@fd8a0000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xfd8a0000 0x0 0x100>;
-                       interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH 0>;
-                       clocks = <&cru PCLK_GPIO0>, <&cru DBCLK_GPIO0>;
-                       gpio-controller;
-                       gpio-ranges = <&pinctrl 0 0 32>;
-                       interrupt-controller;
-                       #gpio-cells = <2>;
-                       #interrupt-cells = <2>;
-               };
-
-               gpio1: gpio@fec20000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xfec20000 0x0 0x100>;
-                       interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH 0>;
-                       clocks = <&cru PCLK_GPIO1>, <&cru DBCLK_GPIO1>;
-                       gpio-controller;
-                       gpio-ranges = <&pinctrl 0 32 32>;
-                       interrupt-controller;
-                       #gpio-cells = <2>;
-                       #interrupt-cells = <2>;
-               };
-
-               gpio2: gpio@fec30000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xfec30000 0x0 0x100>;
-                       interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH 0>;
-                       clocks = <&cru PCLK_GPIO2>, <&cru DBCLK_GPIO2>;
-                       gpio-controller;
-                       gpio-ranges = <&pinctrl 0 64 32>;
-                       interrupt-controller;
-                       #gpio-cells = <2>;
-                       #interrupt-cells = <2>;
-               };
-
-               gpio3: gpio@fec40000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xfec40000 0x0 0x100>;
-                       interrupts = <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH 0>;
-                       clocks = <&cru PCLK_GPIO3>, <&cru DBCLK_GPIO3>;
-                       gpio-controller;
-                       gpio-ranges = <&pinctrl 0 96 32>;
-                       interrupt-controller;
-                       #gpio-cells = <2>;
-                       #interrupt-cells = <2>;
-               };
-
-               gpio4: gpio@fec50000 {
-                       compatible = "rockchip,gpio-bank";
-                       reg = <0x0 0xfec50000 0x0 0x100>;
-                       interrupts = <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH 0>;
-                       clocks = <&cru PCLK_GPIO4>, <&cru DBCLK_GPIO4>;
-                       gpio-controller;
-                       gpio-ranges = <&pinctrl 0 128 32>;
-                       interrupt-controller;
-                       #gpio-cells = <2>;
-                       #interrupt-cells = <2>;
-               };
-       };
-};
-
-#include "rk3588s-pinctrl.dtsi"
+#include "rk3588-base.dtsi"
+#include "rk3588-opp.dtsi"
index dbdb79f8e959be71d34678370af02df0ca6b28a5..4c080df487240ea1b9e6c8974912158a6869932a 100644 (file)
                             <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; /* Hipervisor PPI */
        };
 
-       pmu {
-               compatible = "arm,armv8-pmuv3";
+       pmu-a55 {
+               compatible = "arm,cortex-a55-pmu";
                interrupts = <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 117 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-affinity = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>, <&CPU4>, <&CPU5>;
+       };
+
+       pmu-a75 {
+               compatible = "arm,cortex-a75-pmu";
+               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-affinity = <&CPU6>, <&CPU7>;
        };
 
        soc: soc {
index 2191f0a4811b1ee4ff3b20aa9f71ba4f4dc727c6..2458071320c9b4181cb6edcb805f70a382d0c5e1 100644 (file)
                             <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>; /* Hipervisor PPI */
        };
 
-       pmu {
-               compatible = "arm,armv8-pmuv3";
+       pmu-a55 {
+               compatible = "arm,cortex-a55-pmu";
                interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-affinity = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>;
+       };
+
+       pmu-a76 {
+               compatible = "arm,cortex-a76-pmu";
+               interrupts = <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>;
+               interrupt-affinity = <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>;
        };
 
        soc: soc {
index 7a82896dcbf602763c78fd6d087d2df302a60dea..8fdd5f020425d53eefa724de9c23ec0ca211ab7f 100644 (file)
@@ -6,6 +6,65 @@
 #include <dt-bindings/pinctrl/stm32-pinfunc.h>
 
 &pinctrl {
+       eth2_rgmii_pins_a: eth2-rgmii-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('C', 7, AF10)>, /* ETH_RGMII_TXD0 */
+                                <STM32_PINMUX('C', 8, AF10)>, /* ETH_RGMII_TXD1 */
+                                <STM32_PINMUX('C', 9, AF10)>, /* ETH_RGMII_TXD2 */
+                                <STM32_PINMUX('C', 10, AF10)>, /* ETH_RGMII_TXD3 */
+                                <STM32_PINMUX('C', 4, AF10)>; /* ETH_RGMII_TX_CTL */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <3>;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('F', 8, AF10)>, /* ETH_RGMII_CLK125 */
+                                <STM32_PINMUX('F', 7, AF10)>, /* ETH_RGMII_GTX_CLK */
+                                <STM32_PINMUX('C', 6, AF10)>; /* ETH_MDC */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <3>;
+               };
+               pins3 {
+                       pinmux = <STM32_PINMUX('C', 5, AF10)>; /* ETH_MDIO */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+               pins4 {
+                       pinmux = <STM32_PINMUX('G', 0, AF10)>, /* ETH_RGMII_RXD0 */
+                                <STM32_PINMUX('C', 12, AF10)>, /* ETH_RGMII_RXD1 */
+                                <STM32_PINMUX('F', 9, AF10)>, /* ETH_RGMII_RXD2 */
+                                <STM32_PINMUX('C', 11, AF10)>, /* ETH_RGMII_RXD3 */
+                                <STM32_PINMUX('C', 3, AF10)>; /* ETH_RGMII_RX_CTL */
+                       bias-disable;
+               };
+               pins5 {
+                       pinmux = <STM32_PINMUX('F', 6, AF10)>; /* ETH_RGMII_RX_CLK */
+                       bias-disable;
+               };
+       };
+
+       eth2_rgmii_sleep_pins_a: eth2-rgmii-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('C', 7, ANALOG)>, /* ETH_RGMII_TXD0 */
+                                <STM32_PINMUX('C', 8, ANALOG)>, /* ETH_RGMII_TXD1 */
+                                <STM32_PINMUX('C', 9, ANALOG)>, /* ETH_RGMII_TXD2 */
+                                <STM32_PINMUX('C', 10, ANALOG)>, /* ETH_RGMII_TXD3 */
+                                <STM32_PINMUX('C', 4, ANALOG)>, /* ETH_RGMII_TX_CTL */
+                                <STM32_PINMUX('F', 8, ANALOG)>, /* ETH_RGMII_CLK125 */
+                                <STM32_PINMUX('F', 7, ANALOG)>, /* ETH_RGMII_GTX_CLK */
+                                <STM32_PINMUX('C', 6, ANALOG)>, /* ETH_MDC */
+                                <STM32_PINMUX('C', 5, ANALOG)>, /* ETH_MDIO */
+                                <STM32_PINMUX('G', 0, ANALOG)>, /* ETH_RGMII_RXD0 */
+                                <STM32_PINMUX('C', 12, ANALOG)>, /* ETH_RGMII_RXD1 */
+                                <STM32_PINMUX('F', 9, ANALOG)>, /* ETH_RGMII_RXD2 */
+                                <STM32_PINMUX('C', 11, ANALOG)>, /* ETH_RGMII_RXD3 */
+                                <STM32_PINMUX('C', 3, ANALOG)>, /* ETH_RGMII_RX_CTL */
+                                <STM32_PINMUX('F', 6, ANALOG)>; /* ETH_RGMII_RX_CLK */
+               };
+       };
+
        i2c2_pins_a: i2c2-0 {
                pins {
                        pinmux = <STM32_PINMUX('B', 5, AF9)>, /* I2C2_SCL */
                                 <STM32_PINMUX('A', 8, ANALOG)>; /* USART2_RX */
                };
        };
+
+       usart6_pins_a: usart6-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('F', 13, AF3)>, /* USART6_TX */
+                                <STM32_PINMUX('G', 5, AF3)>;  /* USART6_RTS */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('F', 14, AF3)>, /* USART6_RX */
+                                <STM32_PINMUX('F', 15, AF3)>; /* USART6_CTS_NSS */
+                       bias-pull-up;
+               };
+       };
+
+       usart6_idle_pins_a: usart6-idle-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('F', 13, ANALOG)>, /* USART6_TX */
+                                <STM32_PINMUX('F', 15, ANALOG)>; /* USART6_CTS_NSS */
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('G', 5, AF3)>; /* USART6_RTS */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+               pins3 {
+                       pinmux = <STM32_PINMUX('F', 14, AF3)>; /* USART6_RX */
+                       bias-pull-up;
+               };
+       };
+
+       usart6_sleep_pins_a: usart6-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('F', 13, ANALOG)>, /* USART6_TX */
+                                <STM32_PINMUX('G', 5, ANALOG)>,  /* USART6_RTS */
+                                <STM32_PINMUX('F', 15, ANALOG)>, /* USART6_CTS_NSS */
+                                <STM32_PINMUX('F', 14, ANALOG)>; /* USART6_RX */
+               };
+       };
 };
 
 &pinctrl_z {
index dcd0656d67a807d07062d992204c9a1b7d5aa1ce..1167cf63d7e87aaa15c5c1ed70a9f6511fd818d4 100644 (file)
@@ -6,6 +6,7 @@
 #include <dt-bindings/clock/st,stm32mp25-rcc.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/reset/st,stm32mp25-rcc.h>
+#include <dt-bindings/regulator/st,stm32mp25-regulator.h>
 
 / {
        #address-cells = <2>;
@@ -20,6 +21,8 @@
                        device_type = "cpu";
                        reg = <0>;
                        enable-method = "psci";
+                       power-domains = <&CPU_PD0>;
+                       power-domain-names = "psci";
                };
        };
 
        };
 
        firmware {
-               optee {
+               optee: optee {
                        compatible = "linaro,optee-tz";
                        method = "smc";
+                       interrupt-parent = <&intc>;
+                       interrupts = <GIC_PPI 15 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
                };
 
                scmi {
                                reg = <0x16>;
                                #reset-cells = <1>;
                        };
+
+                       scmi_voltd: protocol@17 {
+                               reg = <0x17>;
+
+                               scmi_regu: regulators {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       scmi_vddio1: regulator@0 {
+                                               reg = <VOLTD_SCMI_VDDIO1>;
+                                               regulator-name = "vddio1";
+                                       };
+                                       scmi_vddio2: regulator@1 {
+                                               reg = <VOLTD_SCMI_VDDIO2>;
+                                               regulator-name = "vddio2";
+                                       };
+                                       scmi_vddio3: regulator@2 {
+                                               reg = <VOLTD_SCMI_VDDIO3>;
+                                               regulator-name = "vddio3";
+                                       };
+                                       scmi_vddio4: regulator@3 {
+                                               reg = <VOLTD_SCMI_VDDIO4>;
+                                               regulator-name = "vddio4";
+                                       };
+                                       scmi_vdd33ucpd: regulator@5 {
+                                               reg = <VOLTD_SCMI_UCPD>;
+                                               regulator-name = "vdd33ucpd";
+                                       };
+                                       scmi_vdda18adc: regulator@7 {
+                                               reg = <VOLTD_SCMI_ADC>;
+                                               regulator-name = "vdda18adc";
+                                       };
+                               };
+                       };
                };
        };
 
        psci {
                compatible = "arm,psci-1.0";
                method = "smc";
+
+               CPU_PD0: power-domain-cpu0 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+               };
+
+               CLUSTER_PD: power-domain-cluster {
+                       #power-domain-cells = <0>;
+                       power-domains = <&RET_PD>;
+               };
+
+               RET_PD: power-domain-retention {
+                       #power-domain-cells = <0>;
+               };
        };
 
        timer {
                interrupt-parent = <&intc>;
                ranges = <0x0 0x0 0x0 0x80000000>;
 
+               hpdma: dma-controller@40400000 {
+                       compatible = "st,stm32mp25-dma3";
+                       reg = <0x40400000 0x1000>;
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 41 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>,
+                                    <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&scmi_clk CK_SCMI_HPDMA1>;
+                       #dma-cells = <3>;
+               };
+
+               hpdma2: dma-controller@40410000 {
+                       compatible = "st,stm32mp25-dma3";
+                       reg = <0x40410000 0x1000>;
+                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&scmi_clk CK_SCMI_HPDMA2>;
+                       #dma-cells = <3>;
+               };
+
+               hpdma3: dma-controller@40420000 {
+                       compatible = "st,stm32mp25-dma3";
+                       reg = <0x40420000 0x1000>;
+                       interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&scmi_clk CK_SCMI_HPDMA3>;
+                       #dma-cells = <3>;
+               };
+
                rifsc: bus@42080000 {
                        compatible = "st,stm32mp25-rifsc", "simple-bus";
                        reg = <0x42080000 0x1000>;
                                status = "disabled";
                        };
 
+                       usart3: serial@400f0000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x400f0000 0x400>;
+                               interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_USART3>;
+                               access-controllers = <&rifsc 33>;
+                               status = "disabled";
+                       };
+
+                       uart4: serial@40100000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40100000 0x400>;
+                               interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_UART4>;
+                               access-controllers = <&rifsc 34>;
+                               status = "disabled";
+                       };
+
+                       uart5: serial@40110000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40110000 0x400>;
+                               interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_UART5>;
+                               access-controllers = <&rifsc 35>;
+                               status = "disabled";
+                       };
+
                        i2c1: i2c@40120000 {
                                compatible = "st,stm32mp25-i2c";
                                reg = <0x40120000 0x400>;
                                status = "disabled";
                        };
 
+                       usart6: serial@40220000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40220000 0x400>;
+                               interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_USART6>;
+                               access-controllers = <&rifsc 36>;
+                               status = "disabled";
+                       };
+
                        spi1: spi@40230000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        };
 
+                       uart9: serial@402c0000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x402c0000 0x400>;
+                               interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_UART9>;
+                               access-controllers = <&rifsc 39>;
+                               status = "disabled";
+                       };
+
+                       usart1: serial@40330000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40330000 0x400>;
+                               interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_USART1>;
+                               access-controllers = <&rifsc 31>;
+                               status = "disabled";
+                       };
+
                        spi6: spi@40350000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        };
 
+                       uart7: serial@40370000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40370000 0x400>;
+                               interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_UART7>;
+                               access-controllers = <&rifsc 37>;
+                               status = "disabled";
+                       };
+
+                       uart8: serial@40380000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40380000 0x400>;
+                               interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_UART8>;
+                               access-controllers = <&rifsc 38>;
+                               status = "disabled";
+                       };
+
                        spi8: spi@46020000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
                                access-controllers = <&rifsc 76>;
                                status = "disabled";
                        };
+
+                       ethernet1: ethernet@482c0000 {
+                               compatible = "st,stm32mp25-dwmac", "snps,dwmac-5.20";
+                               reg = <0x482c0000 0x4000>;
+                               reg-names = "stmmaceth";
+                               interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "macirq";
+                               clock-names = "stmmaceth",
+                                             "mac-clk-tx",
+                                             "mac-clk-rx",
+                                             "ptp_ref",
+                                             "ethstp",
+                                             "eth-ck";
+                               clocks = <&rcc CK_ETH1_MAC>,
+                                        <&rcc CK_ETH1_TX>,
+                                        <&rcc CK_ETH1_RX>,
+                                        <&rcc CK_KER_ETH1PTP>,
+                                        <&rcc CK_ETH1_STP>,
+                                        <&rcc CK_KER_ETH1>;
+                               snps,axi-config = <&stmmac_axi_config_1>;
+                               snps,mixed-burst;
+                               snps,mtl-rx-config = <&mtl_rx_setup_1>;
+                               snps,mtl-tx-config = <&mtl_tx_setup_1>;
+                               snps,pbl = <2>;
+                               snps,tso;
+                               st,syscon = <&syscfg 0x3000>;
+                               access-controllers = <&rifsc 60>;
+                               status = "disabled";
+
+                               mtl_rx_setup_1: rx-queues-config {
+                                       snps,rx-queues-to-use = <2>;
+                                       queue0 {};
+                                       queue1 {};
+                               };
+
+                               mtl_tx_setup_1: tx-queues-config {
+                                       snps,tx-queues-to-use = <4>;
+                                       queue0 {};
+                                       queue1 {};
+                                       queue2 {};
+                                       queue3 {};
+                               };
+
+                               stmmac_axi_config_1: stmmac-axi-config {
+                                       snps,blen = <0 0 0 0 16 8 4>;
+                                       snps,rd_osr_lmt = <0x7>;
+                                       snps,wr_osr_lmt = <0x7>;
+                               };
+                       };
                };
 
                bsec: efuse@44000000 {
                                <&scmi_clk CK_SCMI_TIMG2>,
                                <&scmi_clk CK_SCMI_PLL3>,
                                <&clk_dsi_txbyte>;
+                               access-controllers = <&rifsc 156>;
                };
 
                exti1: interrupt-controller@44220000 {
index 029f8898196167d2300e06c4a4750d1e5e0b0c65..eeceb086252bfb64b52a649a8b133fabf6aacfcf 100644 (file)
@@ -12,6 +12,8 @@
                        device_type = "cpu";
                        reg = <1>;
                        enable-method = "psci";
+                       power-domains = <&CPU_PD1>;
+                       power-domain-names = "psci";
                };
        };
 
                interrupt-affinity = <&cpu0>, <&cpu1>;
        };
 
+       psci {
+               CPU_PD1: power-domain-cpu1 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+               };
+       };
+
        timer {
                interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
        };
 };
+
+&optee {
+       interrupts = <GIC_PPI 15 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+};
+
+&rifsc {
+       ethernet2: ethernet@482d0000 {
+               compatible = "st,stm32mp25-dwmac", "snps,dwmac-5.20";
+               reg = <0x482d0000 0x4000>;
+               reg-names = "stmmaceth";
+               interrupts-extended = <&intc GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "macirq";
+               clock-names = "stmmaceth",
+                             "mac-clk-tx",
+                             "mac-clk-rx",
+                             "ptp_ref",
+                             "ethstp",
+                             "eth-ck";
+               clocks = <&rcc CK_ETH2_MAC>,
+                        <&rcc CK_ETH2_TX>,
+                        <&rcc CK_ETH2_RX>,
+                        <&rcc CK_KER_ETH2PTP>,
+                        <&rcc CK_ETH2_STP>,
+                        <&rcc CK_KER_ETH2>;
+               snps,axi-config = <&stmmac_axi_config_2>;
+               snps,mixed-burst;
+               snps,mtl-rx-config = <&mtl_rx_setup_2>;
+               snps,mtl-tx-config = <&mtl_tx_setup_2>;
+               snps,pbl = <2>;
+               snps,tso;
+               st,syscon = <&syscfg 0x3400>;
+               access-controllers = <&rifsc 61>;
+               status = "disabled";
+
+               mtl_rx_setup_2: rx-queues-config {
+                       snps,rx-queues-to-use = <2>;
+                       queue0 {};
+                       queue1 {};
+               };
+
+               mtl_tx_setup_2: tx-queues-config {
+                       snps,tx-queues-to-use = <4>;
+                       queue0 {};
+                       queue1 {};
+                       queue2 {};
+                       queue3 {};
+               };
+
+               stmmac_axi_config_2: stmmac-axi-config {
+                       snps,blen = <0 0 0 0 16 8 4>;
+                       snps,rd_osr_lmt = <0x7>;
+                       snps,wr_osr_lmt = <0x7>;
+               };
+       };
+};
index 27b7360e5dbaf88dfd051d2dc5b1cc1da8ca0faf..214191a8322b81e7ae453503863b4465d9b625e0 100644 (file)
@@ -7,6 +7,7 @@
 /dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/st,stm32mp25-regulator.h>
 #include "stm32mp257.dtsi"
 #include "stm32mp25xf.dtsi"
 #include "stm32mp25-pinctrl.dtsi"
@@ -17,7 +18,9 @@
        compatible = "st,stm32mp257f-ev1", "st,stm32mp257";
 
        aliases {
+               ethernet0 = &ethernet2;
                serial0 = &usart2;
+               serial1 = &usart6;
        };
 
        chosen {
                        no-map;
                };
        };
-
-       vdd_sdcard: vdd-sdcard {
-               compatible = "regulator-fixed";
-               regulator-name = "vdd_sdcard";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-always-on;
-       };
 };
 
 &arm_wdt {
        status = "okay";
 };
 
+&ethernet2 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&eth2_rgmii_pins_a>;
+       pinctrl-1 = <&eth2_rgmii_sleep_pins_a>;
+       max-speed = <1000>;
+       phy-handle = <&phy0_eth2>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "snps,dwmac-mdio";
+               phy0_eth2: ethernet-phy@1 {
+                       compatible = "ethernet-phy-id001c.c916";
+                       reg = <1>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <300>;
+                       reset-gpios =  <&gpiog 6 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
 &i2c2 {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&i2c2_pins_a>;
        status = "disabled";
 };
 
+&scmi_regu {
+       scmi_vddio1: regulator@0 {
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+       };
+       scmi_vddcore: regulator@11  {
+               reg = <VOLTD_SCMI_STPMIC2_BUCK2>;
+               regulator-name = "vddcore";
+       };
+       scmi_v1v8: regulator@14  {
+               reg = <VOLTD_SCMI_STPMIC2_BUCK5>;
+               regulator-name = "v1v8";
+       };
+       scmi_v3v3: regulator@16 {
+               reg = <VOLTD_SCMI_STPMIC2_BUCK7>;
+               regulator-name = "v3v3";
+       };
+       scmi_vdd_emmc: regulator@18 {
+               reg = <VOLTD_SCMI_STPMIC2_LDO2>;
+               regulator-name = "vdd_emmc";
+       };
+       scmi_vdd3v3_usb: regulator@20 {
+               reg = <VOLTD_SCMI_STPMIC2_LDO4>;
+               regulator-name = "vdd3v3_usb";
+       };
+       scmi_vdd_sdcard: regulator@23 {
+               reg = <VOLTD_SCMI_STPMIC2_LDO7>;
+               regulator-name = "vdd_sdcard";
+       };
+};
+
 &sdmmc1 {
        pinctrl-names = "default", "opendrain", "sleep";
        pinctrl-0 = <&sdmmc1_b4_pins_a>;
        disable-wp;
        st,neg-edge;
        bus-width = <4>;
-       vmmc-supply = <&vdd_sdcard>;
+       vmmc-supply = <&scmi_vdd_sdcard>;
+       vqmmc-supply = <&scmi_vddio1>;
        status = "okay";
 };
 
        pinctrl-2 = <&usart2_sleep_pins_a>;
        status = "okay";
 };
+
+&usart6 {
+       pinctrl-names = "default", "idle", "sleep";
+       pinctrl-0 = <&usart6_pins_a>;
+       pinctrl-1 = <&usart6_idle_pins_a>;
+       pinctrl-2 = <&usart6_sleep_pins_a>;
+       uart-has-rtscts;
+       status = "disabled";
+};
diff --git a/src/arm64/ti/k3-am62-lp-sk-nand.dtso b/src/arm64/ti/k3-am62-lp-sk-nand.dtso
new file mode 100644 (file)
index 0000000..173ac60
--- /dev/null
@@ -0,0 +1,116 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2022-2024 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "k3-pinctrl.h"
+
+&mcasp1 {
+       status = "disabled";
+};
+
+&main_pmx0 {
+       gpmc0_pins_default: gpmc0-pins-default {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x003c, PIN_INPUT, 0) /* (K19) GPMC0_AD0 */
+                       AM62X_IOPAD(0x0040, PIN_INPUT, 0) /* (L19) GPMC0_AD1 */
+                       AM62X_IOPAD(0x0044, PIN_INPUT, 0) /* (L20) GPMC0_AD2 */
+                       AM62X_IOPAD(0x0048, PIN_INPUT, 0) /* (L21) GPMC0_AD3 */
+                       AM62X_IOPAD(0x004c, PIN_INPUT, 0) /* (M21) GPMC0_AD4 */
+                       AM62X_IOPAD(0x0050, PIN_INPUT, 0) /* (L17) GPMC0_AD5 */
+                       AM62X_IOPAD(0x0054, PIN_INPUT, 0) /* (L18) GPMC0_AD6 */
+                       AM62X_IOPAD(0x0058, PIN_INPUT, 0) /* (M20) GPMC0_AD7 */
+                       AM62X_IOPAD(0x0098, PIN_INPUT, 0) /* (P21) GPMC0_WAIT0 */
+                       AM62X_IOPAD(0x00a8, PIN_OUTPUT, 0) /* (J18) GPMC0_CSn0 */
+                       AM62X_IOPAD(0x0084, PIN_OUTPUT, 0) /* (K20) GPMC0_ADVn_ALE */
+                       AM62X_IOPAD(0x0088, PIN_OUTPUT, 0) /* (K21) GPMC0_OEn_REn */
+                       AM62X_IOPAD(0x008c, PIN_OUTPUT, 0) /* (J17) GPMC0_WEn */
+                       AM62X_IOPAD(0x0090, PIN_OUTPUT, 0) /* (K17) GPMC0_BE0n_CLE */
+                       AM62X_IOPAD(0x00a0, PIN_OUTPUT, 0) /* (J20) GPMC0_WPn */
+               >;
+       };
+};
+
+&elm0 {
+       status = "okay";
+};
+
+&gpmc0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&gpmc0_pins_default>;
+       #address-cells = <2>;
+       #size-cells = <1>;
+
+       nand@0,0 {
+               compatible = "ti,am64-nand";
+               reg = <0 0 64>;         /* device IO registers */
+               interrupt-parent = <&gpmc0>;
+               interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
+                            <1 IRQ_TYPE_NONE>; /* termcount */
+               rb-gpios = <&gpmc0 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
+               ti,nand-xfer-type = "prefetch-polled";
+               ti,nand-ecc-opt = "bch8";       /* BCH8: Bootrom limitation */
+               ti,elm-id = <&elm0>;
+               nand-bus-width = <8>;
+               gpmc,device-width = <1>;
+               gpmc,sync-clk-ps = <0>;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <40>;
+               gpmc,cs-wr-off-ns = <40>;
+               gpmc,adv-on-ns = <0>;
+               gpmc,adv-rd-off-ns = <25>;
+               gpmc,adv-wr-off-ns = <25>;
+               gpmc,we-on-ns = <0>;
+               gpmc,we-off-ns = <20>;
+               gpmc,oe-on-ns = <3>;
+               gpmc,oe-off-ns = <30>;
+               gpmc,access-ns = <30>;
+               gpmc,rd-cycle-ns = <40>;
+               gpmc,wr-cycle-ns = <40>;
+               gpmc,bus-turnaround-ns = <0>;
+               gpmc,cycle2cycle-delay-ns = <0>;
+               gpmc,clk-activation-ns = <0>;
+               gpmc,wr-access-ns = <40>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "NAND.tiboot3";
+                               reg = <0x00000000 0x00200000>;  /* 2M */
+                       };
+                       partition@200000 {
+                               label = "NAND.tispl";
+                               reg = <0x00200000 0x00200000>;  /* 2M */
+                       };
+                       partition@400000 {
+                               label = "NAND.tiboot3.backup";  /* 2M */
+                               reg = <0x00400000 0x00200000>;  /* BootROM looks at 4M */
+                       };
+                       partition@600000 {
+                               label = "NAND.u-boot";
+                               reg = <0x00600000 0x00400000>;  /* 4M */
+                       };
+                       partition@a00000 {
+                               label = "NAND.u-boot-env";
+                               reg = <0x00a00000 0x00040000>;  /* 256K */
+                       };
+                       partition@a40000 {
+                               label = "NAND.u-boot-env.backup";
+                               reg = <0x00a40000 0x00040000>;  /* 256K */
+                       };
+                       partition@a80000 {
+                               label = "NAND.file-system";
+                               reg = <0x00a80000 0x3f580000>;
+                       };
+               };
+       };
+};
index 9a17bd3e59c90f69c4465225e158dacb33db8abc..8e9fc00a6b3c7459a360f9e1d6bbb60e68c460ab 100644 (file)
 &tlv320aic3106 {
        DVDD-supply = <&buck2_reg>;
 };
+
+&gpmc0 {
+       ranges = <0 0 0x00 0x51000000 0x01000000>; /* CS0 space. Min partition = 16MB */
+};
index 448a59dc53a77c9bc6dca12d0914118eb85141da..328929c740dc0f839614a1fd98ea12e7235c8e83 100644 (file)
                        compatible = "ti,am64-dmss-pktdma";
                        reg = <0x00 0x485c0000 0x00 0x100>,
                              <0x00 0x4a800000 0x00 0x20000>,
-                             <0x00 0x4aa00000 0x00 0x40000>,
-                             <0x00 0x4b800000 0x00 0x400000>,
+                             <0x00 0x4aa00000 0x00 0x20000>,
+                             <0x00 0x4b800000 0x00 0x200000>,
                              <0x00 0x485e0000 0x00 0x10000>,
                              <0x00 0x484a0000 0x00 0x2000>,
                              <0x00 0x484c0000 0x00 0x2000>,
        crypto: crypto@40900000 {
                compatible = "ti,am62-sa3ul";
                reg = <0x00 0x40900000 0x00 0x1200>;
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges = <0x00 0x40900000 0x00 0x40900000 0x00 0x30000>;
-
                dmas = <&main_pktdma 0xf501 0>, <&main_pktdma 0x7506 0>,
                       <&main_pktdma 0x7507 0>;
                dma-names = "tx", "rx1", "rx2";
                                label = "port1";
                                phys = <&phy_gmii_sel 1>;
                                mac-address = [00 00 00 00 00 00];
-                               ti,syscon-efuse = <&wkup_conf 0x200>;
+                               ti,syscon-efuse = <&cpsw_mac_syscon 0x0>;
                        };
 
                        cpsw_port2: port@2 {
                status = "disabled";
        };
 
+       gpmc0: memory-controller@3b000000 {
+               compatible = "ti,am64-gpmc";
+               power-domains = <&k3_pds 80 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 80 0>;
+               clock-names = "fck";
+               reg = <0x00 0x03b000000 0x00 0x400>,
+                     <0x00 0x050000000 0x00 0x8000000>;
+               reg-names = "cfg", "data";
+               interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+               gpmc,num-cs = <3>;
+               gpmc,num-waitpins = <2>;
+               #address-cells = <2>;
+               #size-cells = <1>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               status = "disabled";
+       };
+
+       elm0: ecc@25010000 {
+               compatible = "ti,am64-elm";
+               reg = <0x00 0x25010000 0x00 0x2000>;
+               interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 54 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 54 0>;
+               clock-names = "fck";
+               status = "disabled";
+       };
 };
index e8f4d136e5dfb4dd67c16f450141ebf9cd498b24..9202181fbd6528e92f6f440bb0f48dc4fde2674b 100644 (file)
                        sound-dai = <&mcasp0>;
                };
        };
-
-       reg_usb_hub: regulator-usb-hub {
-               compatible = "regulator-fixed";
-               enable-active-high;
-               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
-               gpio = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
-               regulator-boot-on;
-               regulator-name = "HUB_PWR_EN";
-       };
 };
 
 /* Verdin ETHs */
        status = "okay";
 };
 
-/* Do not force CTRL_SLEEP_MOCI# always enabled */
-&reg_force_sleep_moci {
-       status = "disabled";
-};
-
 /* Verdin SD_1 */
 &sdhci1 {
        status = "okay";
 };
 
 &usb1 {
-       #address-cells = <1>;
-       #size-cells = <0>;
        status = "okay";
-
-       usb-hub@1 {
-               compatible = "usb424,2744";
-               reg = <1>;
-               vdd-supply = <&reg_usb_hub>;
-       };
 };
 
 /* Verdin CTRL_WAKE1_MICO# */
index 74eec1a1abca9f9414e9ed6d6f268101f0b22858..5c1284b802ad7fcc91ac30eac486f1210587fbd2 100644 (file)
@@ -14,6 +14,7 @@
                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 = "verdin-nau8822";
                simple-audio-card,routing =
                        "Headphones", "LHP",
@@ -34,7 +35,6 @@
                        "Line", "Line In";
 
                codec_dai: simple-audio-card,codec {
-                       clocks = <&audio_refclk1>;
                        sound-dai = <&nau8822_1a>;
                };
 
                reg = <0x1a>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_i2s1_mclk>;
+               clock-names = "mclk";
+               clocks = <&audio_refclk1>;
                #sound-dai-cells = <0>;
        };
 
index 2038c5e04639086c82442a8b925fbf5bcc1c4334..5bef31b8577be52133a4e151727ba8579d0e51ae 100644 (file)
                vin-supply = <&reg_1v8>;
        };
 
-       /*
-        * By default we enable CTRL_SLEEP_MOCI#, this is required to have
-        * peripherals on the carrier board powered.
-        * If more granularity or power saving is required this can be disabled
-        * in the carrier board device tree files.
-        */
        reg_force_sleep_moci: regulator-force-sleep-moci {
                compatible = "regulator-fixed";
                enable-active-high;
               0 0 0 0
        >;
        tdm-slots = <2>;
-       rx-num-evt = <32>;
-       tx-num-evt = <32>;
        #sound-dai-cells = <0>;
        status = "disabled";
 };
               0 0 0 0
        >;
        tdm-slots = <2>;
-       rx-num-evt = <32>;
-       tx-num-evt = <32>;
        #sound-dai-cells = <0>;
        status = "disabled";
 };
index 66ddf2dc51afa7870a27ebabac19799726a834aa..e0afafd532a5c63f29ca0dabc541ffa22dde609b 100644 (file)
                        reg = <0x14 0x4>;
                };
 
+               cpsw_mac_syscon: ethernet-mac-syscon@200 {
+                       compatible = "ti,am62p-cpsw-mac-efuse", "syscon";
+                       reg = <0x200 0x8>;
+               };
+
                usb0_phy_ctrl: syscon@4008 {
                        compatible = "ti,am62-usb-phy-ctrl", "syscon";
                        reg = <0x4008 0x4>;
index f0781f2bea29806e1485d1b8d53f2342d124dcae..bfb55ca113239be4367a1cf8edf219187fafa8a0 100644 (file)
                         <0x00 0x30200000 0x00 0x30200000 0x00 0x00010000>, /* DSS */
                         <0x00 0x31000000 0x00 0x31000000 0x00 0x00050000>, /* USB0 DWC3 Core window */
                         <0x00 0x31100000 0x00 0x31100000 0x00 0x00050000>, /* USB1 DWC3 Core window */
+                        <0x00 0x3b000000 0x00 0x3b000000 0x00 0x00000400>, /* GPMC0_CFG */
                         <0x00 0x40900000 0x00 0x40900000 0x00 0x00030000>, /* SA3UL */
                         <0x00 0x43600000 0x00 0x43600000 0x00 0x00010000>, /* SA3 sproxy data */
                         <0x00 0x44043000 0x00 0x44043000 0x00 0x00000fe0>, /* TI SCI DEBUG */
                         <0x00 0x44860000 0x00 0x44860000 0x00 0x00040000>, /* SA3 sproxy config */
                         <0x00 0x48000000 0x00 0x48000000 0x00 0x06400000>, /* DMSS */
+                        <0x00 0x50000000 0x00 0x50000000 0x00 0x08000000>, /* GPMC0 DATA */
                         <0x00 0x60000000 0x00 0x60000000 0x00 0x08000000>, /* FSS0 DAT1 */
                         <0x00 0x70000000 0x00 0x70000000 0x00 0x00010000>, /* OCSRAM */
                         <0x01 0x00000000 0x01 0x00000000 0x00 0x00310000>, /* A53 PERIPHBASE */
index 18e3070a86839f7a4c3816037bf71781e5a3441b..70de288d728e447d5053eab3c1417f23212a66e4 100644 (file)
               0 0 0 0
               0 0 0 0
        >;
-       tx-num-evt = <32>;
-       rx-num-evt = <32>;
 };
diff --git a/src/arm64/ti/k3-am625-phyboard-lyra-1-4-ghz-opp.dtso b/src/arm64/ti/k3-am625-phyboard-lyra-1-4-ghz-opp.dtso
new file mode 100644 (file)
index 0000000..6ec6d57
--- /dev/null
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (C) 2024 PHYTEC America LLC
+ * Author: Nathan Morrisson <nmorrisson@phytec.com>
+ */
+
+/dts-v1/;
+/plugin/;
+
+&vdd_core {
+       regulator-min-microvolt = <850000>;
+       regulator-max-microvolt = <850000>;
+};
+
+&a53_opp_table {
+       opp-1400000000 {
+               opp-hz = /bits/ 64 <1400000000>;
+               opp-supported-hw = <0x01 0x0004>;
+       };
+};
index 50d2573c840ee9bb553d778e07b4e0aad279ef55..4fa5efdffcd70e4544f02fa531a204724ce3f665 100644 (file)
  * https://www.phytec.com/product/phyboard-am62x
  */
 
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
-#include <dt-bindings/net/ti-dp83867.h>
 #include "k3-am625.dtsi"
 #include "k3-am62-phycore-som.dtsi"
+#include "k3-am62x-phyboard-lyra.dtsi"
 
 / {
        compatible = "phytec,am625-phyboard-lyra-rdk",
                     "phytec,am62-phycore-som", "ti,am625";
        model = "PHYTEC phyBOARD-Lyra AM625";
-
-       aliases {
-               serial2 = &main_uart0;
-               serial3 = &main_uart1;
-               mmc1 = &sdhci1;
-               usb0 = &usb0;
-               usb1 = &usb1;
-               ethernet1 = &cpsw_port2;
-       };
-
-       can_tc1: can-phy0 {
-               compatible = "ti,tcan1042";
-               #phy-cells = <0>;
-               max-bitrate = <8000000>;
-               standby-gpios = <&gpio_exp 1 GPIO_ACTIVE_HIGH>;
-       };
-
-       hdmi0: connector-hdmi {
-               compatible = "hdmi-connector";
-               label = "hdmi";
-               type = "a";
-
-               port {
-                       hdmi_connector_in: endpoint {
-                               remote-endpoint = <&sii9022_out>;
-                       };
-               };
-       };
-
-       keys {
-               compatible = "gpio-keys";
-               autorepeat;
-               pinctrl-names = "default";
-               pinctrl-0 = <&gpio_keys_pins_default>;
-
-               key-home {
-                       label = "home";
-                       linux,code = <KEY_HOME>;
-                       gpios = <&main_gpio1 23 GPIO_ACTIVE_HIGH>;
-               };
-
-               key-menu {
-                       label = "menu";
-                       linux,code = <KEY_MENU>;
-                       gpios = <&gpio_exp 4 GPIO_ACTIVE_HIGH>;
-               };
-       };
-
-       sound {
-               compatible = "simple-audio-card";
-               simple-audio-card,name = "phyBOARD-Lyra";
-               simple-audio-card,widgets =
-                       "Microphone",           "Mic Jack",
-                       "Headphone",            "Headphone Jack",
-                       "Speaker",              "External Speaker";
-               simple-audio-card,routing =
-                       "MIC3R",                "Mic Jack",
-                       "Mic Jack",             "Mic Bias",
-                       "Headphone Jack",       "HPLOUT",
-                       "Headphone Jack",       "HPROUT",
-                       "External Speaker",     "SPOP",
-                       "External Speaker",     "SPOM";
-               simple-audio-card,format = "dsp_b";
-               simple-audio-card,bitclock-master = <&sound_master>;
-               simple-audio-card,frame-master = <&sound_master>;
-               simple-audio-card,bitclock-inversion;
-
-               simple-audio-card,cpu {
-                       sound-dai = <&mcasp2>;
-               };
-
-               sound_master: simple-audio-card,codec {
-                               sound-dai = <&audio_codec>;
-                               clocks = <&audio_refclk1>;
-               };
-       };
-
-       leds {
-               compatible = "gpio-leds";
-               pinctrl-names = "default";
-               pinctrl-0 = <&leds_pins_default>, <&user_leds_pins_default>;
-
-               led-1 {
-                       gpios = <&main_gpio0 32 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "mmc0";
-               };
-
-               led-2 {
-                       gpios = <&gpio_exp 2 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "mmc1";
-               };
-       };
-
-       vcc_1v8: regulator-vcc-1v8 {
-               compatible = "regulator-fixed";
-               regulator-name = "VCC_1V8";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               regulator-always-on;
-               regulator-boot-on;
-       };
-
-       vcc_3v3_mmc: regulator-vcc-3v3-mmc {
-               compatible = "regulator-fixed";
-               regulator-name = "VCC_3V3_MMC";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-always-on;
-               regulator-boot-on;
-       };
-
-       vcc_3v3_sw: regulator-vcc-3v3-sw {
-               compatible = "regulator-fixed";
-               regulator-name = "VCC_3V3_SW";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-always-on;
-               regulator-boot-on;
-       };
-};
-
-&main_pmx0 {
-       audio_ext_refclk1_pins_default: audio-ext-refclk1-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x0a0, PIN_OUTPUT, 1) /* (K25) GPMC0_WPn.AUDIO_EXT_REFCLK1 */
-               >;
-       };
-
-       gpio_keys_pins_default: gpio-keys-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x1d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */
-               >;
-       };
-
-       gpio_exp_int_pins_default: gpio-exp-int-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x244, PIN_INPUT, 7) /* (C17) MMC1_SDWP.GPIO1_49 */
-               >;
-       };
-
-       hdmi_int_pins_default: hdmi-int-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x040, PIN_INPUT, 7) /* (N23) GPMC0_AD1.GPIO0_16 */
-               >;
-       };
-
-       main_dss0_pins_default: main-dss0-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x0b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
-                       AM62X_IOPAD(0x0bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
-                       AM62X_IOPAD(0x0e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
-                       AM62X_IOPAD(0x0e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
-                       AM62X_IOPAD(0x0e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
-                       AM62X_IOPAD(0x0ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
-                       AM62X_IOPAD(0x0f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
-                       AM62X_IOPAD(0x0f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
-                       AM62X_IOPAD(0x0c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
-                       AM62X_IOPAD(0x0c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
-                       AM62X_IOPAD(0x0c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
-                       AM62X_IOPAD(0x0cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
-                       AM62X_IOPAD(0x0d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
-                       AM62X_IOPAD(0x0d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
-                       AM62X_IOPAD(0x0d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
-                       AM62X_IOPAD(0x0dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
-                       AM62X_IOPAD(0x0fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
-                       AM62X_IOPAD(0x0f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
-                       AM62X_IOPAD(0x104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
-                       AM62X_IOPAD(0x100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
-               >;
-       };
-
-       main_i2c1_pins_default: main-i2c1-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x1e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */
-                       AM62X_IOPAD(0x1ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */
-               >;
-       };
-
-       main_mcan0_pins_default: main-mcan0-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x1dc, PIN_INPUT, 0) /* (E15) MCAN0_RX */
-                       AM62X_IOPAD(0x1d8, PIN_OUTPUT, 0) /* (C15) MCAN0_TX */
-               >;
-       };
-
-       main_mcasp2_pins_default: main-mcasp2-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x070, PIN_INPUT, 3) /* (T24) GPMC0_AD13.MCASP2_ACLKX */
-                       AM62X_IOPAD(0x06c, PIN_INPUT, 3) /* (T22) GPMC0_AD12.MCASP2_AFSX */
-                       AM62X_IOPAD(0x064, PIN_OUTPUT, 3) /* (T25) GPMC0_AD10.MCASP2_AXR2 */
-                       AM62X_IOPAD(0x068, PIN_INPUT, 3) /* (R21) GPMC0_AD11.MCASP2_AXR3 */
-               >;
-       };
-
-       main_mmc1_pins_default: main-mmc1-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x23c, PIN_INPUT_PULLUP, 0) /* (A21) MMC1_CMD */
-                       AM62X_IOPAD(0x234, PIN_INPUT_PULLDOWN, 0) /* (B22) MMC1_CLK */
-                       AM62X_IOPAD(0x230, PIN_INPUT_PULLUP, 0) /* (A22) MMC1_DAT0 */
-                       AM62X_IOPAD(0x22c, PIN_INPUT_PULLUP, 0) /* (B21) MMC1_DAT1 */
-                       AM62X_IOPAD(0x228, PIN_INPUT_PULLUP, 0) /* (C21) MMC1_DAT2 */
-                       AM62X_IOPAD(0x224, PIN_INPUT_PULLUP, 0) /* (D22) MMC1_DAT3 */
-                       AM62X_IOPAD(0x240, PIN_INPUT_PULLUP, 0) /* (D17) MMC1_SDCD */
-               >;
-       };
-
-       main_rgmii2_pins_default: main-rgmii2-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x184, PIN_INPUT, 0) /* (AE23) RGMII2_RD0 */
-                       AM62X_IOPAD(0x188, PIN_INPUT, 0) /* (AB20) RGMII2_RD1 */
-                       AM62X_IOPAD(0x18c, PIN_INPUT, 0) /* (AC21) RGMII2_RD2 */
-                       AM62X_IOPAD(0x190, PIN_INPUT, 0) /* (AE22) RGMII2_RD3 */
-                       AM62X_IOPAD(0x180, PIN_INPUT, 0) /* (AD23) RGMII2_RXC */
-                       AM62X_IOPAD(0x17c, PIN_INPUT, 0) /* (AD22) RGMII2_RX_CTL */
-                       AM62X_IOPAD(0x16c, PIN_OUTPUT, 0) /* (Y18) RGMII2_TD0 */
-                       AM62X_IOPAD(0x170, PIN_OUTPUT, 0) /* (AA18) RGMII2_TD1 */
-                       AM62X_IOPAD(0x174, PIN_OUTPUT, 0) /* (AD21) RGMII2_TD2 */
-                       AM62X_IOPAD(0x178, PIN_OUTPUT, 0) /* (AC20) RGMII2_TD3 */
-                       AM62X_IOPAD(0x168, PIN_OUTPUT, 0) /* (AE21) RGMII2_TXC */
-                       AM62X_IOPAD(0x164, PIN_OUTPUT, 0) /* (AA19) RGMII2_TX_CTL */
-               >;
-       };
-
-       main_uart0_pins_default: main-uart0-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14) UART0_RXD */
-                       AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */
-               >;
-       };
-
-       main_uart1_pins_default: main-uart1-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x194, PIN_INPUT, 2) /* (B19) MCASP0_AXR3.UART1_CTSn */
-                       AM62X_IOPAD(0x198, PIN_OUTPUT, 2) /* (A19) MCASP0_AXR2.UART1_RTSn */
-                       AM62X_IOPAD(0x1ac, PIN_INPUT, 2) /* (E19) MCASP0_AFSR.UART1_RXD */
-                       AM62X_IOPAD(0x1b0, PIN_OUTPUT, 2) /* (A20) MCASP0_ACLKR.UART1_TXD */
-               >;
-       };
-
-       main_usb1_pins_default: main-usb1-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */
-               >;
-       };
-
-       user_leds_pins_default: user-leds-default-pins {
-               pinctrl-single,pins = <
-                       AM62X_IOPAD(0x084, PIN_OUTPUT, 7) /* (L23) GPMC0_ADVn_ALE.GPIO0_32 */
-               >;
-       };
-};
-
-&cpsw3g {
-       pinctrl-names = "default";
-       pinctrl-0 = <&main_rgmii1_pins_default>, <&main_rgmii2_pins_default>;
-};
-
-&cpsw_port2 {
-       phy-mode = "rgmii-rxid";
-       phy-handle = <&cpsw3g_phy3>;
-};
-
-&cpsw3g_mdio {
-       cpsw3g_phy3: ethernet-phy@3 {
-               compatible = "ethernet-phy-id2000.a231", "ethernet-phy-ieee802.3-c22";
-               reg = <3>;
-               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
-               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
-               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
-       };
-};
-
-&dss {
-       pinctrl-names = "default";
-       pinctrl-0 = <&main_dss0_pins_default>;
-       status = "okay";
-};
-
-&dss_ports {
-       #address-cells = <1>;
-       #size-cells = <0>;
-
-       /* VP2: DPI/HDMI Output */
-       port@1 {
-               reg = <1>;
-
-               dpi1_out: endpoint {
-                       remote-endpoint = <&sii9022_in>;
-               };
-       };
-};
-
-&main_i2c1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&main_i2c1_pins_default>;
-       clock-frequency = <100000>;
-       status = "okay";
-
-       audio_codec: audio-codec@18 {
-               pinctrl-names = "default";
-               pinctrl-0 = <&audio_ext_refclk1_pins_default>;
-
-               #sound-dai-cells = <0>;
-               compatible = "ti,tlv320aic3007";
-               reg = <0x18>;
-               ai3x-micbias-vg = <2>;
-
-               AVDD-supply = <&vcc_3v3_sw>;
-               IOVDD-supply = <&vcc_3v3_sw>;
-               DRVDD-supply = <&vcc_3v3_sw>;
-               DVDD-supply = <&vcc_1v8>;
-       };
-
-       gpio_exp: gpio-expander@21 {
-               pinctrl-names = "default";
-               pinctrl-0 = <&gpio_exp_int_pins_default>;
-               compatible = "nxp,pcf8574";
-               reg = <0x21>;
-               interrupt-parent = <&main_gpio1>;
-               interrupts = <49 0>;
-               #gpio-cells = <2>;
-               gpio-controller;
-               interrupt-controller;
-               #interrupt-cells = <2>;
-               gpio-line-names = "", "GPIO1_CAN0_nEN",
-                                 "GPIO2_LED2", "GPIO3_LVDS_GPIO",
-                                 "GPIO4_BUT2", "GPIO5_LVDS_BKLT_EN",
-                                 "GPIO6_ETH1_USER_RESET", "GPIO7_AUDIO_USER_RESET";
-       };
-
-       usb-pd@22 {
-               compatible = "ti,tps6598x";
-               reg = <0x22>;
-
-               connector {
-                       compatible = "usb-c-connector";
-                       label = "USB-C";
-                       self-powered;
-                       data-role = "dual";
-                       power-role = "sink";
-                       port {
-                               usb_con_hs: endpoint {
-                                       remote-endpoint = <&typec_hs>;
-                               };
-                       };
-               };
-       };
-
-       sii9022: bridge-hdmi@39 {
-               compatible = "sil,sii9022";
-               reg = <0x39>;
-
-               interrupt-parent = <&main_gpio0>;
-               interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&hdmi_int_pins_default>;
-
-               ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       port@0 {
-                               reg = <0>;
-
-                               sii9022_in: endpoint {
-                                       remote-endpoint = <&dpi1_out>;
-                               };
-                       };
-
-                       port@1 {
-                               reg = <1>;
-
-                               sii9022_out: endpoint {
-                                       remote-endpoint = <&hdmi_connector_in>;
-                               };
-                       };
-               };
-       };
-
-       eeprom@51 {
-               compatible = "atmel,24c02";
-               pagesize = <16>;
-               reg = <0x51>;
-       };
-};
-
-&main_mcan0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&main_mcan0_pins_default>;
-       phys = <&can_tc1>;
-       status = "okay";
-};
-
-&main_uart0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&main_uart0_pins_default>;
-       status = "okay";
-};
-
-&main_uart1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&main_uart1_pins_default>;
-       /* Main UART1 may be used by TIFS firmware */
-       status = "okay";
-};
-
-&mcasp2 {
-       #sound-dai-cells = <0>;
-
-       pinctrl-names = "default";
-       pinctrl-0 = <&main_mcasp2_pins_default>;
-
-       /* MCASP_IIS_MODE */
-       op-mode = <0>;
-       tdm-slots = <2>;
-
-       /* 0: INACTIVE, 1: TX, 2: RX */
-       serial-dir = <
-                       0 0 1 2
-                       0 0 0 0
-                       0 0 0 0
-                       0 0 0 0
-       >;
-       tx-num-evt = <32>;
-       rx-num-evt = <32>;
-       status = "okay";
-};
-
-&sdhci1 {
-       vmmc-supply = <&vcc_3v3_mmc>;
-       vqmmc-supply = <&vddshv5_sdio>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&main_mmc1_pins_default>;
-       disable-wp;
-       no-1-8-v;
-       status = "okay";
-};
-
-&usbss0 {
-       ti,vbus-divider;
-       status = "okay";
-};
-
-&usbss1 {
-       ti,vbus-divider;
-       status = "okay";
-};
-
-&usb0 {
-       usb-role-switch;
-
-       port {
-               typec_hs: endpoint {
-                       remote-endpoint = <&usb_con_hs>;
-               };
-       };
-};
-
-&usb1 {
-       dr_mode = "host";
-       pinctrl-names = "default";
-       pinctrl-0 = <&main_usb1_pins_default>;
 };
index bf9c2d9c6439a90c04db51bb123972fa1b5fbd6d..916fcf3cc57d1314c1d7cc36edd151d74a38c474 100644 (file)
                        reg = <0x4130 0x4>;
                        #clock-cells = <1>;
                };
+
+               audio_refclk0: clock-controller@82e0 {
+                       compatible = "ti,am62-audio-refclk";
+                       reg = <0x82e0 0x4>;
+                       clocks = <&k3_clks 157 0>;
+                       assigned-clocks = <&k3_clks 157 0>;
+                       assigned-clock-parents = <&k3_clks 157 8>;
+                       #clock-cells = <0>;
+               };
+
+               audio_refclk1: clock-controller@82e4 {
+                       compatible = "ti,am62-audio-refclk";
+                       reg = <0x82e4 0x4>;
+                       clocks = <&k3_clks 157 10>;
+                       assigned-clocks = <&k3_clks 157 10>;
+                       assigned-clock-parents = <&k3_clks 157 18>;
+                       #clock-cells = <0>;
+               };
        };
 
        dmss: bus@48000000 {
                        compatible = "ti,am64-dmss-pktdma";
                        reg = <0x00 0x485c0000 0x00 0x100>,
                              <0x00 0x4a800000 0x00 0x20000>,
-                             <0x00 0x4aa00000 0x00 0x40000>,
-                             <0x00 0x4b800000 0x00 0x400000>,
+                             <0x00 0x4aa00000 0x00 0x20000>,
+                             <0x00 0x4b800000 0x00 0x200000>,
                              <0x00 0x485e0000 0x00 0x10000>,
                              <0x00 0x484a0000 0x00 0x2000>,
                              <0x00 0x484c0000 0x00 0x2000>,
                };
        };
 
+       crypto: crypto@40900000 {
+               compatible = "ti,am62-sa3ul";
+               reg = <0x00 0x40900000 0x00 0x1200>;
+               dmas = <&main_pktdma 0xf501 0>, <&main_pktdma 0x7506 0>,
+                      <&main_pktdma 0x7507 0>;
+               dma-names = "tx", "rx1", "rx2";
+       };
+
        secure_proxy_sa3: mailbox@43600000 {
                compatible = "ti,am654-secure-proxy";
                #mbox-cells = <1>;
                                label = "port1";
                                phys = <&phy_gmii_sel 1>;
                                mac-address = [00 00 00 00 00 00];
-                               ti,syscon-efuse = <&wkup_conf 0x200>;
+                               ti,syscon-efuse = <&cpsw_mac_syscon 0x0>;
                        };
 
                        cpsw_port2: port@2 {
diff --git a/src/arm64/ti/k3-am62a-phycore-som.dtsi b/src/arm64/ti/k3-am62a-phycore-som.dtsi
new file mode 100644 (file)
index 0000000..a5aceaa
--- /dev/null
@@ -0,0 +1,330 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (C) 2023 - 2024 PHYTEC America LLC
+ * Author: Garrett Giordano <ggiordano@phytec.com>
+ *
+ * Product homepage:
+ * https://www.phytec.com/product/phycore-am62a
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/net/ti-dp83867.h>
+
+/ {
+       model = "PHYTEC phyCORE-AM62Ax";
+       compatible = "phytec,am62a-phycore-som", "ti,am62a7";
+
+       aliases {
+               ethernet0 = &cpsw_port1;
+               gpio0 = &main_gpio0;
+               gpio1 = &main_gpio1;
+               i2c0 = &main_i2c0;
+               mmc0 = &sdhci0;
+               rtc0 = &i2c_som_rtc;
+               spi0 = &ospi0;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&leds_pins_default>;
+
+               led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&main_gpio0 13 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       function = LED_FUNCTION_HEARTBEAT;
+               };
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               /* 2G RAM */
+               reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* global cma region */
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0x00 0x24000000>;
+                       alloc-ranges = <0x00 0xc0000000 0x00 0x24000000>;
+                       linux,cma-default;
+               };
+
+               secure_tfa_ddr: tfa@9e780000 {
+                       reg = <0x00 0x9e780000 0x00 0x80000>;
+                       alignment = <0x1000>;
+                       no-map;
+               };
+
+               secure_ddr: optee@9e800000 {
+                       reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
+                       alignment = <0x1000>;
+                       no-map;
+               };
+
+               wkup_r5fss0_core0_memory_region: r5f-dma-memory@9c900000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00 0x9c900000 0x00 0x01e00000>;
+                       no-map;
+               };
+       };
+
+       vcc_5v0_som: regulator-vcc-5v0-som {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_5V0_SOM";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&main_pmx0 {
+       leds_pins_default: leds-default-pins {
+               pinctrl-single,pins = <
+                       AM62AX_IOPAD(0x034, PIN_OUTPUT, 7) /* (K20) OSPI0_CSN2.GPIO0_13 */
+               >;
+       };
+
+       main_i2c0_pins_default: main-i2c0-default-pins {
+               pinctrl-single,pins = <
+                       AM62AX_IOPAD(0x1e0, PIN_INPUT_PULLUP, 0) /* (D17) I2C0_SCL */
+                       AM62AX_IOPAD(0x1e4, PIN_INPUT_PULLUP, 0) /* (E16) I2C0_SDA */
+               >;
+       };
+
+       main_mdio1_pins_default: main-mdio1-default-pins {
+               pinctrl-single,pins = <
+                       AM62AX_IOPAD(0x160, PIN_OUTPUT, 0) /* (V12) MDIO0_MDC */
+                       AM62AX_IOPAD(0x15c, PIN_INPUT, 0) /* (V13) MDIO0_MDIO */
+               >;
+       };
+
+       main_mmc0_pins_default: main-mmc0-default-pins {
+               pinctrl-single,pins = <
+                       AM62AX_IOPAD(0x220, PIN_INPUT_PULLUP, 0) /* (Y6) MMC0_CMD */
+                       AM62AX_IOPAD(0x218, PIN_INPUT_PULLDOWN, 0) /* (AB7) MMC0_CLK */
+                       AM62AX_IOPAD(0x214, PIN_INPUT_PULLUP, 0) /* (AA6) MMC0_DAT0 */
+                       AM62AX_IOPAD(0x210, PIN_INPUT_PULLUP, 0) /* (AB6) MMC0_DAT1 */
+                       AM62AX_IOPAD(0x20c, PIN_INPUT_PULLUP, 0) /* (Y7) MMC0_DAT2 */
+                       AM62AX_IOPAD(0x208, PIN_INPUT_PULLUP, 0) /* (AA7) MMC0_DAT3 */
+                       AM62AX_IOPAD(0x204, PIN_INPUT_PULLUP, 0) /* (Y8) MMC0_DAT4 */
+                       AM62AX_IOPAD(0x200, PIN_INPUT_PULLUP, 0) /* (W7) MMC0_DAT5 */
+                       AM62AX_IOPAD(0x1fc, PIN_INPUT_PULLUP, 0) /* (W9) MMC0_DAT6 */
+                       AM62AX_IOPAD(0x1f8, PIN_INPUT_PULLUP, 0) /* (AB8) MMC0_DAT7 */
+               >;
+       };
+
+       main_rgmii1_pins_default: main-rgmii1-default-pins {
+               pinctrl-single,pins = <
+                       AM62AX_IOPAD(0x14c, PIN_INPUT, 0) /* (AB16) RGMII1_RD0 */
+                       AM62AX_IOPAD(0x150, PIN_INPUT, 0) /* (V15) RGMII1_RD1 */
+                       AM62AX_IOPAD(0x154, PIN_INPUT, 0) /* (W15) RGMII1_RD2 */
+                       AM62AX_IOPAD(0x158, PIN_INPUT, 0) /* (V14) RGMII1_RD3 */
+                       AM62AX_IOPAD(0x148, PIN_INPUT, 0) /* (AA16) RGMII1_RXC */
+                       AM62AX_IOPAD(0x144, PIN_INPUT, 0) /* (AA15) RGMII1_RX_CTL */
+                       AM62AX_IOPAD(0x134, PIN_OUTPUT, 0) /* (Y17) RGMII1_TD0 */
+                       AM62AX_IOPAD(0x138, PIN_OUTPUT, 0) /* (V16) RGMII1_TD1 */
+                       AM62AX_IOPAD(0x13c, PIN_OUTPUT, 0) /* (Y16) RGMII1_TD2 */
+                       AM62AX_IOPAD(0x140, PIN_OUTPUT, 0) /* (AA17) RGMII1_TD3 */
+                       AM62AX_IOPAD(0x130, PIN_OUTPUT, 0) /* (AB17) RGMII1_TXC */
+                       AM62AX_IOPAD(0x12c, PIN_OUTPUT, 0) /* (W16) RGMII1_TX_CTL */
+               >;
+       };
+
+       ospi0_pins_default: ospi0-default-pins {
+               pinctrl-single,pins = <
+                       AM62AX_IOPAD(0x000, PIN_OUTPUT, 0) /* (L22) OSPI0_CLK */
+                       AM62AX_IOPAD(0x02c, PIN_OUTPUT, 0) /* (H21) OSPI0_CSn0 */
+                       AM62AX_IOPAD(0x038, PIN_OUTPUT, 0) /* (G20) OSPI0_CSn3 */
+                       AM62AX_IOPAD(0x00c, PIN_INPUT, 0) /* (J21) OSPI0_D0 */
+                       AM62AX_IOPAD(0x010, PIN_INPUT, 0) /* (J18) OSPI0_D1 */
+                       AM62AX_IOPAD(0x014, PIN_INPUT, 0) /* (J19) OSPI0_D2 */
+                       AM62AX_IOPAD(0x018, PIN_INPUT, 0) /* (H18) OSPI0_D3 */
+                       AM62AX_IOPAD(0x01c, PIN_INPUT, 0) /* (K21) OSPI0_D4 */
+                       AM62AX_IOPAD(0x020, PIN_INPUT, 0) /* (H19) OSPI0_D5 */
+                       AM62AX_IOPAD(0x024, PIN_INPUT, 0) /* (J20) OSPI0_D6 */
+                       AM62AX_IOPAD(0x028, PIN_INPUT, 0) /* (J22) OSPI0_D7 */
+                       AM62AX_IOPAD(0x008, PIN_INPUT, 0) /* (L21) OSPI0_DQS */
+               >;
+       };
+
+       pmic_irq_pins_default: pmic-irq-default-pins {
+               pinctrl-single,pins = <
+                       AM62AX_IOPAD(0x1f4, PIN_INPUT, 0) /* (D16) EXTINTn */
+               >;
+       };
+};
+
+&cpsw3g {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_rgmii1_pins_default>;
+};
+
+&cpsw_port1 {
+       phy-mode = "rgmii-rxid";
+       phy-handle = <&cpsw3g_phy1>;
+};
+
+&cpsw3g_mdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mdio1_pins_default>;
+
+       cpsw3g_phy1: ethernet-phy@1 {
+               compatible = "ethernet-phy-id2000.a231", "ethernet-phy-ieee802.3-c22";
+               reg = <1>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+       };
+};
+
+&fss {
+       status = "okay";
+};
+
+&main_i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_i2c0_pins_default>;
+       clock-frequency = <400000>;
+       status = "okay";
+
+       pmic@30 {
+               compatible = "ti,tps65219";
+               reg = <0x30>;
+               buck1-supply = <&vcc_5v0_som>;
+               buck2-supply = <&vcc_5v0_som>;
+               buck3-supply = <&vcc_5v0_som>;
+               ldo1-supply = <&vdd_3v3>;
+               ldo2-supply = <&vdd_1v8>;
+               ldo3-supply = <&vcc_5v0_som>;
+               ldo4-supply = <&vcc_5v0_som>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_irq_pins_default>;
+               interrupt-parent = <&gic500>;
+               interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-controller;
+               #interrupt-cells = <1>;
+               ti,power-button;
+               system-power-controller;
+
+               regulators {
+                       vdd_3v3: buck1 {
+                               regulator-name = "VDD_3V3";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vdd_1v8: buck2 {
+                               regulator-name = "VDD_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vdd_lpddr4: buck3 {
+                               regulator-name = "VDD_LPDDR4";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vddshv5_sdio: ldo1 {
+                               regulator-name = "VDDSHV5_SDIO";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-allow-bypass;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vddr_core: ldo2 {
+                               regulator-name = "VDDR_CORE";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vdda_1v8: ldo3 {
+                               regulator-name = "VDDA_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vdd_2v5: ldo4 {
+                               regulator-name = "VDD_2V5";
+                               regulator-min-microvolt = <2500000>;
+                               regulator-max-microvolt = <2500000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c32";
+               pagesize = <32>;
+               reg = <0x50>;
+       };
+
+       i2c_som_rtc: rtc@52 {
+               compatible = "microcrystal,rv3028";
+               reg = <0x52>;
+       };
+};
+
+&main_gpio0 {
+       status = "okay";
+};
+
+&main_gpio1 {
+       status = "okay";
+};
+
+&main_gpio_intr {
+       status = "okay";
+};
+
+&ospi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&ospi0_pins_default>;
+       status = "okay";
+
+       serial_flash: flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0x0>;
+               spi-tx-bus-width = <8>;
+               spi-rx-bus-width = <8>;
+               spi-max-frequency = <25000000>;
+               cdns,tshsl-ns = <60>;
+               cdns,tsd2d-ns = <60>;
+               cdns,tchsh-ns = <60>;
+               cdns,tslch-ns = <60>;
+               cdns,read-delay = <0>;
+       };
+};
+
+&sdhci0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mmc0_pins_default>;
+       disable-wp;
+       non-removable;
+       status = "okay";
+};
index 98043e9aa316b82f1c781eb1f4c84dded1e81ec6..f5ac101a04dfa0bdae8ac4f43b01473725433c51 100644 (file)
@@ -6,9 +6,8 @@
  */
 
 &cbass_wakeup {
-       wkup_conf: syscon@43000000 {
-               compatible = "ti,j721e-system-controller", "syscon", "simple-mfd";
-               reg = <0x00 0x43000000 0x00 0x20000>;
+       wkup_conf: bus@43000000 {
+               compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0x00 0x00 0x43000000 0x20000>;
                        reg = <0x14 0x4>;
                };
 
+               cpsw_mac_syscon: ethernet-mac-syscon@200 {
+                       compatible = "ti,am62p-cpsw-mac-efuse", "syscon";
+                       reg = <0x200 0x8>;
+               };
+
                usb0_phy_ctrl: syscon@4008 {
                        compatible = "ti,am62-usb-phy-ctrl", "syscon";
                        reg = <0x4008 0x4>;
@@ -59,7 +63,6 @@
                clock-names = "vbus", "osc32k";
                power-domains = <&k3_pds 117 TI_SCI_PD_EXCLUSIVE>;
                wakeup-source;
-               status = "disabled";
        };
 
        wkup_rti0: watchdog@2b000000 {
diff --git a/src/arm64/ti/k3-am62a7-phyboard-lyra-rdk.dts b/src/arm64/ti/k3-am62a7-phyboard-lyra-rdk.dts
new file mode 100644 (file)
index 0000000..3b93409
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (C) 2023 - 2024 PHYTEC America LLC
+ * Author: Garrett Giordano <ggiordano@phytec.com>
+ *
+ * Product homepage:
+ * https://www.phytec.com/product/phyboard-am62a
+ */
+
+#include "k3-am62a7.dtsi"
+#include "k3-am62a-phycore-som.dtsi"
+#include "k3-am62x-phyboard-lyra.dtsi"
+
+/ {
+       compatible = "phytec,am62a7-phyboard-lyra-rdk",
+                    "phytec,am62a-phycore-som", "ti,am62a7";
+       model = "PHYTEC phyBOARD-Lyra AM62A7";
+};
index fa43cd0b631e62af66eb962c80e88e67696eb074..67faf46d7a35a5954a5a832b8ab766320b48ea59 100644 (file)
                #size-cells = <2>;
                ranges;
 
+               /* global cma region */
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0x00 0x24000000>;
+                       alloc-ranges = <0x00 0xc0000000 0x00 0x24000000>;
+                       linux,cma-default;
+               };
+
                secure_tfa_ddr: tfa@9e780000 {
                        reg = <0x00 0x9e780000 0x00 0x80000>;
                        alignment = <0x1000>;
               0 0 0 0
               0 0 0 0
        >;
-       tx-num-evt = <32>;
-       rx-num-evt = <32>;
 };
 
 &dss {
diff --git a/src/arm64/ti/k3-am62p-j722s-common-main.dtsi b/src/arm64/ti/k3-am62p-j722s-common-main.dtsi
new file mode 100644 (file)
index 0000000..9701fc6
--- /dev/null
@@ -0,0 +1,1062 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Device Tree file for the MAIN domain peripherals shared by AM62P and J722S
+ *
+ * Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+&cbass_main {
+       oc_sram: sram@70000000 {
+               compatible = "mmio-sram";
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+
+       gic500: interrupt-controller@1800000 {
+               compatible = "arm,gic-v3";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               #interrupt-cells = <3>;
+               interrupt-controller;
+               reg = <0x00 0x01800000 0x00 0x10000>,   /* GICD */
+                     <0x00 0x01880000 0x00 0xc0000>,   /* GICR */
+                     <0x01 0x00000000 0x00 0x2000>,    /* GICC */
+                     <0x01 0x00010000 0x00 0x1000>,    /* GICH */
+                     <0x01 0x00020000 0x00 0x2000>;    /* GICV */
+               /*
+                * vcpumntirq:
+                * virtual CPU interface maintenance interrupt
+                */
+               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+
+               gic_its: msi-controller@1820000 {
+                       compatible = "arm,gic-v3-its";
+                       reg = <0x00 0x01820000 0x00 0x10000>;
+                       socionext,synquacer-pre-its = <0x1000000 0x400000>;
+                       msi-controller;
+                       #msi-cells = <1>;
+               };
+       };
+
+       main_conf: bus@100000 {
+               compatible = "simple-bus";
+               reg = <0x00 0x00100000 0x00 0x20000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x00 0x00 0x00100000 0x20000>;
+
+               phy_gmii_sel: phy@4044 {
+                       compatible = "ti,am654-phy-gmii-sel";
+                       reg = <0x4044 0x8>;
+                       #phy-cells = <1>;
+               };
+
+               epwm_tbclk: clock-controller@4130 {
+                       compatible = "ti,am62-epwm-tbclk";
+                       reg = <0x4130 0x4>;
+                       #clock-cells = <1>;
+               };
+       };
+
+       dmss: bus@48000000 {
+               compatible = "simple-bus";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               dma-ranges;
+               ranges = <0x00 0x48000000 0x00 0x48000000 0x00 0x06400000>;
+               bootph-all;
+
+               ti,sci-dev-id = <25>;
+
+               secure_proxy_main: mailbox@4d000000 {
+                       compatible = "ti,am654-secure-proxy";
+                       #mbox-cells = <1>;
+                       reg-names = "target_data", "rt", "scfg";
+                       reg = <0x00 0x4d000000 0x00 0x80000>,
+                             <0x00 0x4a600000 0x00 0x80000>,
+                             <0x00 0x4a400000 0x00 0x80000>;
+                       interrupt-names = "rx_012";
+                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+                       bootph-all;
+               };
+
+               inta_main_dmss: interrupt-controller@48000000 {
+                       compatible = "ti,sci-inta";
+                       reg = <0x00 0x48000000 0x00 0x100000>;
+                       #interrupt-cells = <0>;
+                       interrupt-controller;
+                       interrupt-parent = <&gic500>;
+                       msi-controller;
+                       ti,sci = <&dmsc>;
+                       ti,sci-dev-id = <28>;
+                       ti,unmapped-event-sources = <&main_bcdma>, <&main_pktdma>;
+               };
+
+               main_bcdma: dma-controller@485c0100 {
+                       compatible = "ti,am64-dmss-bcdma";
+                       reg = <0x00 0x485c0100 0x00 0x100>,
+                             <0x00 0x4c000000 0x00 0x20000>,
+                             <0x00 0x4a820000 0x00 0x20000>,
+                             <0x00 0x4aa40000 0x00 0x20000>,
+                             <0x00 0x4bc00000 0x00 0x100000>,
+                             <0x00 0x48600000 0x00 0x8000>,
+                             <0x00 0x484a4000 0x00 0x2000>,
+                             <0x00 0x484c2000 0x00 0x2000>,
+                             <0x00 0x48420000 0x00 0x2000>;
+                       reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt",
+                                   "ring", "tchan", "rchan", "bchan";
+                       msi-parent = <&inta_main_dmss>;
+                       #dma-cells = <3>;
+
+                       ti,sci = <&dmsc>;
+                       ti,sci-dev-id = <26>;
+                       ti,sci-rm-range-bchan = <0x20>; /* BLOCK_COPY_CHAN */
+                       ti,sci-rm-range-rchan = <0x21>; /* SPLIT_TR_RX_CHAN */
+                       ti,sci-rm-range-tchan = <0x22>; /* SPLIT_TR_TX_CHAN */
+                       bootph-all;
+               };
+
+               main_pktdma: dma-controller@485c0000 {
+                       compatible = "ti,am64-dmss-pktdma";
+                       reg = <0x00 0x485c0000 0x00 0x100>,
+                             <0x00 0x4a800000 0x00 0x20000>,
+                             <0x00 0x4aa00000 0x00 0x20000>,
+                             <0x00 0x4b800000 0x00 0x200000>,
+                             <0x00 0x485e0000 0x00 0x10000>,
+                             <0x00 0x484a0000 0x00 0x2000>,
+                             <0x00 0x484c0000 0x00 0x2000>,
+                             <0x00 0x48430000 0x00 0x1000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt",
+                                   "ring", "tchan", "rchan", "rflow";
+                       msi-parent = <&inta_main_dmss>;
+                       #dma-cells = <2>;
+                       bootph-all;
+
+                       ti,sci = <&dmsc>;
+                       ti,sci-dev-id = <30>;
+                       ti,sci-rm-range-tchan = <0x23>, /* UNMAPPED_TX_CHAN */
+                                               <0x24>, /* CPSW_TX_CHAN */
+                                               <0x25>, /* SAUL_TX_0_CHAN */
+                                               <0x26>; /* SAUL_TX_1_CHAN */
+                       ti,sci-rm-range-tflow = <0x10>, /* RING_UNMAPPED_TX_CHAN */
+                                               <0x11>, /* RING_CPSW_TX_CHAN */
+                                               <0x12>, /* RING_SAUL_TX_0_CHAN */
+                                               <0x13>; /* RING_SAUL_TX_1_CHAN */
+                       ti,sci-rm-range-rchan = <0x29>, /* UNMAPPED_RX_CHAN */
+                                               <0x2b>, /* CPSW_RX_CHAN */
+                                               <0x2d>, /* SAUL_RX_0_CHAN */
+                                               <0x2f>, /* SAUL_RX_1_CHAN */
+                                               <0x31>, /* SAUL_RX_2_CHAN */
+                                               <0x33>; /* SAUL_RX_3_CHAN */
+                       ti,sci-rm-range-rflow = <0x2a>, /* FLOW_UNMAPPED_RX_CHAN */
+                                               <0x2c>, /* FLOW_CPSW_RX_CHAN */
+                                               <0x2e>, /* FLOW_SAUL_RX_0/1_CHAN */
+                                               <0x32>; /* FLOW_SAUL_RX_2/3_CHAN */
+               };
+       };
+
+       dmss_csi: bus@4e000000 {
+               compatible = "simple-bus";
+               ranges = <0x00 0x4e000000 0x00 0x4e000000 0x00 0x408000>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               dma-ranges;
+               ti,sci-dev-id = <198>;
+
+               inta_main_dmss_csi: interrupt-controller@4e400000 {
+                       compatible = "ti,sci-inta";
+                       reg = <0x00 0x4e400000 0x00 0x8000>;
+                       #interrupt-cells = <0>;
+                       interrupt-controller;
+                       interrupt-parent = <&gic500>;
+                       msi-controller;
+                       power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
+                       ti,sci = <&dmsc>;
+                       ti,sci-dev-id = <200>;
+                       ti,interrupt-ranges = <0 237 8>;
+                       ti,unmapped-event-sources = <&main_bcdma_csi>;
+               };
+
+               main_bcdma_csi: dma-controller@4e230000 {
+                       compatible = "ti,am62a-dmss-bcdma-csirx";
+                       reg = <0x00 0x4e230000 0x00 0x100>,
+                             <0x00 0x4e180000 0x00 0x8000>,
+                             <0x00 0x4e100000 0x00 0x10000>;
+                       reg-names = "gcfg", "rchanrt", "ringrt";
+                       #dma-cells = <3>;
+                       msi-parent = <&inta_main_dmss_csi>;
+                       power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
+                       ti,sci = <&dmsc>;
+                       ti,sci-dev-id = <199>;
+                       ti,sci-rm-range-rchan = <0x21>;
+               };
+       };
+
+       dmsc: system-controller@44043000 {
+               compatible = "ti,k2g-sci";
+               ti,host-id = <12>;
+               mbox-names = "rx", "tx";
+               mboxes = <&secure_proxy_main 12>,
+                        <&secure_proxy_main 13>;
+               reg-names = "debug_messages";
+               reg = <0x00 0x44043000 0x00 0xfe0>;
+               bootph-all;
+
+               k3_pds: power-controller {
+                       compatible = "ti,sci-pm-domain";
+                       #power-domain-cells = <2>;
+                       bootph-all;
+               };
+
+               k3_clks: clock-controller {
+                       compatible = "ti,k2g-sci-clk";
+                       #clock-cells = <2>;
+                       bootph-all;
+               };
+
+               k3_reset: reset-controller {
+                       compatible = "ti,sci-reset";
+                       #reset-cells = <2>;
+                       bootph-all;
+               };
+       };
+
+       crypto: crypto@40900000 {
+               compatible = "ti,am62-sa3ul";
+               reg = <0x00 0x40900000 0x00 0x1200>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               dmas = <&main_pktdma 0xf501 0>, <&main_pktdma 0x7506 0>,
+                      <&main_pktdma 0x7507 0>;
+               dma-names = "tx", "rx1", "rx2";
+       };
+
+       secure_proxy_sa3: mailbox@43600000 {
+               compatible = "ti,am654-secure-proxy";
+               #mbox-cells = <1>;
+               reg-names = "target_data", "rt", "scfg";
+               reg = <0x00 0x43600000 0x00 0x10000>,
+                     <0x00 0x44880000 0x00 0x20000>,
+                     <0x00 0x44860000 0x00 0x20000>;
+               /*
+                * Marked Disabled:
+                * Node is incomplete as it is meant for bootloaders and
+                * firmware on non-MPU processors
+                */
+               status = "disabled";
+               bootph-all;
+       };
+
+       main_pmx0: pinctrl@f4000 {
+               compatible = "pinctrl-single";
+               reg = <0x00 0xf4000 0x00 0x2ac>;
+               #pinctrl-cells = <1>;
+               pinctrl-single,register-width = <32>;
+               pinctrl-single,function-mask = <0xffffffff>;
+               bootph-all;
+       };
+
+       main_esm: esm@420000 {
+               compatible = "ti,j721e-esm";
+               reg = <0x00 0x420000 0x00 0x1000>;
+               ti,esm-pins = <160>, <161>, <162>, <163>, <177>, <178>;
+               bootph-pre-ram;
+       };
+
+       main_timer0: timer@2400000 {
+               compatible = "ti,am654-timer";
+               reg = <0x00 0x2400000 0x00 0x400>;
+               interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&k3_clks 36 2>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 36 2>;
+               assigned-clock-parents = <&k3_clks 36 3>;
+               power-domains = <&k3_pds 36 TI_SCI_PD_EXCLUSIVE>;
+               ti,timer-pwm;
+               bootph-all;
+       };
+
+       main_timer1: timer@2410000 {
+               compatible = "ti,am654-timer";
+               reg = <0x00 0x2410000 0x00 0x400>;
+               interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&k3_clks 37 2>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 37 2>;
+               assigned-clock-parents = <&k3_clks 37 3>;
+               power-domains = <&k3_pds 37 TI_SCI_PD_EXCLUSIVE>;
+               ti,timer-pwm;
+       };
+
+       main_timer2: timer@2420000 {
+               compatible = "ti,am654-timer";
+               reg = <0x00 0x2420000 0x00 0x400>;
+               interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&k3_clks 38 2>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 38 2>;
+               assigned-clock-parents = <&k3_clks 38 3>;
+               power-domains = <&k3_pds 38 TI_SCI_PD_EXCLUSIVE>;
+               ti,timer-pwm;
+       };
+
+       main_timer3: timer@2430000 {
+               compatible = "ti,am654-timer";
+               reg = <0x00 0x2430000 0x00 0x400>;
+               interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&k3_clks 39 2>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 39 2>;
+               assigned-clock-parents = <&k3_clks 39 3>;
+               power-domains = <&k3_pds 39 TI_SCI_PD_EXCLUSIVE>;
+               ti,timer-pwm;
+       };
+
+       main_timer4: timer@2440000 {
+               compatible = "ti,am654-timer";
+               reg = <0x00 0x2440000 0x00 0x400>;
+               interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&k3_clks 40 2>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 40 2>;
+               assigned-clock-parents = <&k3_clks 40 3>;
+               power-domains = <&k3_pds 40 TI_SCI_PD_EXCLUSIVE>;
+               ti,timer-pwm;
+       };
+
+       main_timer5: timer@2450000 {
+               compatible = "ti,am654-timer";
+               reg = <0x00 0x2450000 0x00 0x400>;
+               interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&k3_clks 41 2>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 41 2>;
+               assigned-clock-parents = <&k3_clks 41 3>;
+               power-domains = <&k3_pds 41 TI_SCI_PD_EXCLUSIVE>;
+               ti,timer-pwm;
+       };
+
+       main_timer6: timer@2460000 {
+               compatible = "ti,am654-timer";
+               reg = <0x00 0x2460000 0x00 0x400>;
+               interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&k3_clks 42 2>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 42 2>;
+               assigned-clock-parents = <&k3_clks 42 3>;
+               power-domains = <&k3_pds 42 TI_SCI_PD_EXCLUSIVE>;
+               ti,timer-pwm;
+       };
+
+       main_timer7: timer@2470000 {
+               compatible = "ti,am654-timer";
+               reg = <0x00 0x2470000 0x00 0x400>;
+               interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&k3_clks 43 2>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 43 2>;
+               assigned-clock-parents = <&k3_clks 43 3>;
+               power-domains = <&k3_pds 43 TI_SCI_PD_EXCLUSIVE>;
+               ti,timer-pwm;
+       };
+
+       main_uart0: serial@2800000 {
+               compatible = "ti,am64-uart", "ti,am654-uart";
+               reg = <0x00 0x02800000 0x00 0x100>;
+               interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 146 0>;
+               clock-names = "fclk";
+               status = "disabled";
+       };
+
+       main_uart1: serial@2810000 {
+               compatible = "ti,am64-uart", "ti,am654-uart";
+               reg = <0x00 0x02810000 0x00 0x100>;
+               interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 152 0>;
+               clock-names = "fclk";
+               status = "disabled";
+       };
+
+       main_uart2: serial@2820000 {
+               compatible = "ti,am64-uart", "ti,am654-uart";
+               reg = <0x00 0x02820000 0x00 0x100>;
+               interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 153 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 153 0>;
+               clock-names = "fclk";
+               status = "disabled";
+       };
+
+       main_uart3: serial@2830000 {
+               compatible = "ti,am64-uart", "ti,am654-uart";
+               reg = <0x00 0x02830000 0x00 0x100>;
+               interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 154 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 154 0>;
+               clock-names = "fclk";
+               status = "disabled";
+       };
+
+       main_uart4: serial@2840000 {
+               compatible = "ti,am64-uart", "ti,am654-uart";
+               reg = <0x00 0x02840000 0x00 0x100>;
+               interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 155 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 155 0>;
+               clock-names = "fclk";
+               status = "disabled";
+       };
+
+       main_uart5: serial@2850000 {
+               compatible = "ti,am64-uart", "ti,am654-uart";
+               reg = <0x00 0x02850000 0x00 0x100>;
+               interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 156 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 156 0>;
+               clock-names = "fclk";
+               status = "disabled";
+       };
+
+       main_uart6: serial@2860000 {
+               compatible = "ti,am64-uart", "ti,am654-uart";
+               reg = <0x00 0x02860000 0x00 0x100>;
+               interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 158 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 158 0>;
+               clock-names = "fclk";
+               status = "disabled";
+       };
+
+       main_i2c0: i2c@20000000 {
+               compatible = "ti,am64-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x20000000 0x00 0x100>;
+               interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               power-domains = <&k3_pds 102 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 102 2>;
+               clock-names = "fck";
+               status = "disabled";
+       };
+
+       main_i2c1: i2c@20010000 {
+               compatible = "ti,am64-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x20010000 0x00 0x100>;
+               interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               power-domains = <&k3_pds 103 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 103 2>;
+               clock-names = "fck";
+               status = "disabled";
+       };
+
+       main_i2c2: i2c@20020000 {
+               compatible = "ti,am64-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x20020000 0x00 0x100>;
+               interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               power-domains = <&k3_pds 104 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 104 2>;
+               clock-names = "fck";
+               status = "disabled";
+       };
+
+       main_i2c3: i2c@20030000 {
+               compatible = "ti,am64-i2c", "ti,omap4-i2c";
+               reg = <0x00 0x20030000 0x00 0x100>;
+               interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               power-domains = <&k3_pds 105 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 105 2>;
+               clock-names = "fck";
+               status = "disabled";
+       };
+
+       main_spi0: spi@20100000 {
+               compatible = "ti,am654-mcspi", "ti,omap4-mcspi";
+               reg = <0x00 0x20100000 0x00 0x400>;
+               interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               power-domains = <&k3_pds 141 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 141 0>;
+               status = "disabled";
+       };
+
+       main_spi1: spi@20110000 {
+               compatible = "ti,am654-mcspi","ti,omap4-mcspi";
+               reg = <0x00 0x20110000 0x00 0x400>;
+               interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               power-domains = <&k3_pds 142 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 142 0>;
+               status = "disabled";
+       };
+
+       main_spi2: spi@20120000 {
+               compatible = "ti,am654-mcspi","ti,omap4-mcspi";
+               reg = <0x00 0x20120000 0x00 0x400>;
+               interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               power-domains = <&k3_pds 143 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 143 0>;
+               status = "disabled";
+       };
+
+       main_gpio_intr: interrupt-controller@a00000 {
+               compatible = "ti,sci-intr";
+               reg = <0x00 0x00a00000 0x00 0x800>;
+               ti,intr-trigger-type = <1>;
+               interrupt-controller;
+               interrupt-parent = <&gic500>;
+               #interrupt-cells = <1>;
+               ti,sci = <&dmsc>;
+               ti,sci-dev-id = <3>;
+               ti,interrupt-ranges = <0 32 16>;
+       };
+
+       main_gpio0: gpio@600000 {
+               compatible = "ti,am64-gpio", "ti,keystone-gpio";
+               reg = <0x00 0x00600000 0x00 0x100>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&main_gpio_intr>;
+               interrupts = <190>, <191>, <192>,
+                            <193>, <194>, <195>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               ti,davinci-gpio-unbanked = <0>;
+               power-domains = <&k3_pds 77 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 77 0>;
+               clock-names = "gpio";
+       };
+
+       main_gpio1: gpio@601000 {
+               compatible = "ti,am64-gpio", "ti,keystone-gpio";
+               reg = <0x00 0x00601000 0x00 0x100>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&main_gpio_intr>;
+               interrupts = <180>, <181>, <182>,
+                            <183>, <184>, <185>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               ti,davinci-gpio-unbanked = <0>;
+               power-domains = <&k3_pds 78 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 78 0>;
+               clock-names = "gpio";
+       };
+
+       sdhci0: mmc@fa10000 {
+               compatible = "ti,am64-sdhci-8bit";
+               reg = <0x00 0x0fa10000 0x00 0x1000>, <0x00 0x0fa18000 0x00 0x400>;
+               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 57 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 57 1>, <&k3_clks 57 2>;
+               clock-names = "clk_ahb", "clk_xin";
+               assigned-clocks = <&k3_clks 57 2>;
+               assigned-clock-parents = <&k3_clks 57 4>;
+               bus-width = <8>;
+               mmc-ddr-1_8v;
+               mmc-hs200-1_8v;
+               mmc-hs400-1_8v;
+               ti,clkbuf-sel = <0x7>;
+               ti,strobe-sel = <0x77>;
+               ti,trm-icp = <0x8>;
+               ti,otap-del-sel-legacy = <0x1>;
+               ti,otap-del-sel-mmc-hs = <0x1>;
+               ti,otap-del-sel-ddr52 = <0x6>;
+               ti,otap-del-sel-hs200 = <0x8>;
+               ti,otap-del-sel-hs400 = <0x5>;
+               ti,itap-del-sel-legacy = <0x10>;
+               ti,itap-del-sel-mmc-hs = <0xa>;
+               ti,itap-del-sel-ddr52 = <0x3>;
+               status = "disabled";
+       };
+
+       sdhci1: mmc@fa00000 {
+               compatible = "ti,am62-sdhci";
+               reg = <0x00 0x0fa00000 0x00 0x1000>, <0x00 0x0fa08000 0x00 0x400>;
+               interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 58 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 58 5>, <&k3_clks 58 6>;
+               clock-names = "clk_ahb", "clk_xin";
+               bus-width = <4>;
+               ti,clkbuf-sel = <0x7>;
+               ti,otap-del-sel-legacy = <0x0>;
+               ti,otap-del-sel-sd-hs = <0x0>;
+               ti,otap-del-sel-sdr12 = <0xf>;
+               ti,otap-del-sel-sdr25 = <0xf>;
+               ti,otap-del-sel-sdr50 = <0xc>;
+               ti,otap-del-sel-ddr50 = <0x9>;
+               ti,otap-del-sel-sdr104 = <0x6>;
+               ti,itap-del-sel-legacy = <0x0>;
+               ti,itap-del-sel-sd-hs = <0x0>;
+               ti,itap-del-sel-sdr12 = <0x0>;
+               ti,itap-del-sel-sdr25 = <0x0>;
+               status = "disabled";
+       };
+
+       sdhci2: mmc@fa20000 {
+               compatible = "ti,am62-sdhci";
+               reg = <0x00 0x0fa20000 0x00 0x1000>, <0x00 0x0fa28000 0x00 0x400>;
+               interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 184 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 184 5>, <&k3_clks 184 6>;
+               clock-names = "clk_ahb", "clk_xin";
+               bus-width = <4>;
+               ti,clkbuf-sel = <0x7>;
+               ti,otap-del-sel-legacy = <0x0>;
+               ti,otap-del-sel-sd-hs = <0x0>;
+               ti,otap-del-sel-sdr12 = <0xf>;
+               ti,otap-del-sel-sdr25 = <0xf>;
+               ti,otap-del-sel-sdr50 = <0xc>;
+               ti,otap-del-sel-ddr50 = <0x9>;
+               ti,otap-del-sel-sdr104 = <0x6>;
+               ti,itap-del-sel-legacy = <0x0>;
+               ti,itap-del-sel-sd-hs = <0x0>;
+               ti,itap-del-sel-sdr12 = <0x0>;
+               ti,itap-del-sel-sdr25 = <0x0>;
+               status = "disabled";
+       };
+
+       usbss0: usb@f900000 {
+               compatible = "ti,am62-usb";
+               reg = <0x00 0x0f900000 0x00 0x800>,
+                     <0x00 0x0f908000 0x00 0x400>;
+               clocks = <&k3_clks 161 3>;
+               clock-names = "ref";
+               ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl 0x0>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               power-domains = <&k3_pds 178 TI_SCI_PD_EXCLUSIVE>;
+               ranges;
+               status = "disabled";
+
+               usb0: usb@31000000 {
+                       compatible = "snps,dwc3";
+                       reg = <0x00 0x31000000 0x00 0x50000>;
+                       interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
+                       <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */
+                       interrupt-names = "host", "peripheral";
+                       maximum-speed = "high-speed";
+                       dr_mode = "otg";
+                       snps,usb2-gadget-lpm-disable;
+                       snps,usb2-lpm-disable;
+               };
+       };
+
+       fss: bus@fc00000 {
+               compatible = "simple-bus";
+               reg = <0x00 0x0fc00000 0x00 0x70000>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               ospi0: spi@fc40000 {
+                       compatible = "ti,am654-ospi", "cdns,qspi-nor";
+                       reg = <0x00 0x0fc40000 0x00 0x100>,
+                             <0x05 0x00000000 0x01 0x00000000>;
+                       interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
+                       cdns,fifo-depth = <256>;
+                       cdns,fifo-width = <4>;
+                       cdns,trigger-address = <0x0>;
+                       clocks = <&k3_clks 75 7>;
+                       assigned-clocks = <&k3_clks 75 7>;
+                       assigned-clock-parents = <&k3_clks 75 8>;
+                       assigned-clock-rates = <166666666>;
+                       power-domains = <&k3_pds 75 TI_SCI_PD_EXCLUSIVE>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+       };
+
+       cpsw3g: ethernet@8000000 {
+               compatible = "ti,am642-cpsw-nuss";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               reg = <0x00 0x08000000 0x00 0x200000>;
+               reg-names = "cpsw_nuss";
+               ranges = <0x00 0x00 0x00 0x08000000 0x00 0x200000>;
+               clocks = <&k3_clks 13 0>;
+               assigned-clocks = <&k3_clks 13 3>;
+               assigned-clock-parents = <&k3_clks 13 11>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 13 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+
+               dmas = <&main_pktdma 0xc600 15>,
+                      <&main_pktdma 0xc601 15>,
+                      <&main_pktdma 0xc602 15>,
+                      <&main_pktdma 0xc603 15>,
+                      <&main_pktdma 0xc604 15>,
+                      <&main_pktdma 0xc605 15>,
+                      <&main_pktdma 0xc606 15>,
+                      <&main_pktdma 0xc607 15>,
+                      <&main_pktdma 0x4600 15>;
+               dma-names = "tx0", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6",
+                           "tx7", "rx";
+
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cpsw_port1: port@1 {
+                               reg = <1>;
+                               ti,mac-only;
+                               label = "port1";
+                               phys = <&phy_gmii_sel 1>;
+                               mac-address = [00 00 00 00 00 00];
+                               ti,syscon-efuse = <&cpsw_mac_syscon 0x0>;
+                               status = "disabled";
+                       };
+
+                       cpsw_port2: port@2 {
+                               reg = <2>;
+                               ti,mac-only;
+                               label = "port2";
+                               phys = <&phy_gmii_sel 2>;
+                               mac-address = [00 00 00 00 00 00];
+                               status = "disabled";
+                       };
+               };
+
+               cpsw3g_mdio: mdio@f00 {
+                       compatible = "ti,cpsw-mdio","ti,davinci_mdio";
+                       reg = <0x00 0xf00 0x00 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&k3_clks 13 0>;
+                       clock-names = "fck";
+                       bus_freq = <1000000>;
+                       status = "disabled";
+               };
+
+               cpts@3d000 {
+                       compatible = "ti,j721e-cpts";
+                       reg = <0x00 0x3d000 0x00 0x400>;
+                       clocks = <&k3_clks 13 3>;
+                       clock-names = "cpts";
+                       interrupts-extended = <&gic500 GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "cpts";
+                       ti,cpts-ext-ts-inputs = <4>;
+                       ti,cpts-periodic-outputs = <2>;
+               };
+       };
+
+       hwspinlock: spinlock@2a000000 {
+               compatible = "ti,am64-hwspinlock";
+               reg = <0x00 0x2a000000 0x00 0x1000>;
+               #hwlock-cells = <1>;
+       };
+
+       mailbox0_cluster0: mailbox@29000000 {
+               compatible = "ti,am64-mailbox";
+               reg = <0x00 0x29000000 0x00 0x200>;
+               interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
+               #mbox-cells = <1>;
+               ti,mbox-num-users = <4>;
+               ti,mbox-num-fifos = <16>;
+       };
+
+       mailbox0_cluster1: mailbox@29010000 {
+               compatible = "ti,am64-mailbox";
+               reg = <0x00 0x29010000 0x00 0x200>;
+               interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
+               #mbox-cells = <1>;
+               ti,mbox-num-users = <4>;
+               ti,mbox-num-fifos = <16>;
+       };
+
+       mailbox0_cluster2: mailbox@29020000 {
+               compatible = "ti,am64-mailbox";
+               reg = <0x00 0x29020000 0x00 0x200>;
+               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+               #mbox-cells = <1>;
+               ti,mbox-num-users = <4>;
+               ti,mbox-num-fifos = <16>;
+       };
+
+       mailbox0_cluster3: mailbox@29030000 {
+               compatible = "ti,am64-mailbox";
+               reg = <0x00 0x29030000 0x00 0x200>;
+               interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
+               #mbox-cells = <1>;
+               ti,mbox-num-users = <4>;
+               ti,mbox-num-fifos = <16>;
+       };
+
+       ecap0: pwm@23100000 {
+               compatible = "ti,am3352-ecap";
+               #pwm-cells = <3>;
+               reg = <0x00 0x23100000 0x00 0x100>;
+               power-domains = <&k3_pds 51 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 51 0>;
+               clock-names = "fck";
+               status = "disabled";
+       };
+
+       ecap1: pwm@23110000 {
+               compatible = "ti,am3352-ecap";
+               #pwm-cells = <3>;
+               reg = <0x00 0x23110000 0x00 0x100>;
+               power-domains = <&k3_pds 52 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 52 0>;
+               clock-names = "fck";
+               status = "disabled";
+       };
+
+       ecap2: pwm@23120000 {
+               compatible = "ti,am3352-ecap";
+               #pwm-cells = <3>;
+               reg = <0x00 0x23120000 0x00 0x100>;
+               power-domains = <&k3_pds 53 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 53 0>;
+               clock-names = "fck";
+               status = "disabled";
+       };
+
+       main_mcan0: can@20701000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x20701000 0x00 0x200>,
+                     <0x00 0x20708000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 98 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 98 6>, <&k3_clks 98 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+               status = "disabled";
+       };
+
+       main_mcan1: can@20711000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x20711000 0x00 0x200>,
+                     <0x00 0x20718000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 99 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 99 6>, <&k3_clks 99 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+               status = "disabled";
+       };
+
+       main_rti0: watchdog@e000000 {
+               compatible = "ti,j7-rti-wdt";
+               reg = <0x00 0x0e000000 0x00 0x100>;
+               clocks = <&k3_clks 125 0>;
+               power-domains = <&k3_pds 125 TI_SCI_PD_EXCLUSIVE>;
+               assigned-clocks = <&k3_clks 125 0>;
+               assigned-clock-parents = <&k3_clks 125 2>;
+       };
+
+       main_rti1: watchdog@e010000 {
+               compatible = "ti,j7-rti-wdt";
+               reg = <0x00 0x0e010000 0x00 0x100>;
+               clocks = <&k3_clks 126 0>;
+               power-domains = <&k3_pds 126 TI_SCI_PD_EXCLUSIVE>;
+               assigned-clocks = <&k3_clks 126 0>;
+               assigned-clock-parents = <&k3_clks 126 2>;
+       };
+
+       main_rti2: watchdog@e020000 {
+               compatible = "ti,j7-rti-wdt";
+               reg = <0x00 0x0e020000 0x00 0x100>;
+               clocks = <&k3_clks 127 0>;
+               power-domains = <&k3_pds 127 TI_SCI_PD_EXCLUSIVE>;
+               assigned-clocks = <&k3_clks 127 0>;
+               assigned-clock-parents = <&k3_clks 127 2>;
+       };
+
+       main_rti3: watchdog@e030000 {
+               compatible = "ti,j7-rti-wdt";
+               reg = <0x00 0x0e030000 0x00 0x100>;
+               clocks = <&k3_clks 128 0>;
+               power-domains = <&k3_pds 128 TI_SCI_PD_EXCLUSIVE>;
+               assigned-clocks = <&k3_clks 128 0>;
+               assigned-clock-parents = <&k3_clks 128 2>;
+       };
+
+       main_rti15: watchdog@e0f0000 {
+               compatible = "ti,j7-rti-wdt";
+               reg = <0x00 0x0e0f0000 0x00 0x100>;
+               clocks = <&k3_clks 130 0>;
+               power-domains = <&k3_pds 130 TI_SCI_PD_EXCLUSIVE>;
+               assigned-clocks = <&k3_clks 130 0>;
+               assigned-clock-parents = <&k3_clks 130 2>;
+       };
+
+       epwm0: pwm@23000000 {
+               compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
+               #pwm-cells = <3>;
+               reg = <0x00 0x23000000 0x00 0x100>;
+               power-domains = <&k3_pds 86 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&epwm_tbclk 0>, <&k3_clks 86 0>;
+               clock-names = "tbclk", "fck";
+               status = "disabled";
+       };
+
+       epwm1: pwm@23010000 {
+               compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
+               #pwm-cells = <3>;
+               reg = <0x00 0x23010000 0x00 0x100>;
+               power-domains = <&k3_pds 87 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&epwm_tbclk 1>, <&k3_clks 87 0>;
+               clock-names = "tbclk", "fck";
+               status = "disabled";
+       };
+
+       epwm2: pwm@23020000 {
+               compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
+               #pwm-cells = <3>;
+               reg = <0x00 0x23020000 0x00 0x100>;
+               power-domains = <&k3_pds 88 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&epwm_tbclk 2>, <&k3_clks 88 0>;
+               clock-names = "tbclk", "fck";
+               status = "disabled";
+       };
+
+       mcasp0: audio-controller@2b00000 {
+               compatible = "ti,am33xx-mcasp-audio";
+               reg = <0x00 0x02b00000 0x00 0x2000>,
+                     <0x00 0x02b08000 0x00 0x400>;
+               reg-names = "mpu", "dat";
+               interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tx", "rx";
+
+               dmas = <&main_bcdma 0 0xc500 0>, <&main_bcdma 0 0x4500 0>;
+               dma-names = "tx", "rx";
+
+               clocks = <&k3_clks 190 0>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 190 0>;
+               assigned-clock-parents = <&k3_clks 190 2>;
+               power-domains = <&k3_pds 190 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+       };
+
+       mcasp1: audio-controller@2b10000 {
+               compatible = "ti,am33xx-mcasp-audio";
+               reg = <0x00 0x02b10000 0x00 0x2000>,
+                     <0x00 0x02b18000 0x00 0x400>;
+               reg-names = "mpu", "dat";
+               interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tx", "rx";
+
+               dmas = <&main_bcdma 0 0xc501 0>, <&main_bcdma 0 0x4501 0>;
+               dma-names = "tx", "rx";
+
+               clocks = <&k3_clks 191 0>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 191 0>;
+               assigned-clock-parents = <&k3_clks 191 2>;
+               power-domains = <&k3_pds 191 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+       };
+
+       mcasp2: audio-controller@2b20000 {
+               compatible = "ti,am33xx-mcasp-audio";
+               reg = <0x00 0x02b20000 0x00 0x2000>,
+                     <0x00 0x02b28000 0x00 0x400>;
+               reg-names = "mpu", "dat";
+               interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tx", "rx";
+
+               dmas = <&main_bcdma 0 0xc502 0>, <&main_bcdma 0 0x4502 0>;
+               dma-names = "tx", "rx";
+
+               clocks = <&k3_clks 192 0>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 192 0>;
+               assigned-clock-parents = <&k3_clks 192 2>;
+               power-domains = <&k3_pds 192 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+       };
+
+       ti_csi2rx0: ticsi2rx@30102000 {
+               compatible = "ti,j721e-csi2rx-shim";
+               reg = <0x00 0x30102000 0x00 0x1000>;
+               ranges;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               dmas = <&main_bcdma_csi 0 0x5000 0>;
+               dma-names = "rx0";
+               power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+
+               cdns_csi2rx0: csi-bridge@30101000 {
+                       compatible = "ti,j721e-csi2rx", "cdns,csi2rx";
+                       reg = <0x00 0x30101000 0x00 0x1000>;
+                       clocks = <&k3_clks 182 0>, <&k3_clks 182 3>, <&k3_clks 182 0>,
+                               <&k3_clks 182 0>, <&k3_clks 182 4>, <&k3_clks 182 4>;
+                       clock-names = "sys_clk", "p_clk", "pixel_if0_clk",
+                               "pixel_if1_clk", "pixel_if2_clk", "pixel_if3_clk";
+                       phys = <&dphy0>;
+                       phy-names = "dphy";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               csi0_port0: port@0 {
+                                       reg = <0>;
+                                       status = "disabled";
+                               };
+
+                               csi0_port1: port@1 {
+                                       reg = <1>;
+                                       status = "disabled";
+                               };
+
+                               csi0_port2: port@2 {
+                                       reg = <2>;
+                                       status = "disabled";
+                               };
+
+                               csi0_port3: port@3 {
+                                       reg = <3>;
+                                       status = "disabled";
+                               };
+
+                               csi0_port4: port@4 {
+                                       reg = <4>;
+                                       status = "disabled";
+                               };
+                       };
+               };
+       };
+
+       dphy0: phy@30110000 {
+               compatible = "cdns,dphy-rx";
+               reg = <0x00 0x30110000 0x00 0x1100>;
+               #phy-cells = <0>;
+               power-domains = <&k3_pds 185 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+       };
+
+       vpu: video-codec@30210000 {
+               compatible = "ti,j721s2-wave521c", "cnm,wave521c";
+               reg = <0x00 0x30210000 0x00 0x10000>;
+               interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&k3_clks 204 2>;
+               power-domains = <&k3_pds 204 TI_SCI_PD_EXCLUSIVE>;
+       };
+};
similarity index 93%
rename from src/arm64/ti/k3-am62p-mcu.dtsi
rename to src/arm64/ti/k3-am62p-j722s-common-mcu.dtsi
index b973b550eb9dfca9951957febc519ea7b93c2694..df7945156397b14015661193c93a006308501bed 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-only OR MIT
 /*
- * Device Tree file for the AM62P MCU domain peripherals
+ * Device Tree file for the MCU domain peripherals shared by AM62P and J722S
+ *
  * Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
  */
 
                #pinctrl-cells = <1>;
                pinctrl-single,register-width = <32>;
                pinctrl-single,function-mask = <0xffffffff>;
+               pinctrl-single,gpio-range =
+                       <&mcu_pmx_range 0 21 PIN_GPIO_RANGE_IOPAD>,
+                       <&mcu_pmx_range 23 1 PIN_GPIO_RANGE_IOPAD>,
+                       <&mcu_pmx_range 32 2 PIN_GPIO_RANGE_IOPAD>;
                bootph-all;
+
+               mcu_pmx_range: gpio-range {
+                       #pinctrl-single,gpio-range-cells = <3>;
+               };
        };
 
        mcu_esm: esm@4100000 {
                power-domains = <&k3_pds 79 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 79 0>;
                clock-names = "gpio";
+               gpio-ranges = <&mcu_pmx0 0 0 21>, <&mcu_pmx0 21 23 1>,
+                             <&mcu_pmx0 22 32 2>;
        };
 
        mcu_rti0: watchdog@4880000 {
similarity index 93%
rename from src/arm64/ti/k3-am62p-wakeup.dtsi
rename to src/arm64/ti/k3-am62p-j722s-common-wakeup.dtsi
index c71d9624ea27712c6034679d0ea8fe31395bdc20..315d0092e73664416998cb34d9b9f5fa70a311c2 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-only OR MIT
 /*
- * Device Tree file for the AM62P wakeup domain peripherals
+ * Device Tree file for the WAKEUP domain peripherals shared by AM62P and J722S
+ *
  * Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
  */
 
                        bootph-all;
                };
 
+               cpsw_mac_syscon: ethernet-mac-syscon@200 {
+                       compatible = "ti,am62p-cpsw-mac-efuse", "syscon";
+                       reg = <0x200 0x8>;
+               };
+
                usb0_phy_ctrl: syscon@4008 {
                        compatible = "ti,am62-usb-phy-ctrl", "syscon";
                        reg = <0x4008 0x4>;
index 900d1f9530a2a118cb3d40005e115050d0182d11..0ce9721b417653850c08e8a57267bdafef66b38c 100644 (file)
 // SPDX-License-Identifier: GPL-2.0-only OR MIT
 /*
- * Device Tree file for the AM62P main domain peripherals
+ * Device Tree file for the AM62P MAIN domain peripherals
+ *
  * Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
  */
 
 &cbass_main {
-       oc_sram: sram@70000000 {
-               compatible = "mmio-sram";
-               reg = <0x00 0x70000000 0x00 0x10000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges = <0x00 0x00 0x70000000 0x10000>;
-       };
-
-       gic500: interrupt-controller@1800000 {
-               compatible = "arm,gic-v3";
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-               #interrupt-cells = <3>;
-               interrupt-controller;
-               reg = <0x00 0x01800000 0x00 0x10000>,   /* GICD */
-                     <0x00 0x01880000 0x00 0xc0000>,   /* GICR */
-                     <0x01 0x00000000 0x00 0x2000>,    /* GICC */
-                     <0x01 0x00010000 0x00 0x1000>,    /* GICH */
-                     <0x01 0x00020000 0x00 0x2000>;    /* GICV */
-               /*
-                * vcpumntirq:
-                * virtual CPU interface maintenance interrupt
-                */
-               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
-
-               gic_its: msi-controller@1820000 {
-                       compatible = "arm,gic-v3-its";
-                       reg = <0x00 0x01820000 0x00 0x10000>;
-                       socionext,synquacer-pre-its = <0x1000000 0x400000>;
-                       msi-controller;
-                       #msi-cells = <1>;
-               };
-       };
-
-       main_conf: bus@100000 {
-               compatible = "simple-bus";
-               reg = <0x00 0x00100000 0x00 0x20000>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges = <0x00 0x00 0x00100000 0x20000>;
-
-               phy_gmii_sel: phy@4044 {
-                       compatible = "ti,am654-phy-gmii-sel";
-                       reg = <0x4044 0x8>;
-                       #phy-cells = <1>;
-               };
-
-               epwm_tbclk: clock-controller@4130 {
-                       compatible = "ti,am62-epwm-tbclk";
-                       reg = <0x4130 0x4>;
-                       #clock-cells = <1>;
-               };
-       };
-
-       dmss: bus@48000000 {
-               compatible = "simple-bus";
-               #address-cells = <2>;
-               #size-cells = <2>;
-               dma-ranges;
-               ranges = <0x00 0x48000000 0x00 0x48000000 0x00 0x06400000>;
-               bootph-all;
-
-               ti,sci-dev-id = <25>;
-
-               secure_proxy_main: mailbox@4d000000 {
-                       compatible = "ti,am654-secure-proxy";
-                       #mbox-cells = <1>;
-                       reg-names = "target_data", "rt", "scfg";
-                       reg = <0x00 0x4d000000 0x00 0x80000>,
-                             <0x00 0x4a600000 0x00 0x80000>,
-                             <0x00 0x4a400000 0x00 0x80000>;
-                       interrupt-names = "rx_012";
-                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
-                       bootph-all;
-               };
-
-               inta_main_dmss: interrupt-controller@48000000 {
-                       compatible = "ti,sci-inta";
-                       reg = <0x00 0x48000000 0x00 0x100000>;
-                       #interrupt-cells = <0>;
-                       interrupt-controller;
-                       interrupt-parent = <&gic500>;
-                       msi-controller;
-                       ti,sci = <&dmsc>;
-                       ti,sci-dev-id = <28>;
-                       ti,interrupt-ranges = <5 69 35>;
-                       ti,unmapped-event-sources = <&main_bcdma>, <&main_pktdma>;
-               };
-
-               main_bcdma: dma-controller@485c0100 {
-                       compatible = "ti,am64-dmss-bcdma";
-                       reg = <0x00 0x485c0100 0x00 0x100>,
-                             <0x00 0x4c000000 0x00 0x20000>,
-                             <0x00 0x4a820000 0x00 0x20000>,
-                             <0x00 0x4aa40000 0x00 0x20000>,
-                             <0x00 0x4bc00000 0x00 0x100000>,
-                             <0x00 0x48600000 0x00 0x8000>,
-                             <0x00 0x484a4000 0x00 0x2000>,
-                             <0x00 0x484c2000 0x00 0x2000>,
-                             <0x00 0x48420000 0x00 0x2000>;
-                       reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt",
-                                   "ring", "tchan", "rchan", "bchan";
-                       msi-parent = <&inta_main_dmss>;
-                       #dma-cells = <3>;
-
-                       ti,sci = <&dmsc>;
-                       ti,sci-dev-id = <26>;
-                       ti,sci-rm-range-bchan = <0x20>; /* BLOCK_COPY_CHAN */
-                       ti,sci-rm-range-rchan = <0x21>; /* SPLIT_TR_RX_CHAN */
-                       ti,sci-rm-range-tchan = <0x22>; /* SPLIT_TR_TX_CHAN */
-                       bootph-all;
-               };
-
-               main_pktdma: dma-controller@485c0000 {
-                       compatible = "ti,am64-dmss-pktdma";
-                       reg = <0x00 0x485c0000 0x00 0x100>,
-                             <0x00 0x4a800000 0x00 0x20000>,
-                             <0x00 0x4aa00000 0x00 0x40000>,
-                             <0x00 0x4b800000 0x00 0x400000>,
-                             <0x00 0x485e0000 0x00 0x10000>,
-                             <0x00 0x484a0000 0x00 0x2000>,
-                             <0x00 0x484c0000 0x00 0x2000>,
-                             <0x00 0x48430000 0x00 0x1000>;
-                       reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt",
-                                   "ring", "tchan", "rchan", "rflow";
-                       msi-parent = <&inta_main_dmss>;
-                       #dma-cells = <2>;
-                       bootph-all;
-
-                       ti,sci = <&dmsc>;
-                       ti,sci-dev-id = <30>;
-                       ti,sci-rm-range-tchan = <0x23>, /* UNMAPPED_TX_CHAN */
-                                               <0x24>, /* CPSW_TX_CHAN */
-                                               <0x25>, /* SAUL_TX_0_CHAN */
-                                               <0x26>; /* SAUL_TX_1_CHAN */
-                       ti,sci-rm-range-tflow = <0x10>, /* RING_UNMAPPED_TX_CHAN */
-                                               <0x11>, /* RING_CPSW_TX_CHAN */
-                                               <0x12>, /* RING_SAUL_TX_0_CHAN */
-                                               <0x13>; /* RING_SAUL_TX_1_CHAN */
-                       ti,sci-rm-range-rchan = <0x29>, /* UNMAPPED_RX_CHAN */
-                                               <0x2b>, /* CPSW_RX_CHAN */
-                                               <0x2d>, /* SAUL_RX_0_CHAN */
-                                               <0x2f>, /* SAUL_RX_1_CHAN */
-                                               <0x31>, /* SAUL_RX_2_CHAN */
-                                               <0x33>; /* SAUL_RX_3_CHAN */
-                       ti,sci-rm-range-rflow = <0x2a>, /* FLOW_UNMAPPED_RX_CHAN */
-                                               <0x2c>, /* FLOW_CPSW_RX_CHAN */
-                                               <0x2e>, /* FLOW_SAUL_RX_0/1_CHAN */
-                                               <0x32>; /* FLOW_SAUL_RX_2/3_CHAN */
-               };
-       };
-
-       dmss_csi: bus@4e000000 {
-               compatible = "simple-bus";
-               ranges = <0x00 0x4e000000 0x00 0x4e000000 0x00 0x408000>;
-               #address-cells = <2>;
-               #size-cells = <2>;
-               dma-ranges;
-               ti,sci-dev-id = <198>;
-
-               inta_main_dmss_csi: interrupt-controller@4e400000 {
-                       compatible = "ti,sci-inta";
-                       reg = <0x00 0x4e400000 0x00 0x8000>;
-                       #interrupt-cells = <0>;
-                       interrupt-controller;
-                       interrupt-parent = <&gic500>;
-                       msi-controller;
-                       power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
-                       ti,sci = <&dmsc>;
-                       ti,sci-dev-id = <200>;
-                       ti,interrupt-ranges = <0 237 8>;
-                       ti,unmapped-event-sources = <&main_bcdma_csi>;
-               };
-
-               main_bcdma_csi: dma-controller@4e230000 {
-                       compatible = "ti,am62a-dmss-bcdma-csirx";
-                       reg = <0x00 0x4e230000 0x00 0x100>,
-                             <0x00 0x4e180000 0x00 0x8000>,
-                             <0x00 0x4e100000 0x00 0x10000>;
-                       reg-names = "gcfg", "rchanrt", "ringrt";
-                       #dma-cells = <3>;
-                       msi-parent = <&inta_main_dmss_csi>;
-                       power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
-                       ti,sci = <&dmsc>;
-                       ti,sci-dev-id = <199>;
-                       ti,sci-rm-range-rchan = <0x21>;
-               };
-       };
-
-       dmsc: system-controller@44043000 {
-               compatible = "ti,k2g-sci";
-               ti,host-id = <12>;
-               mbox-names = "rx", "tx";
-               mboxes = <&secure_proxy_main 12>,
-                        <&secure_proxy_main 13>;
-               reg-names = "debug_messages";
-               reg = <0x00 0x44043000 0x00 0xfe0>;
-               bootph-all;
-
-               k3_pds: power-controller {
-                       compatible = "ti,sci-pm-domain";
-                       #power-domain-cells = <2>;
-                       bootph-all;
-               };
-
-               k3_clks: clock-controller {
-                       compatible = "ti,k2g-sci-clk";
-                       #clock-cells = <2>;
-                       bootph-all;
-               };
-
-               k3_reset: reset-controller {
-                       compatible = "ti,sci-reset";
-                       #reset-cells = <2>;
-                       bootph-all;
-               };
-       };
-
-       crypto: crypto@40900000 {
-               compatible = "ti,am62-sa3ul";
-               reg = <0x00 0x40900000 0x00 0x1200>;
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges = <0x00 0x40900000 0x00 0x40900000 0x00 0x30000>;
-
-               dmas = <&main_pktdma 0xf501 0>, <&main_pktdma 0x7506 0>,
-                      <&main_pktdma 0x7507 0>;
-               dma-names = "tx", "rx1", "rx2";
-       };
-
-       secure_proxy_sa3: mailbox@43600000 {
-               compatible = "ti,am654-secure-proxy";
-               #mbox-cells = <1>;
-               reg-names = "target_data", "rt", "scfg";
-               reg = <0x00 0x43600000 0x00 0x10000>,
-                     <0x00 0x44880000 0x00 0x20000>,
-                     <0x00 0x44860000 0x00 0x20000>;
-               /*
-                * Marked Disabled:
-                * Node is incomplete as it is meant for bootloaders and
-                * firmware on non-MPU processors
-                */
-               status = "disabled";
-               bootph-all;
-       };
-
-       main_pmx0: pinctrl@f4000 {
-               compatible = "pinctrl-single";
-               reg = <0x00 0xf4000 0x00 0x2ac>;
-               #pinctrl-cells = <1>;
-               pinctrl-single,register-width = <32>;
-               pinctrl-single,function-mask = <0xffffffff>;
-               bootph-all;
-       };
-
-       main_esm: esm@420000 {
-               compatible = "ti,j721e-esm";
-               reg = <0x00 0x420000 0x00 0x1000>;
-               ti,esm-pins = <160>, <161>, <162>, <163>, <177>, <178>;
-               bootph-pre-ram;
-       };
-
-       main_timer0: timer@2400000 {
-               compatible = "ti,am654-timer";
-               reg = <0x00 0x2400000 0x00 0x400>;
-               interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&k3_clks 36 2>;
-               clock-names = "fck";
-               assigned-clocks = <&k3_clks 36 2>;
-               assigned-clock-parents = <&k3_clks 36 3>;
-               power-domains = <&k3_pds 36 TI_SCI_PD_EXCLUSIVE>;
-               ti,timer-pwm;
-               bootph-all;
-       };
-
-       main_timer1: timer@2410000 {
-               compatible = "ti,am654-timer";
-               reg = <0x00 0x2410000 0x00 0x400>;
-               interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&k3_clks 37 2>;
-               clock-names = "fck";
-               assigned-clocks = <&k3_clks 37 2>;
-               assigned-clock-parents = <&k3_clks 37 3>;
-               power-domains = <&k3_pds 37 TI_SCI_PD_EXCLUSIVE>;
-               ti,timer-pwm;
-       };
-
-       main_timer2: timer@2420000 {
-               compatible = "ti,am654-timer";
-               reg = <0x00 0x2420000 0x00 0x400>;
-               interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&k3_clks 38 2>;
-               clock-names = "fck";
-               assigned-clocks = <&k3_clks 38 2>;
-               assigned-clock-parents = <&k3_clks 38 3>;
-               power-domains = <&k3_pds 38 TI_SCI_PD_EXCLUSIVE>;
-               ti,timer-pwm;
-       };
-
-       main_timer3: timer@2430000 {
-               compatible = "ti,am654-timer";
-               reg = <0x00 0x2430000 0x00 0x400>;
-               interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&k3_clks 39 2>;
-               clock-names = "fck";
-               assigned-clocks = <&k3_clks 39 2>;
-               assigned-clock-parents = <&k3_clks 39 3>;
-               power-domains = <&k3_pds 39 TI_SCI_PD_EXCLUSIVE>;
-               ti,timer-pwm;
-       };
-
-       main_timer4: timer@2440000 {
-               compatible = "ti,am654-timer";
-               reg = <0x00 0x2440000 0x00 0x400>;
-               interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&k3_clks 40 2>;
-               clock-names = "fck";
-               assigned-clocks = <&k3_clks 40 2>;
-               assigned-clock-parents = <&k3_clks 40 3>;
-               power-domains = <&k3_pds 40 TI_SCI_PD_EXCLUSIVE>;
-               ti,timer-pwm;
-       };
-
-       main_timer5: timer@2450000 {
-               compatible = "ti,am654-timer";
-               reg = <0x00 0x2450000 0x00 0x400>;
-               interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&k3_clks 41 2>;
-               clock-names = "fck";
-               assigned-clocks = <&k3_clks 41 2>;
-               assigned-clock-parents = <&k3_clks 41 3>;
-               power-domains = <&k3_pds 41 TI_SCI_PD_EXCLUSIVE>;
-               ti,timer-pwm;
-       };
-
-       main_timer6: timer@2460000 {
-               compatible = "ti,am654-timer";
-               reg = <0x00 0x2460000 0x00 0x400>;
-               interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&k3_clks 42 2>;
-               clock-names = "fck";
-               assigned-clocks = <&k3_clks 42 2>;
-               assigned-clock-parents = <&k3_clks 42 3>;
-               power-domains = <&k3_pds 42 TI_SCI_PD_EXCLUSIVE>;
-               ti,timer-pwm;
-       };
-
-       main_timer7: timer@2470000 {
-               compatible = "ti,am654-timer";
-               reg = <0x00 0x2470000 0x00 0x400>;
-               interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&k3_clks 43 2>;
-               clock-names = "fck";
-               assigned-clocks = <&k3_clks 43 2>;
-               assigned-clock-parents = <&k3_clks 43 3>;
-               power-domains = <&k3_pds 43 TI_SCI_PD_EXCLUSIVE>;
-               ti,timer-pwm;
-       };
-
-       main_uart0: serial@2800000 {
-               compatible = "ti,am64-uart", "ti,am654-uart";
-               reg = <0x00 0x02800000 0x00 0x100>;
-               interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
-               power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 146 0>;
-               clock-names = "fclk";
-               status = "disabled";
-       };
-
-       main_uart1: serial@2810000 {
-               compatible = "ti,am64-uart", "ti,am654-uart";
-               reg = <0x00 0x02810000 0x00 0x100>;
-               interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
-               power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 152 0>;
-               clock-names = "fclk";
-               status = "disabled";
-       };
-
-       main_uart2: serial@2820000 {
-               compatible = "ti,am64-uart", "ti,am654-uart";
-               reg = <0x00 0x02820000 0x00 0x100>;
-               interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
-               power-domains = <&k3_pds 153 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 153 0>;
-               clock-names = "fclk";
-               status = "disabled";
-       };
-
-       main_uart3: serial@2830000 {
-               compatible = "ti,am64-uart", "ti,am654-uart";
-               reg = <0x00 0x02830000 0x00 0x100>;
-               interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
-               power-domains = <&k3_pds 154 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 154 0>;
-               clock-names = "fclk";
-               status = "disabled";
-       };
-
-       main_uart4: serial@2840000 {
-               compatible = "ti,am64-uart", "ti,am654-uart";
-               reg = <0x00 0x02840000 0x00 0x100>;
-               interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
-               power-domains = <&k3_pds 155 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 155 0>;
-               clock-names = "fclk";
-               status = "disabled";
-       };
-
-       main_uart5: serial@2850000 {
-               compatible = "ti,am64-uart", "ti,am654-uart";
-               reg = <0x00 0x02850000 0x00 0x100>;
-               interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
-               power-domains = <&k3_pds 156 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 156 0>;
-               clock-names = "fclk";
-               status = "disabled";
-       };
-
-       main_uart6: serial@2860000 {
-               compatible = "ti,am64-uart", "ti,am654-uart";
-               reg = <0x00 0x02860000 0x00 0x100>;
-               interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
-               power-domains = <&k3_pds 158 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 158 0>;
-               clock-names = "fclk";
-               status = "disabled";
-       };
-
-       main_i2c0: i2c@20000000 {
-               compatible = "ti,am64-i2c", "ti,omap4-i2c";
-               reg = <0x00 0x20000000 0x00 0x100>;
-               interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               power-domains = <&k3_pds 102 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 102 2>;
-               clock-names = "fck";
-               status = "disabled";
-       };
-
-       main_i2c1: i2c@20010000 {
-               compatible = "ti,am64-i2c", "ti,omap4-i2c";
-               reg = <0x00 0x20010000 0x00 0x100>;
-               interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               power-domains = <&k3_pds 103 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 103 2>;
-               clock-names = "fck";
-               status = "disabled";
-       };
-
-       main_i2c2: i2c@20020000 {
-               compatible = "ti,am64-i2c", "ti,omap4-i2c";
-               reg = <0x00 0x20020000 0x00 0x100>;
-               interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               power-domains = <&k3_pds 104 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 104 2>;
-               clock-names = "fck";
-               status = "disabled";
-       };
-
-       main_i2c3: i2c@20030000 {
-               compatible = "ti,am64-i2c", "ti,omap4-i2c";
-               reg = <0x00 0x20030000 0x00 0x100>;
-               interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               power-domains = <&k3_pds 105 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 105 2>;
-               clock-names = "fck";
-               status = "disabled";
-       };
-
-       main_spi0: spi@20100000 {
-               compatible = "ti,am654-mcspi", "ti,omap4-mcspi";
-               reg = <0x00 0x20100000 0x00 0x400>;
-               interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               power-domains = <&k3_pds 141 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 141 0>;
-               status = "disabled";
-       };
-
-       main_spi1: spi@20110000 {
-               compatible = "ti,am654-mcspi","ti,omap4-mcspi";
-               reg = <0x00 0x20110000 0x00 0x400>;
-               interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               power-domains = <&k3_pds 142 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 142 0>;
-               status = "disabled";
-       };
-
-       main_spi2: spi@20120000 {
-               compatible = "ti,am654-mcspi","ti,omap4-mcspi";
-               reg = <0x00 0x20120000 0x00 0x400>;
-               interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               power-domains = <&k3_pds 143 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 143 0>;
-               status = "disabled";
-       };
-
-       main_gpio_intr: interrupt-controller@a00000 {
-               compatible = "ti,sci-intr";
-               reg = <0x00 0x00a00000 0x00 0x800>;
-               ti,intr-trigger-type = <1>;
-               interrupt-controller;
-               interrupt-parent = <&gic500>;
-               #interrupt-cells = <1>;
-               ti,sci = <&dmsc>;
-               ti,sci-dev-id = <3>;
-               ti,interrupt-ranges = <0 32 16>;
-       };
-
-       main_gpio0: gpio@600000 {
-               compatible = "ti,am64-gpio", "ti,keystone-gpio";
-               reg = <0x00 0x00600000 0x00 0x100>;
-               gpio-controller;
-               #gpio-cells = <2>;
-               interrupt-parent = <&main_gpio_intr>;
-               interrupts = <190>, <191>, <192>,
-                            <193>, <194>, <195>;
-               interrupt-controller;
-               #interrupt-cells = <2>;
-               ti,ngpio = <92>;
-               ti,davinci-gpio-unbanked = <0>;
-               power-domains = <&k3_pds 77 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 77 0>;
-               clock-names = "gpio";
-       };
-
-       main_gpio1: gpio@601000 {
-               compatible = "ti,am64-gpio", "ti,keystone-gpio";
-               reg = <0x00 0x00601000 0x00 0x100>;
-               gpio-controller;
-               #gpio-cells = <2>;
-               interrupt-parent = <&main_gpio_intr>;
-               interrupts = <180>, <181>, <182>,
-                            <183>, <184>, <185>;
-               interrupt-controller;
-               #interrupt-cells = <2>;
-               ti,ngpio = <52>;
-               ti,davinci-gpio-unbanked = <0>;
-               power-domains = <&k3_pds 78 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 78 0>;
-               clock-names = "gpio";
-       };
-
-       sdhci0: mmc@fa10000 {
-               compatible = "ti,am64-sdhci-8bit";
-               reg = <0x00 0x0fa10000 0x00 0x1000>, <0x00 0x0fa18000 0x00 0x400>;
-               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
-               power-domains = <&k3_pds 57 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 57 1>, <&k3_clks 57 2>;
-               clock-names = "clk_ahb", "clk_xin";
-               assigned-clocks = <&k3_clks 57 2>;
-               assigned-clock-parents = <&k3_clks 57 4>;
-               bus-width = <8>;
-               mmc-ddr-1_8v;
-               mmc-hs200-1_8v;
-               mmc-hs400-1_8v;
-               ti,clkbuf-sel = <0x7>;
-               ti,strobe-sel = <0x77>;
-               ti,trm-icp = <0x8>;
-               ti,otap-del-sel-legacy = <0x1>;
-               ti,otap-del-sel-mmc-hs = <0x1>;
-               ti,otap-del-sel-ddr52 = <0x6>;
-               ti,otap-del-sel-hs200 = <0x8>;
-               ti,otap-del-sel-hs400 = <0x5>;
-               ti,itap-del-sel-legacy = <0x10>;
-               ti,itap-del-sel-mmc-hs = <0xa>;
-               ti,itap-del-sel-ddr52 = <0x3>;
-               status = "disabled";
-       };
-
-       sdhci1: mmc@fa00000 {
-               compatible = "ti,am62-sdhci";
-               reg = <0x00 0x0fa00000 0x00 0x1000>, <0x00 0x0fa08000 0x00 0x400>;
-               interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
-               power-domains = <&k3_pds 58 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 58 5>, <&k3_clks 58 6>;
-               clock-names = "clk_ahb", "clk_xin";
-               bus-width = <4>;
-               ti,clkbuf-sel = <0x7>;
-               ti,otap-del-sel-legacy = <0x0>;
-               ti,otap-del-sel-sd-hs = <0x0>;
-               ti,otap-del-sel-sdr12 = <0xf>;
-               ti,otap-del-sel-sdr25 = <0xf>;
-               ti,otap-del-sel-sdr50 = <0xc>;
-               ti,otap-del-sel-ddr50 = <0x9>;
-               ti,otap-del-sel-sdr104 = <0x6>;
-               ti,itap-del-sel-legacy = <0x0>;
-               ti,itap-del-sel-sd-hs = <0x0>;
-               ti,itap-del-sel-sdr12 = <0x0>;
-               ti,itap-del-sel-sdr25 = <0x0>;
-               status = "disabled";
-       };
-
-       sdhci2: mmc@fa20000 {
-               compatible = "ti,am62-sdhci";
-               reg = <0x00 0x0fa20000 0x00 0x1000>, <0x00 0x0fa28000 0x00 0x400>;
-               interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
-               power-domains = <&k3_pds 184 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 184 5>, <&k3_clks 184 6>;
-               clock-names = "clk_ahb", "clk_xin";
-               bus-width = <4>;
-               ti,clkbuf-sel = <0x7>;
-               ti,otap-del-sel-legacy = <0x0>;
-               ti,otap-del-sel-sd-hs = <0x0>;
-               ti,otap-del-sel-sdr12 = <0xf>;
-               ti,otap-del-sel-sdr25 = <0xf>;
-               ti,otap-del-sel-sdr50 = <0xc>;
-               ti,otap-del-sel-ddr50 = <0x9>;
-               ti,otap-del-sel-sdr104 = <0x6>;
-               ti,itap-del-sel-legacy = <0x0>;
-               ti,itap-del-sel-sd-hs = <0x0>;
-               ti,itap-del-sel-sdr12 = <0x0>;
-               ti,itap-del-sel-sdr25 = <0x0>;
-               status = "disabled";
-       };
-
-       usbss0: usb@f900000 {
-               compatible = "ti,am62-usb";
-               reg = <0x00 0x0f900000 0x00 0x800>,
-                     <0x00 0x0f908000 0x00 0x400>;
-               clocks = <&k3_clks 161 3>;
-               clock-names = "ref";
-               ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl 0x0>;
-               #address-cells = <2>;
-               #size-cells = <2>;
-               power-domains = <&k3_pds 178 TI_SCI_PD_EXCLUSIVE>;
-               ranges;
-               status = "disabled";
-
-               usb0: usb@31000000 {
-                       compatible = "snps,dwc3";
-                       reg = <0x00 0x31000000 0x00 0x50000>;
-                       interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
-                       <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */
-                       interrupt-names = "host", "peripheral";
-                       maximum-speed = "high-speed";
-                       dr_mode = "otg";
-                       snps,usb2-gadget-lpm-disable;
-                       snps,usb2-lpm-disable;
-               };
-       };
-
        usbss1: usb@f910000 {
                compatible = "ti,am62-usb";
                reg = <0x00 0x0f910000 0x00 0x800>,
                        snps,usb2-lpm-disable;
                };
        };
+};
 
-       fss: bus@fc00000 {
-               compatible = "simple-bus";
-               reg = <0x00 0x0fc00000 0x00 0x70000>;
-               #address-cells = <2>;
-               #size-cells = <2>;
-               ranges;
-
-               ospi0: spi@fc40000 {
-                       compatible = "ti,am654-ospi", "cdns,qspi-nor";
-                       reg = <0x00 0x0fc40000 0x00 0x100>,
-                             <0x05 0x00000000 0x01 0x00000000>;
-                       interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
-                       cdns,fifo-depth = <256>;
-                       cdns,fifo-width = <4>;
-                       cdns,trigger-address = <0x0>;
-                       clocks = <&k3_clks 75 7>;
-                       assigned-clocks = <&k3_clks 75 7>;
-                       assigned-clock-parents = <&k3_clks 75 8>;
-                       assigned-clock-rates = <166666666>;
-                       power-domains = <&k3_pds 75 TI_SCI_PD_EXCLUSIVE>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
-               };
-       };
-
-       cpsw3g: ethernet@8000000 {
-               compatible = "ti,am642-cpsw-nuss";
-               #address-cells = <2>;
-               #size-cells = <2>;
-               reg = <0x00 0x08000000 0x00 0x200000>;
-               reg-names = "cpsw_nuss";
-               ranges = <0x00 0x00 0x00 0x08000000 0x00 0x200000>;
-               clocks = <&k3_clks 13 0>;
-               assigned-clocks = <&k3_clks 13 3>;
-               assigned-clock-parents = <&k3_clks 13 11>;
-               clock-names = "fck";
-               power-domains = <&k3_pds 13 TI_SCI_PD_EXCLUSIVE>;
-               status = "disabled";
-
-               dmas = <&main_pktdma 0xc600 15>,
-                      <&main_pktdma 0xc601 15>,
-                      <&main_pktdma 0xc602 15>,
-                      <&main_pktdma 0xc603 15>,
-                      <&main_pktdma 0xc604 15>,
-                      <&main_pktdma 0xc605 15>,
-                      <&main_pktdma 0xc606 15>,
-                      <&main_pktdma 0xc607 15>,
-                      <&main_pktdma 0x4600 15>;
-               dma-names = "tx0", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6",
-                           "tx7", "rx";
-
-               ethernet-ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       cpsw_port1: port@1 {
-                               reg = <1>;
-                               ti,mac-only;
-                               label = "port1";
-                               phys = <&phy_gmii_sel 1>;
-                               mac-address = [00 00 00 00 00 00];
-                               status = "disabled";
-                       };
-
-                       cpsw_port2: port@2 {
-                               reg = <2>;
-                               ti,mac-only;
-                               label = "port2";
-                               phys = <&phy_gmii_sel 2>;
-                               mac-address = [00 00 00 00 00 00];
-                               status = "disabled";
-                       };
-               };
-
-               cpsw3g_mdio: mdio@f00 {
-                       compatible = "ti,cpsw-mdio","ti,davinci_mdio";
-                       reg = <0x00 0xf00 0x00 0x100>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       clocks = <&k3_clks 13 0>;
-                       clock-names = "fck";
-                       bus_freq = <1000000>;
-                       status = "disabled";
-               };
-
-               cpts@3d000 {
-                       compatible = "ti,j721e-cpts";
-                       reg = <0x00 0x3d000 0x00 0x400>;
-                       clocks = <&k3_clks 13 3>;
-                       clock-names = "cpts";
-                       interrupts-extended = <&gic500 GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "cpts";
-                       ti,cpts-ext-ts-inputs = <4>;
-                       ti,cpts-periodic-outputs = <2>;
-               };
-       };
-
-       hwspinlock: spinlock@2a000000 {
-               compatible = "ti,am64-hwspinlock";
-               reg = <0x00 0x2a000000 0x00 0x1000>;
-               #hwlock-cells = <1>;
-       };
-
-       mailbox0_cluster0: mailbox@29000000 {
-               compatible = "ti,am64-mailbox";
-               reg = <0x00 0x29000000 0x00 0x200>;
-               interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
-               #mbox-cells = <1>;
-               ti,mbox-num-users = <4>;
-               ti,mbox-num-fifos = <16>;
-       };
-
-       mailbox0_cluster1: mailbox@29010000 {
-               compatible = "ti,am64-mailbox";
-               reg = <0x00 0x29010000 0x00 0x200>;
-               interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
-               #mbox-cells = <1>;
-               ti,mbox-num-users = <4>;
-               ti,mbox-num-fifos = <16>;
-       };
-
-       mailbox0_cluster2: mailbox@29020000 {
-               compatible = "ti,am64-mailbox";
-               reg = <0x00 0x29020000 0x00 0x200>;
-               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
-               #mbox-cells = <1>;
-               ti,mbox-num-users = <4>;
-               ti,mbox-num-fifos = <16>;
-       };
-
-       mailbox0_cluster3: mailbox@29030000 {
-               compatible = "ti,am64-mailbox";
-               reg = <0x00 0x29030000 0x00 0x200>;
-               interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
-               #mbox-cells = <1>;
-               ti,mbox-num-users = <4>;
-               ti,mbox-num-fifos = <16>;
-       };
-
-       ecap0: pwm@23100000 {
-               compatible = "ti,am3352-ecap";
-               #pwm-cells = <3>;
-               reg = <0x00 0x23100000 0x00 0x100>;
-               power-domains = <&k3_pds 51 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 51 0>;
-               clock-names = "fck";
-               status = "disabled";
-       };
-
-       ecap1: pwm@23110000 {
-               compatible = "ti,am3352-ecap";
-               #pwm-cells = <3>;
-               reg = <0x00 0x23110000 0x00 0x100>;
-               power-domains = <&k3_pds 52 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 52 0>;
-               clock-names = "fck";
-               status = "disabled";
-       };
-
-       ecap2: pwm@23120000 {
-               compatible = "ti,am3352-ecap";
-               #pwm-cells = <3>;
-               reg = <0x00 0x23120000 0x00 0x100>;
-               power-domains = <&k3_pds 53 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 53 0>;
-               clock-names = "fck";
-               status = "disabled";
-       };
-
-       main_mcan0: can@20701000 {
-               compatible = "bosch,m_can";
-               reg = <0x00 0x20701000 0x00 0x200>,
-                     <0x00 0x20708000 0x00 0x8000>;
-               reg-names = "m_can", "message_ram";
-               power-domains = <&k3_pds 98 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 98 6>, <&k3_clks 98 1>;
-               clock-names = "hclk", "cclk";
-               interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "int0", "int1";
-               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
-               status = "disabled";
-       };
-
-       main_mcan1: can@20711000 {
-               compatible = "bosch,m_can";
-               reg = <0x00 0x20711000 0x00 0x200>,
-                     <0x00 0x20718000 0x00 0x8000>;
-               reg-names = "m_can", "message_ram";
-               power-domains = <&k3_pds 99 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&k3_clks 99 6>, <&k3_clks 99 1>;
-               clock-names = "hclk", "cclk";
-               interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "int0", "int1";
-               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
-               status = "disabled";
-       };
-
-       main_rti0: watchdog@e000000 {
-               compatible = "ti,j7-rti-wdt";
-               reg = <0x00 0x0e000000 0x00 0x100>;
-               clocks = <&k3_clks 125 0>;
-               power-domains = <&k3_pds 125 TI_SCI_PD_EXCLUSIVE>;
-               assigned-clocks = <&k3_clks 125 0>;
-               assigned-clock-parents = <&k3_clks 125 2>;
-       };
-
-       main_rti1: watchdog@e010000 {
-               compatible = "ti,j7-rti-wdt";
-               reg = <0x00 0x0e010000 0x00 0x100>;
-               clocks = <&k3_clks 126 0>;
-               power-domains = <&k3_pds 126 TI_SCI_PD_EXCLUSIVE>;
-               assigned-clocks = <&k3_clks 126 0>;
-               assigned-clock-parents = <&k3_clks 126 2>;
-       };
-
-       main_rti2: watchdog@e020000 {
-               compatible = "ti,j7-rti-wdt";
-               reg = <0x00 0x0e020000 0x00 0x100>;
-               clocks = <&k3_clks 127 0>;
-               power-domains = <&k3_pds 127 TI_SCI_PD_EXCLUSIVE>;
-               assigned-clocks = <&k3_clks 127 0>;
-               assigned-clock-parents = <&k3_clks 127 2>;
-       };
-
-       main_rti3: watchdog@e030000 {
-               compatible = "ti,j7-rti-wdt";
-               reg = <0x00 0x0e030000 0x00 0x100>;
-               clocks = <&k3_clks 128 0>;
-               power-domains = <&k3_pds 128 TI_SCI_PD_EXCLUSIVE>;
-               assigned-clocks = <&k3_clks 128 0>;
-               assigned-clock-parents = <&k3_clks 128 2>;
-       };
-
-       main_rti15: watchdog@e0f0000 {
-               compatible = "ti,j7-rti-wdt";
-               reg = <0x00 0x0e0f0000 0x00 0x100>;
-               clocks = <&k3_clks 130 0>;
-               power-domains = <&k3_pds 130 TI_SCI_PD_EXCLUSIVE>;
-               assigned-clocks = <&k3_clks 130 0>;
-               assigned-clock-parents = <&k3_clks 130 2>;
-       };
-
-       epwm0: pwm@23000000 {
-               compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
-               #pwm-cells = <3>;
-               reg = <0x00 0x23000000 0x00 0x100>;
-               power-domains = <&k3_pds 86 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&epwm_tbclk 0>, <&k3_clks 86 0>;
-               clock-names = "tbclk", "fck";
-               status = "disabled";
-       };
-
-       epwm1: pwm@23010000 {
-               compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
-               #pwm-cells = <3>;
-               reg = <0x00 0x23010000 0x00 0x100>;
-               power-domains = <&k3_pds 87 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&epwm_tbclk 1>, <&k3_clks 87 0>;
-               clock-names = "tbclk", "fck";
-               status = "disabled";
-       };
-
-       epwm2: pwm@23020000 {
-               compatible = "ti,am64-epwm", "ti,am3352-ehrpwm";
-               #pwm-cells = <3>;
-               reg = <0x00 0x23020000 0x00 0x100>;
-               power-domains = <&k3_pds 88 TI_SCI_PD_EXCLUSIVE>;
-               clocks = <&epwm_tbclk 2>, <&k3_clks 88 0>;
-               clock-names = "tbclk", "fck";
-               status = "disabled";
-       };
-
-       mcasp0: audio-controller@2b00000 {
-               compatible = "ti,am33xx-mcasp-audio";
-               reg = <0x00 0x02b00000 0x00 0x2000>,
-                     <0x00 0x02b08000 0x00 0x400>;
-               reg-names = "mpu", "dat";
-               interrupts = <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "tx", "rx";
-
-               dmas = <&main_bcdma 0 0xc500 0>, <&main_bcdma 0 0x4500 0>;
-               dma-names = "tx", "rx";
-
-               clocks = <&k3_clks 190 0>;
-               clock-names = "fck";
-               assigned-clocks = <&k3_clks 190 0>;
-               assigned-clock-parents = <&k3_clks 190 2>;
-               power-domains = <&k3_pds 190 TI_SCI_PD_EXCLUSIVE>;
-               status = "disabled";
-       };
-
-       mcasp1: audio-controller@2b10000 {
-               compatible = "ti,am33xx-mcasp-audio";
-               reg = <0x00 0x02b10000 0x00 0x2000>,
-                     <0x00 0x02b18000 0x00 0x400>;
-               reg-names = "mpu", "dat";
-               interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "tx", "rx";
-
-               dmas = <&main_bcdma 0 0xc501 0>, <&main_bcdma 0 0x4501 0>;
-               dma-names = "tx", "rx";
-
-               clocks = <&k3_clks 191 0>;
-               clock-names = "fck";
-               assigned-clocks = <&k3_clks 191 0>;
-               assigned-clock-parents = <&k3_clks 191 2>;
-               power-domains = <&k3_pds 191 TI_SCI_PD_EXCLUSIVE>;
-               status = "disabled";
-       };
-
-       mcasp2: audio-controller@2b20000 {
-               compatible = "ti,am33xx-mcasp-audio";
-               reg = <0x00 0x02b20000 0x00 0x2000>,
-                     <0x00 0x02b28000 0x00 0x400>;
-               reg-names = "mpu", "dat";
-               interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "tx", "rx";
-
-               dmas = <&main_bcdma 0 0xc502 0>, <&main_bcdma 0 0x4502 0>;
-               dma-names = "tx", "rx";
-
-               clocks = <&k3_clks 192 0>;
-               clock-names = "fck";
-               assigned-clocks = <&k3_clks 192 0>;
-               assigned-clock-parents = <&k3_clks 192 2>;
-               power-domains = <&k3_pds 192 TI_SCI_PD_EXCLUSIVE>;
-               status = "disabled";
-       };
-
-       ti_csi2rx0: ticsi2rx@30102000 {
-               compatible = "ti,j721e-csi2rx-shim";
-               reg = <0x00 0x30102000 0x00 0x1000>;
-               ranges;
-               #address-cells = <2>;
-               #size-cells = <2>;
-               dmas = <&main_bcdma_csi 0 0x5000 0>;
-               dma-names = "rx0";
-               power-domains = <&k3_pds 182 TI_SCI_PD_EXCLUSIVE>;
-               status = "disabled";
-
-               cdns_csi2rx0: csi-bridge@30101000 {
-                       compatible = "ti,j721e-csi2rx", "cdns,csi2rx";
-                       reg = <0x00 0x30101000 0x00 0x1000>;
-                       clocks = <&k3_clks 182 0>, <&k3_clks 182 3>, <&k3_clks 182 0>,
-                               <&k3_clks 182 0>, <&k3_clks 182 4>, <&k3_clks 182 4>;
-                       clock-names = "sys_clk", "p_clk", "pixel_if0_clk",
-                               "pixel_if1_clk", "pixel_if2_clk", "pixel_if3_clk";
-                       phys = <&dphy0>;
-                       phy-names = "dphy";
-
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               csi0_port0: port@0 {
-                                       reg = <0>;
-                                       status = "disabled";
-                               };
-
-                               csi0_port1: port@1 {
-                                       reg = <1>;
-                                       status = "disabled";
-                               };
+&oc_sram {
+       reg = <0x00 0x70000000 0x00 0x10000>;
+       ranges = <0x00 0x00 0x70000000 0x10000>;
+};
 
-                               csi0_port2: port@2 {
-                                       reg = <2>;
-                                       status = "disabled";
-                               };
+&inta_main_dmss {
+       ti,interrupt-ranges = <5 69 35>;
+};
 
-                               csi0_port3: port@3 {
-                                       reg = <3>;
-                                       status = "disabled";
-                               };
+&main_pmx0 {
+       pinctrl-single,gpio-range =
+               <&main_pmx0_range 0 32 PIN_GPIO_RANGE_IOPAD>,
+               <&main_pmx0_range 33 38 PIN_GPIO_RANGE_IOPAD>,
+               <&main_pmx0_range 72 22 PIN_GPIO_RANGE_IOPAD>,
+               <&main_pmx0_range 137 5 PIN_GPIO_RANGE_IOPAD>,
+               <&main_pmx0_range 143 3 PIN_GPIO_RANGE_IOPAD>,
+               <&main_pmx0_range 149 2 PIN_GPIO_RANGE_IOPAD>;
 
-                               csi0_port4: port@4 {
-                                       reg = <4>;
-                                       status = "disabled";
-                               };
-                       };
-               };
+       main_pmx0_range: gpio-range {
+               #pinctrl-single,gpio-range-cells = <3>;
        };
+};
 
-       dphy0: phy@30110000 {
-               compatible = "cdns,dphy-rx";
-               reg = <0x00 0x30110000 0x00 0x1100>;
-               #phy-cells = <0>;
-               power-domains = <&k3_pds 185 TI_SCI_PD_EXCLUSIVE>;
-               status = "disabled";
-       };
+&main_gpio0 {
+       gpio-ranges = <&main_pmx0 0 0 32>, <&main_pmx0 32 33 38>,
+                       <&main_pmx0 70 72 22>;
+       ti,ngpio = <92>;
+};
 
-       vpu: video-codec@30210000 {
-               compatible = "ti,j721s2-wave521c", "cnm,wave521c";
-               reg = <0x00 0x30210000 0x00 0x10000>;
-               interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&k3_clks 204 2>;
-               power-domains = <&k3_pds 204 TI_SCI_PD_EXCLUSIVE>;
-       };
+&main_gpio1 {
+       gpio-ranges = <&main_pmx0 0 94 32>, <&main_pmx0 42 137 5>,
+                       <&main_pmx0 47 143 3>, <&main_pmx0 50 149 2>;
+       ti,ngpio = <52>;
 };
index 94babc412575aedbc1c1bb8adf8306d4fe9c9b06..75a15c368c11b068430362fe0b8d2d9ecc052588 100644 (file)
                };
        };
 
-       #include "k3-am62p-thermal.dtsi"
+       #include "k3-am62p-j722s-common-thermal.dtsi"
 };
 
 /* Now include peripherals for each bus segment */
+#include "k3-am62p-j722s-common-main.dtsi"
+#include "k3-am62p-j722s-common-mcu.dtsi"
+#include "k3-am62p-j722s-common-wakeup.dtsi"
+
+/* Include AM62P specific peripherals */
 #include "k3-am62p-main.dtsi"
-#include "k3-am62p-mcu.dtsi"
-#include "k3-am62p-wakeup.dtsi"
index 6e72346591113d8677f0a6e462bd53f05eca604c..ff65955551a32853fa66ba4880d776f2aeae3229 100644 (file)
                pinctrl-single,pins = <
                        AM62PX_IOPAD(0x0090, PIN_INPUT, 2) /* (U24) GPMC0_BE0n_CLE.MCASP1_ACLKX */
                        AM62PX_IOPAD(0x0098, PIN_INPUT, 2) /* (AA24) GPMC0_WAIT0.MCASP1_AFSX */
-                       AM62PX_IOPAD(0x008c, PIN_INPUT, 2) /* (T25) GPMC0_WEn.MCASP1_AXR0 */
+                       AM62PX_IOPAD(0x008c, PIN_OUTPUT, 2) /* (T25) GPMC0_WEn.MCASP1_AXR0 */
                        AM62PX_IOPAD(0x0084, PIN_INPUT, 2) /* (R25) GPMC0_ADVn_ALE.MCASP1_AXR2 */
                >;
        };
                        self-powered;
                        data-role = "dual";
                        power-role = "sink";
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               port@0 {
-                                       reg = <0>;
-                                       usb_con_hs: endpoint {
-                                               remote-endpoint = <&usb0_hs_ep>;
-                                       };
+                       port {
+                               usb_con_hs: endpoint {
+                               remote-endpoint = <&usb0_hs_ep>;
                                };
                        };
                };
 
 &usb0 {
        usb-role-switch;
-       #address-cells = <1>;
-       #size-cells = <0>;
 
-       port@0 {
-               reg = <0>;
+       port {
                usb0_hs_ep: endpoint {
                        remote-endpoint = <&usb_con_hs>;
                };
               0 0 0 0
               0 0 0 0
        >;
-       tx-num-evt = <32>;
-       rx-num-evt = <32>;
 };
 
 &fss {
diff --git a/src/arm64/ti/k3-am62x-phyboard-lyra.dtsi b/src/arm64/ti/k3-am62x-phyboard-lyra.dtsi
new file mode 100644 (file)
index 0000000..e4633af
--- /dev/null
@@ -0,0 +1,475 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (C) 2022-2024 PHYTEC Messtechnik GmbH
+ * Author: Wadim Egorov <w.egorov@phytec.de>
+ *
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/net/ti-dp83867.h>
+
+/ {
+       aliases {
+               serial2 = &main_uart0;
+               serial3 = &main_uart1;
+               mmc1 = &sdhci1;
+               usb0 = &usb0;
+               usb1 = &usb1;
+               ethernet1 = &cpsw_port2;
+       };
+
+       can_tc1: can-phy0 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <8000000>;
+               standby-gpios = <&gpio_exp 1 GPIO_ACTIVE_HIGH>;
+       };
+
+       hdmi0: connector-hdmi {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+               type = "a";
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&sii9022_out>;
+                       };
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys";
+               autorepeat;
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pins_default>;
+
+               key-home {
+                       label = "home";
+                       linux,code = <KEY_HOME>;
+                       gpios = <&main_gpio1 23 GPIO_ACTIVE_HIGH>;
+               };
+
+               key-menu {
+                       label = "menu";
+                       linux,code = <KEY_MENU>;
+                       gpios = <&gpio_exp 4 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "phyBOARD-Lyra";
+               simple-audio-card,widgets =
+                       "Microphone",           "Mic Jack",
+                       "Headphone",            "Headphone Jack",
+                       "Speaker",              "External Speaker";
+               simple-audio-card,routing =
+                       "MIC3R",                "Mic Jack",
+                       "Mic Jack",             "Mic Bias",
+                       "Headphone Jack",       "HPLOUT",
+                       "Headphone Jack",       "HPROUT",
+                       "External Speaker",     "SPOP",
+                       "External Speaker",     "SPOM";
+               simple-audio-card,format = "dsp_b";
+               simple-audio-card,bitclock-master = <&sound_master>;
+               simple-audio-card,frame-master = <&sound_master>;
+               simple-audio-card,bitclock-inversion;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&mcasp2>;
+               };
+
+               sound_master: simple-audio-card,codec {
+                               sound-dai = <&audio_codec>;
+                               clocks = <&audio_refclk1>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&leds_pins_default>, <&user_leds_pins_default>;
+
+               led-1 {
+                       gpios = <&main_gpio0 32 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "mmc0";
+               };
+
+               led-2 {
+                       gpios = <&gpio_exp 2 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "mmc1";
+               };
+       };
+
+       vcc_1v8: regulator-vcc-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vcc_3v3_mmc: regulator-vcc-3v3-mmc {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_3V3_MMC";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vcc_3v3_sw: regulator-vcc-3v3-sw {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_3V3_SW";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&main_pmx0 {
+       audio_ext_refclk1_pins_default: audio-ext-refclk1-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x0a0, PIN_OUTPUT, 1) /* (K25) GPMC0_WPn.AUDIO_EXT_REFCLK1 */
+               >;
+       };
+
+       gpio_keys_pins_default: gpio-keys-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x1d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */
+               >;
+       };
+
+       gpio_exp_int_pins_default: gpio-exp-int-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x244, PIN_INPUT, 7) /* (C17) MMC1_SDWP.GPIO1_49 */
+               >;
+       };
+
+       hdmi_int_pins_default: hdmi-int-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x040, PIN_INPUT, 7) /* (N23) GPMC0_AD1.GPIO0_16 */
+               >;
+       };
+
+       main_dss0_pins_default: main-dss0-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x0b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
+                       AM62X_IOPAD(0x0bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
+                       AM62X_IOPAD(0x0e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
+                       AM62X_IOPAD(0x0e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
+                       AM62X_IOPAD(0x0e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
+                       AM62X_IOPAD(0x0ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
+                       AM62X_IOPAD(0x0f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
+                       AM62X_IOPAD(0x0f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
+                       AM62X_IOPAD(0x0c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
+                       AM62X_IOPAD(0x0c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
+                       AM62X_IOPAD(0x0c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
+                       AM62X_IOPAD(0x0cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
+                       AM62X_IOPAD(0x0d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
+                       AM62X_IOPAD(0x0d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
+                       AM62X_IOPAD(0x0d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
+                       AM62X_IOPAD(0x0dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
+                       AM62X_IOPAD(0x0fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
+                       AM62X_IOPAD(0x0f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
+                       AM62X_IOPAD(0x104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
+                       AM62X_IOPAD(0x100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
+               >;
+       };
+
+       main_i2c1_pins_default: main-i2c1-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x1e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */
+                       AM62X_IOPAD(0x1ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */
+               >;
+       };
+
+       main_mcan0_pins_default: main-mcan0-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x1dc, PIN_INPUT, 0) /* (E15) MCAN0_RX */
+                       AM62X_IOPAD(0x1d8, PIN_OUTPUT, 0) /* (C15) MCAN0_TX */
+               >;
+       };
+
+       main_mcasp2_pins_default: main-mcasp2-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x070, PIN_INPUT, 3) /* (T24) GPMC0_AD13.MCASP2_ACLKX */
+                       AM62X_IOPAD(0x06c, PIN_INPUT, 3) /* (T22) GPMC0_AD12.MCASP2_AFSX */
+                       AM62X_IOPAD(0x064, PIN_OUTPUT, 3) /* (T25) GPMC0_AD10.MCASP2_AXR2 */
+                       AM62X_IOPAD(0x068, PIN_INPUT, 3) /* (R21) GPMC0_AD11.MCASP2_AXR3 */
+               >;
+       };
+
+       main_mmc1_pins_default: main-mmc1-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x23c, PIN_INPUT_PULLUP, 0) /* (A21) MMC1_CMD */
+                       AM62X_IOPAD(0x234, PIN_INPUT_PULLDOWN, 0) /* (B22) MMC1_CLK */
+                       AM62X_IOPAD(0x230, PIN_INPUT_PULLUP, 0) /* (A22) MMC1_DAT0 */
+                       AM62X_IOPAD(0x22c, PIN_INPUT_PULLUP, 0) /* (B21) MMC1_DAT1 */
+                       AM62X_IOPAD(0x228, PIN_INPUT_PULLUP, 0) /* (C21) MMC1_DAT2 */
+                       AM62X_IOPAD(0x224, PIN_INPUT_PULLUP, 0) /* (D22) MMC1_DAT3 */
+                       AM62X_IOPAD(0x240, PIN_INPUT_PULLUP, 0) /* (D17) MMC1_SDCD */
+               >;
+       };
+
+       main_rgmii2_pins_default: main-rgmii2-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x184, PIN_INPUT, 0) /* (AE23) RGMII2_RD0 */
+                       AM62X_IOPAD(0x188, PIN_INPUT, 0) /* (AB20) RGMII2_RD1 */
+                       AM62X_IOPAD(0x18c, PIN_INPUT, 0) /* (AC21) RGMII2_RD2 */
+                       AM62X_IOPAD(0x190, PIN_INPUT, 0) /* (AE22) RGMII2_RD3 */
+                       AM62X_IOPAD(0x180, PIN_INPUT, 0) /* (AD23) RGMII2_RXC */
+                       AM62X_IOPAD(0x17c, PIN_INPUT, 0) /* (AD22) RGMII2_RX_CTL */
+                       AM62X_IOPAD(0x16c, PIN_OUTPUT, 0) /* (Y18) RGMII2_TD0 */
+                       AM62X_IOPAD(0x170, PIN_OUTPUT, 0) /* (AA18) RGMII2_TD1 */
+                       AM62X_IOPAD(0x174, PIN_OUTPUT, 0) /* (AD21) RGMII2_TD2 */
+                       AM62X_IOPAD(0x178, PIN_OUTPUT, 0) /* (AC20) RGMII2_TD3 */
+                       AM62X_IOPAD(0x168, PIN_OUTPUT, 0) /* (AE21) RGMII2_TXC */
+                       AM62X_IOPAD(0x164, PIN_OUTPUT, 0) /* (AA19) RGMII2_TX_CTL */
+               >;
+       };
+
+       main_uart0_pins_default: main-uart0-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14) UART0_RXD */
+                       AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */
+               >;
+       };
+
+       main_uart1_pins_default: main-uart1-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x194, PIN_INPUT, 2) /* (B19) MCASP0_AXR3.UART1_CTSn */
+                       AM62X_IOPAD(0x198, PIN_OUTPUT, 2) /* (A19) MCASP0_AXR2.UART1_RTSn */
+                       AM62X_IOPAD(0x1ac, PIN_INPUT, 2) /* (E19) MCASP0_AFSR.UART1_RXD */
+                       AM62X_IOPAD(0x1b0, PIN_OUTPUT, 2) /* (A20) MCASP0_ACLKR.UART1_TXD */
+               >;
+       };
+
+       main_usb1_pins_default: main-usb1-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */
+               >;
+       };
+
+       user_leds_pins_default: user-leds-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x084, PIN_OUTPUT, 7) /* (L23) GPMC0_ADVn_ALE.GPIO0_32 */
+               >;
+       };
+};
+
+&cpsw3g {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_rgmii1_pins_default>, <&main_rgmii2_pins_default>;
+};
+
+&cpsw_port2 {
+       phy-mode = "rgmii-rxid";
+       phy-handle = <&cpsw3g_phy3>;
+};
+
+&cpsw3g_mdio {
+       cpsw3g_phy3: ethernet-phy@3 {
+               compatible = "ethernet-phy-id2000.a231", "ethernet-phy-ieee802.3-c22";
+               reg = <3>;
+               ti,clk-output-sel = <DP83867_CLK_O_SEL_OFF>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+       };
+};
+
+&dss {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_dss0_pins_default>;
+       status = "okay";
+};
+
+&dss_ports {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       /* VP2: DPI/HDMI Output */
+       port@1 {
+               reg = <1>;
+
+               dpi1_out: endpoint {
+                       remote-endpoint = <&sii9022_in>;
+               };
+       };
+};
+
+&main_i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_i2c1_pins_default>;
+       clock-frequency = <100000>;
+       status = "okay";
+
+       audio_codec: audio-codec@18 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&audio_ext_refclk1_pins_default>;
+
+               #sound-dai-cells = <0>;
+               compatible = "ti,tlv320aic3007";
+               reg = <0x18>;
+               ai3x-micbias-vg = <2>;
+
+               AVDD-supply = <&vcc_3v3_sw>;
+               IOVDD-supply = <&vcc_3v3_sw>;
+               DRVDD-supply = <&vcc_3v3_sw>;
+               DVDD-supply = <&vcc_1v8>;
+       };
+
+       gpio_exp: gpio-expander@21 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_exp_int_pins_default>;
+               compatible = "nxp,pcf8574";
+               reg = <0x21>;
+               interrupt-parent = <&main_gpio1>;
+               interrupts = <49 0>;
+               #gpio-cells = <2>;
+               gpio-controller;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               gpio-line-names = "", "GPIO1_CAN0_nEN",
+                                 "GPIO2_LED2", "GPIO3_LVDS_GPIO",
+                                 "GPIO4_BUT2", "GPIO5_LVDS_BKLT_EN",
+                                 "GPIO6_ETH1_USER_RESET", "GPIO7_AUDIO_USER_RESET";
+       };
+
+       usb-pd@22 {
+               compatible = "ti,tps6598x";
+               reg = <0x22>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       self-powered;
+                       data-role = "dual";
+                       power-role = "sink";
+                       port {
+                               usb_con_hs: endpoint {
+                                       remote-endpoint = <&typec_hs>;
+                               };
+                       };
+               };
+       };
+
+       sii9022: bridge-hdmi@39 {
+               compatible = "sil,sii9022";
+               reg = <0x39>;
+
+               interrupt-parent = <&main_gpio0>;
+               interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&hdmi_int_pins_default>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               sii9022_in: endpoint {
+                                       remote-endpoint = <&dpi1_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               sii9022_out: endpoint {
+                                       remote-endpoint = <&hdmi_connector_in>;
+                               };
+                       };
+               };
+       };
+
+       eeprom@51 {
+               compatible = "atmel,24c02";
+               pagesize = <16>;
+               reg = <0x51>;
+       };
+};
+
+&main_mcan0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcan0_pins_default>;
+       phys = <&can_tc1>;
+       status = "okay";
+};
+
+&main_uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_uart0_pins_default>;
+       status = "okay";
+};
+
+&main_uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_uart1_pins_default>;
+       /* Main UART1 may be used by TIFS firmware */
+       status = "okay";
+};
+
+&mcasp2 {
+       #sound-dai-cells = <0>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcasp2_pins_default>;
+
+       /* MCASP_IIS_MODE */
+       op-mode = <0>;
+       tdm-slots = <2>;
+
+       /* 0: INACTIVE, 1: TX, 2: RX */
+       serial-dir = <
+                       0 0 1 2
+                       0 0 0 0
+                       0 0 0 0
+                       0 0 0 0
+       >;
+       tx-num-evt = <32>;
+       rx-num-evt = <32>;
+       status = "okay";
+};
+
+&sdhci1 {
+       vmmc-supply = <&vcc_3v3_mmc>;
+       vqmmc-supply = <&vddshv5_sdio>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mmc1_pins_default>;
+       disable-wp;
+       no-1-8-v;
+       status = "okay";
+};
+
+&usbss0 {
+       ti,vbus-divider;
+       status = "okay";
+};
+
+&usbss1 {
+       ti,vbus-divider;
+       status = "okay";
+};
+
+&usb0 {
+       usb-role-switch;
+
+       port {
+               typec_hs: endpoint {
+                       remote-endpoint = <&usb_con_hs>;
+               };
+       };
+};
+
+&usb1 {
+       dr_mode = "host";
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_usb1_pins_default>;
+};
index 3c45782ab2b785c65d2f958f0b0ac13cfb4f0fc4..44ff67b6bf1e4861f37b49547802e10809ac7d15 100644 (file)
                        pmsg-size = <0x8000>;
                };
 
+               /* global cma region */
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0x00 0x8000000>;
+                       linux,cma-default;
+               };
+
                secure_tfa_ddr: tfa@9e780000 {
                        reg = <0x00 0x9e780000 0x00 0x80000>;
                        alignment = <0x1000>;
        };
 };
 
+&phy_gmii_sel {
+       bootph-all;
+};
+
 &main_pmx0 {
        /* First pad number is ALW package and second is AMC package */
        main_uart0_pins_default: main-uart0-default-pins {
        };
 
        main_i2c1_pins_default: main-i2c1-default-pins {
+               bootph-all;
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x1e8, PIN_INPUT_PULLUP, 0) /* (B17/A17) I2C1_SCL */
                        AM62X_IOPAD(0x1ec, PIN_INPUT_PULLUP, 0) /* (A17/A16) I2C1_SDA */
                        self-powered;
                        data-role = "dual";
                        power-role = "sink";
-                       ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               port@0 {
-                                       reg = <0>;
-                                       usb_con_hs: endpoint {
-                                               remote-endpoint = <&usb0_hs_ep>;
-                                       };
+                       port {
+                               usb_con_hs: endpoint {
+                                       remote-endpoint = <&usb0_hs_ep>;
                                };
                        };
                };
 
 &usb0 {
        bootph-all;
-       #address-cells = <1>;
-       #size-cells = <0>;
        usb-role-switch;
 
-       port@0 {
-               reg = <0>;
+       port {
                usb0_hs_ep: endpoint {
                    remote-endpoint = <&usb_con_hs>;
               };
               0 0 0 0
               0 0 0 0
        >;
-       tx-num-evt = <32>;
-       rx-num-evt = <32>;
 };
 
 &dss {
index 6f9aa5e02138f4613d7b8da9cf8a6841710ad571..f8370dd033502c798f56fd4c65bb611ebccb8dff 100644 (file)
                              <0x22400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am64x-pru0_0-fw";
+                       interrupt-parent = <&icssg0_intc>;
+                       interrupts = <16 2 2>;
+                       interrupt-names = "vring";
                };
 
                rtu0_0: rtu@4000 {
                              <0x23400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am64x-rtu0_0-fw";
+                       interrupt-parent = <&icssg0_intc>;
+                       interrupts = <20 4 4>;
+                       interrupt-names = "vring";
                };
 
                tx_pru0_0: txpru@a000 {
                              <0x24400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am64x-pru0_1-fw";
+                       interrupt-parent = <&icssg0_intc>;
+                       interrupts = <18 3 3>;
+                       interrupt-names = "vring";
                };
 
                rtu0_1: rtu@6000 {
                              <0x23c00 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am64x-rtu0_1-fw";
+                       interrupt-parent = <&icssg0_intc>;
+                       interrupts = <22 5 5>;
+                       interrupt-names = "vring";
                };
 
                tx_pru0_1: txpru@c000 {
                              <0x22400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am64x-pru1_0-fw";
+                       interrupt-parent = <&icssg1_intc>;
+                       interrupts = <16 2 2>;
+                       interrupt-names = "vring";
                };
 
                rtu1_0: rtu@4000 {
                              <0x23400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am64x-rtu1_0-fw";
+                       interrupt-parent = <&icssg1_intc>;
+                       interrupts = <20 4 4>;
+                       interrupt-names = "vring";
                };
 
                tx_pru1_0: txpru@a000 {
                              <0x24400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am64x-pru1_1-fw";
+                       interrupt-parent = <&icssg1_intc>;
+                       interrupts = <18 3 3>;
+                       interrupt-names = "vring";
                };
 
                rtu1_1: rtu@6000 {
                              <0x23c00 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am64x-rtu1_1-fw";
+                       interrupt-parent = <&icssg1_intc>;
+                       interrupts = <22 5 5>;
+                       interrupt-names = "vring";
                };
 
                tx_pru1_1: txpru@c000 {
index 125e507966fb03b9d079407b2594c4da3ecd65ff..ea7c58fb67e207d03bc879f5ef5d4420619d26ea 100644 (file)
                interrupts = <70 IRQ_TYPE_EDGE_FALLING>;
                wakeup-source;
        };
+
+       pmic@61 {
+               compatible = "ti,lp8733";
+               reg = <0x61>;
+
+               buck0-in-supply = <&vcc_5v0_som>;
+               buck1-in-supply = <&vcc_5v0_som>;
+               ldo0-in-supply = <&vdd_3v3>;
+               ldo1-in-supply = <&vdd_3v3>;
+
+               regulators {
+                       vdd_core: buck0 {
+                               regulator-name = "VDD_CORE";
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       vdd_3v3: buck1 {
+                               regulator-name = "VDD_3V3";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       vdd_1v8_ldo0: ldo0 {
+                               regulator-name = "VDD_1V8_LDO0";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       vdda_1v8: ldo1 {
+                               regulator-name = "VDDA_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+               };
+       };
 };
 
 &main_r5fss0_core0 {
        pinctrl-names = "default";
        pinctrl-0 = <&ospi0_pins_default>;
 
-       flash@0 {
+       serial_flash: flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                spi-tx-bus-width = <8>;
index 79ed19c6c0e9035f09e9a29c3fe91343ff22a8cc..c4525024ba5d710ce78d651530bed73ab7a07d3d 100644 (file)
@@ -1,6 +1,6 @@
-// SPDX-License-Identifier: GPL-2.0-only
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
 /*
- * Copyright (c) 2022-2023 TQ-Systems GmbH <linux@ew.tq-group.com>, D-82229 Seefeld, Germany.
+ * Copyright (c) 2022-2024 TQ-Systems GmbH <linux@ew.tq-group.com>, D-82229 Seefeld, Germany.
  */
 
 /dts-v1/;
index 32596a84b7ba11bea8caa911c5dd7906bd58e20d..82f8a21b6cbf8f390ac0f5512d4caf66465c8559 100644 (file)
@@ -1,6 +1,6 @@
-// SPDX-License-Identifier: GPL-2.0-only
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
 /*
- * Copyright (c) 2022-2023 TQ-Systems GmbH <linux@ew.tq-group.com>, D-82229 Seefeld, Germany.
+ * Copyright (c) 2022-2024 TQ-Systems GmbH <linux@ew.tq-group.com>, D-82229 Seefeld, Germany.
  */
 
 /dts-v1/;
diff --git a/src/arm64/ti/k3-am642-evm-icssg1-dualemac-mii.dtso b/src/arm64/ti/k3-am642-evm-icssg1-dualemac-mii.dtso
new file mode 100644 (file)
index 0000000..423d602
--- /dev/null
@@ -0,0 +1,101 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/**
+ * DT overlay for enabling both ICSSG1 port on AM642 EVM in MII mode
+ *
+ * Copyright (C) 2020-2024 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+#include <dt-bindings/gpio/gpio.h>
+#include "k3-pinctrl.h"
+
+&{/} {
+       aliases {
+               ethernet1 = "/icssg1-eth/ethernet-ports/port@1";
+       };
+
+       mdio-mux-2 {
+               compatible = "mdio-mux-multiplexer";
+               mux-controls = <&mdio_mux>;
+               mdio-parent-bus = <&icssg1_mdio>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               mdio@0 {
+                       reg = <0x0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       icssg1_phy2: ethernet-phy@3 {
+                               reg = <3>;
+                       };
+               };
+       };
+};
+
+&main_pmx0 {
+       icssg1_mii1_pins_default: icssg1-mii1-default-pins {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x00f8, PIN_INPUT, 1) /* (V9) PRG1_PRU0_GPO16.PR1_MII_MT0_CLK */
+                       AM64X_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (Y9) PRG1_PRU0_GPO15.PR1_MII0_TXEN */
+                       AM64X_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (AA9) PRG1_PRU0_GPO14.PR1_MII0_TXD3 */
+                       AM64X_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (W9) PRG1_PRU0_GPO13.PR1_MII0_TXD2 */
+                       AM64X_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (U9) PRG1_PRU0_GPO12.PR1_MII0_TXD1 */
+                       AM64X_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AA8) PRG1_PRU0_GPO11.PR1_MII0_TXD0 */
+                       AM64X_IOPAD(0x00c8, PIN_INPUT, 1) /* (Y8) PRG1_PRU0_GPO4.PR1_MII0_RXDV */
+                       AM64X_IOPAD(0x00d0, PIN_INPUT, 1) /* (AA7) PRG1_PRU0_GPO6.PR1_MII_MR0_CLK */
+                       AM64X_IOPAD(0x00c4, PIN_INPUT, 1) /* (V8) PRG1_PRU0_GPO3.PR1_MII0_RXD3 */
+                       AM64X_IOPAD(0x00c0, PIN_INPUT, 1) /* (W8) PRG1_PRU0_GPO2.PR1_MII0_RXD2 */
+                       AM64X_IOPAD(0x00cc, PIN_INPUT, 1) /* (V13) PRG1_PRU0_GPO5.PR1_MII0_RXER */
+                       AM64X_IOPAD(0x00bc, PIN_INPUT, 1) /* (U8) PRG1_PRU0_GPO1.PR1_MII0_RXD1 */
+                       AM64X_IOPAD(0x00b8, PIN_INPUT, 1) /* (Y7) PRG1_PRU0_GPO0.PR1_MII0_RXD0 */
+                       AM64X_IOPAD(0x00d8, PIN_INPUT, 1) /* (W13) PRG1_PRU0_GPO8.PR1_MII0_RXLINK */
+               >;
+       };
+
+       icssg1_mii2_pins_default: icssg1-mii2-default-pins {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x0148, PIN_INPUT, 1) /* (Y10) PRG1_PRU1_GPO16.PR1_MII_MT1_CLK */
+                       AM64X_IOPAD(0x0144, PIN_OUTPUT, 0) /* (Y11) PRG1_PRU1_GPO15.PR1_MII1_TXEN */
+                       AM64X_IOPAD(0x0140, PIN_OUTPUT, 0) /* (AA11) PRG1_PRU1_GPO14.PR1_MII1_TXD3 */
+                       AM64X_IOPAD(0x013c, PIN_OUTPUT, 0) /* (U10) PRG1_PRU1_GPO13.PR1_MII1_TXD2 */
+                       AM64X_IOPAD(0x0138, PIN_OUTPUT, 0) /* (V10) PRG1_PRU1_GPO12.PR1_MII1_TXD1 */
+                       AM64X_IOPAD(0x0134, PIN_OUTPUT, 0) /* (AA10) PRG1_PRU1_GPO11.PR1_MII1_TXD0 */
+                       AM64X_IOPAD(0x0118, PIN_INPUT, 1) /* (W12) PRG1_PRU1_GPO4.PR1_MII1_RXDV */
+                       AM64X_IOPAD(0x0120, PIN_INPUT, 1) /* (U11) PRG1_PRU1_GPO6.PR1_MII_MR1_CLK */
+                       AM64X_IOPAD(0x0114, PIN_INPUT, 1) /* (Y12) PRG1_PRU1_GPO3.PR1_MII1_RXD3 */
+                       AM64X_IOPAD(0x0110, PIN_INPUT, 1) /* (AA12) PRG1_PRU1_GPO2.PR1_MII1_RXD2 */
+                       AM64X_IOPAD(0x011c, PIN_INPUT, 1) /* (AA13) PRG1_PRU1_GPO5.PR1_MII1_RXER */
+                       AM64X_IOPAD(0x010c, PIN_INPUT, 1) /* (V11) PRG1_PRU1_GPO1.PR1_MII1_RXD1 */
+                       AM64X_IOPAD(0x0108, PIN_INPUT, 1) /* (W11) PRG1_PRU1_GPO0.PR1_MII1_RXD0 */
+                       AM64X_IOPAD(0x0128, PIN_INPUT, 1) /* (U12) PRG1_PRU1_GPO8.PR1_MII1_RXLINK */
+               >;
+       };
+};
+
+&cpsw3g {
+       pinctrl-0 = <&rgmii1_pins_default>;
+};
+
+&cpsw_port2 {
+       status = "disabled";
+};
+
+&mdio_mux_1 {
+       status = "disabled";
+};
+
+&icssg1_eth {
+       pinctrl-0 = <&icssg1_mii1_pins_default &icssg1_mii2_pins_default>;
+};
+
+&icssg1_emac0 {
+       phy-mode = "mii";
+};
+
+&icssg1_emac1 {
+       status = "okay";
+       phy-handle = <&icssg1_phy2>;
+       phy-mode = "mii";
+};
diff --git a/src/arm64/ti/k3-am642-evm-nand.dtso b/src/arm64/ti/k3-am642-evm-nand.dtso
new file mode 100644 (file)
index 0000000..f08c0e2
--- /dev/null
@@ -0,0 +1,148 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/**
+ * DT overlay for HSE NAND expansion card on AM642 EVM
+ *
+ * Copyright (C) 2021-2024 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "k3-pinctrl.h"
+
+&main_pmx0 {
+       gpmc0_pins_default: gpmc0-pins-default {
+               bootph-all;
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x0094, PIN_INPUT, 7) /* (T19) GPMC0_BE1n.GPIO0_36 */
+                       AM64X_IOPAD(0x003c, PIN_INPUT, 0) /* (T20) GPMC0_AD0 */
+                       AM64X_IOPAD(0x0040, PIN_INPUT, 0) /* (U21) GPMC0_AD1 */
+                       AM64X_IOPAD(0x0064, PIN_INPUT, 0) /* (R16) GPMC0_AD10 */
+                       AM64X_IOPAD(0x0068, PIN_INPUT, 0) /* (W20) GPMC0_AD11 */
+                       AM64X_IOPAD(0x006c, PIN_INPUT, 0) /* (W21) GPMC0_AD12 */
+                       AM64X_IOPAD(0x0070, PIN_INPUT, 0) /* (V18) GPMC0_AD13 */
+                       AM64X_IOPAD(0x0074, PIN_INPUT, 0) /* (Y21) GPMC0_AD14 */
+                       AM64X_IOPAD(0x0078, PIN_INPUT, 0) /* (Y20) GPMC0_AD15 */
+                       AM64X_IOPAD(0x0044, PIN_INPUT, 0) /* (T18) GPMC0_AD2 */
+                       AM64X_IOPAD(0x0048, PIN_INPUT, 0) /* (U20) GPMC0_AD3 */
+                       AM64X_IOPAD(0x004c, PIN_INPUT, 0) /* (U18) GPMC0_AD4 */
+                       AM64X_IOPAD(0x0050, PIN_INPUT, 0) /* (U19) GPMC0_AD5 */
+                       AM64X_IOPAD(0x0054, PIN_INPUT, 0) /* (V20) GPMC0_AD6 */
+                       AM64X_IOPAD(0x0058, PIN_INPUT, 0) /* (V21) GPMC0_AD7 */
+                       AM64X_IOPAD(0x005c, PIN_INPUT, 0) /* (V19) GPMC0_AD8 */
+                       AM64X_IOPAD(0x0060, PIN_INPUT, 0) /* (T17) GPMC0_AD9 */
+                       AM64X_IOPAD(0x0098, PIN_INPUT_PULLUP, 0) /* (W19) GPMC0_WAIT0 */
+                       AM64X_IOPAD(0x009c, PIN_INPUT_PULLUP, 0) /* (Y18) GPMC0_WAIT1 */
+                       AM64X_IOPAD(0x00a8, PIN_OUTPUT_PULLUP, 0) /* (R19) GPMC0_CSn0 */
+                       AM64X_IOPAD(0x00ac, PIN_OUTPUT_PULLUP, 0) /* (R20) GPMC0_CSn1 */
+                       AM64X_IOPAD(0x00b0, PIN_OUTPUT_PULLUP, 0) /* (P19) GPMC0_CSn2 */
+                       AM64X_IOPAD(0x00b4, PIN_OUTPUT_PULLUP, 0) /* (R21) GPMC0_CSn3 */
+                       AM64X_IOPAD(0x007c, PIN_OUTPUT, 0) /* (R17) GPMC0_CLK */
+                       AM64X_IOPAD(0x0084, PIN_OUTPUT, 0) /* (P16) GPMC0_ADVn_ALE */
+                       AM64X_IOPAD(0x0088, PIN_OUTPUT, 0) /* (R18) GPMC0_OEn_REn */
+                       AM64X_IOPAD(0x008c, PIN_OUTPUT, 0) /* (T21) GPMC0_WEn */
+                       AM64X_IOPAD(0x0090, PIN_OUTPUT, 0) /* (P17) GPMC0_BE0n_CLE */
+                       AM64X_IOPAD(0x00a0, PIN_OUTPUT_PULLUP, 0) /* (N16) GPMC0_WPn */
+                       AM64X_IOPAD(0x00a4, PIN_OUTPUT, 0) /* (N17) GPMC0_DIR */
+               >;
+       };
+};
+
+&main_gpio0 {
+       gpio0-36 {
+               bootph-all;
+               gpio-hog;
+               gpios = <36 0>;
+               input;
+               line-name = "GPMC0_MUX_DIR";
+       };
+};
+
+&elm0 {
+       bootph-all;
+       status = "okay";
+};
+
+&gpmc0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&gpmc0_pins_default>;
+       #address-cells = <2>;
+       #size-cells = <1>;
+
+       nand@0,0 {
+               compatible = "ti,am64-nand";
+               reg = <0 0 64>;         /* device IO registers */
+               interrupt-parent = <&gpmc0>;
+               interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
+                            <1 IRQ_TYPE_NONE>; /* termcount */
+               rb-gpios = <&gpmc0 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
+               ti,nand-xfer-type = "prefetch-polled";
+               ti,nand-ecc-opt = "bch8";       /* BCH8: Bootrom limitation */
+               ti,elm-id = <&elm0>;
+               nand-bus-width = <8>;
+               gpmc,device-width = <1>;
+               gpmc,sync-clk-ps = <0>;
+               gpmc,cs-on-ns = <0>;
+               gpmc,cs-rd-off-ns = <40>;
+               gpmc,cs-wr-off-ns = <40>;
+               gpmc,adv-on-ns = <0>;
+               gpmc,adv-rd-off-ns = <25>;
+               gpmc,adv-wr-off-ns = <25>;
+               gpmc,we-on-ns = <0>;
+               gpmc,we-off-ns = <20>;
+               gpmc,oe-on-ns = <3>;
+               gpmc,oe-off-ns = <30>;
+               gpmc,access-ns = <30>;
+               gpmc,rd-cycle-ns = <40>;
+               gpmc,wr-cycle-ns = <40>;
+               gpmc,bus-turnaround-ns = <0>;
+               gpmc,cycle2cycle-delay-ns = <0>;
+               gpmc,clk-activation-ns = <0>;
+               gpmc,wr-access-ns = <40>;
+               gpmc,wr-data-mux-bus-ns = <0>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               bootph-all;
+                               label = "NAND.tiboot3";
+                               reg = <0x00000000 0x00200000>;  /* 2M */
+                       };
+                       partition@200000 {
+                               bootph-all;
+                               label = "NAND.tispl";
+                               reg = <0x00200000 0x00200000>;  /* 2M */
+                       };
+                       partition@400000 {
+                               bootph-all;
+                               label = "NAND.tiboot3.backup";  /* 2M */
+                               reg = <0x00400000 0x00200000>;  /* BootROM looks at 4M */
+                       };
+                       partition@600000 {
+                               bootph-all;
+                               label = "NAND.u-boot";
+                               reg = <0x00600000 0x00400000>;  /* 4M */
+                       };
+                       partition@a00000 {
+                               bootph-all;
+                               label = "NAND.u-boot-env";
+                               reg = <0x00a00000 0x00040000>;  /* 256K */
+                       };
+                       partition@a40000 {
+                               bootph-all;
+                               label = "NAND.u-boot-env.backup";
+                               reg = <0x00a40000 0x00040000>;  /* 256K */
+                       };
+                       partition@a80000 {
+                               bootph-all;
+                               label = "NAND.file-system";
+                               reg = <0x00a80000 0x3f580000>;
+                       };
+               };
+       };
+};
index e20e4ffd0f1faee877aa1f76b4df0f31a24f1797..6bb1ad2e56ec2295df59171614f1602629b9b0b7 100644 (file)
                        AM64X_IOPAD(0x00f4, PIN_INPUT, 2) /* (Y9) PRG1_PRU0_GPO15.PRG1_RGMII1_TX_CTL */
                >;
        };
+
+       icssg1_iep0_pins_default: icssg1-iep0-default-pins {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x0104, PIN_OUTPUT, 2) /* (W7) PRG1_PRU0_GPO19.PRG1_IEP0_EDC_SYNC_OUT0 */
+               >;
+       };
 };
 
 &main_uart0 {
                rx-internal-delay-ps = <2000>;
        };
 };
+
+&gpmc0 {
+       ranges = <0 0 0x00 0x51000000 0x01000000>; /* CS0 space. Min partition = 16MB */
+};
+
+&icssg1_iep0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&icssg1_iep0_pins_default>;
+};
index 234d76e4e9445bd22e82f7450beebffb588832c2..5b5e9eeec5ac4856ee91d09ac34f469a2243b887 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&main_uart3_default_pins>;
        uart-has-rtscts;
-       rs485-rts-active-low;
        linux,rs485-enabled-at-boot-time;
        status = "okay";
 };
diff --git a/src/arm64/ti/k3-am642-phyboard-electra-pcie-usb2.dtso b/src/arm64/ti/k3-am642-phyboard-electra-pcie-usb2.dtso
new file mode 100644 (file)
index 0000000..7a5ce4b
--- /dev/null
@@ -0,0 +1,87 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * DT overlay for PCIe support (limits USB to 2.0/high-speed)
+ *
+ * Copyright (C) 2021 PHYTEC America, LLC - https://www.phytec.com
+ * Author: Matt McKee <mmckee@phytec.com>
+ *
+ * Copyright (C) 2024 PHYTEC America, LLC - https://www.phytec.com
+ * Author: Nathan Morrisson <nmorrisson@phytec.com>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/phy/phy-cadence.h>
+
+#include "k3-pinctrl.h"
+#include "k3-serdes.h"
+
+&{/} {
+       pcie_refclk0: pcie-refclk0 {
+               compatible = "gpio-gate-clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie_usb_sel_pins_default>;
+               clocks = <&serdes_refclk>;
+               #clock-cells = <0>;
+               enable-gpios = <&main_gpio1 7 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&main_pmx0 {
+       pcie_usb_sel_pins_default: pcie-usb-sel-default-pins {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x017c, PIN_OUTPUT, 7)      /* (T1) PRG0_PRU0_GPO7.GPIO1_7 */
+               >;
+       };
+
+       pcie_pins_default: pcie-default-pins {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x0098, PIN_OUTPUT, 7)      /* (W19) GPMC0_WAIT0.GPIO0_37 */
+               >;
+       };
+};
+
+&pcie0_rc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie_pins_default>;
+       reset-gpios = <&main_gpio0 37 GPIO_ACTIVE_HIGH>;
+       phys = <&serdes0_pcie_usb_link>;
+       phy-names = "pcie-phy";
+       num-lanes = <1>;
+       status = "okay";
+};
+
+&serdes0_pcie_usb_link {
+       cdns,phy-type = <PHY_TYPE_PCIE>;
+};
+
+&serdes_ln_ctrl {
+       idle-states = <AM64_SERDES0_LANE0_PCIE0>;
+};
+
+&serdes0 {
+       assigned-clock-parents = <&pcie_refclk0>, <&pcie_refclk0>, <&pcie_refclk0>;
+};
+
+&serdes_refclk {
+       clock-frequency = <100000000>;
+};
+
+/*
+ * Assign pcie_refclk0 to serdes_wiz0 as ext_ref_clk.
+ * This makes sure that the clock generator gets enabled at the right time.
+ */
+&serdes_wiz0 {
+       clocks = <&k3_clks 162 0>, <&k3_clks 162 1>, <&pcie_refclk0>;
+};
+
+&usbss0 {
+       ti,usb2-only;
+};
+
+&usb0 {
+       maximum-speed = "high-speed";
+};
index 6df331ccb970db06fd0118e8105ff3f03a1972d2..30729b49dd690dc6e61ae89d82452592e8ed7b11 100644 (file)
                >;
        };
 
-       pcie_usb_sel_pins_default: pcie-usb-sel-default-pins {
-               pinctrl-single,pins = <
-                       AM64X_IOPAD(0x017c, PIN_OUTPUT, 7)      /* (T1) PRG0_PRU0_GPO7.GPIO1_7 */
-               >;
-       };
-
-       pcie0_pins_default: pcie0-default-pins {
-               pinctrl-single,pins = <
-                       AM64X_IOPAD(0x0098, PIN_OUTPUT, 7)      /* (W19) GPMC0_WAIT0.GPIO0_37 */
-               >;
-       };
-
        user_leds_pins_default: user-leds-default-pins {
                pinctrl-single,pins = <
                        AM64X_IOPAD(0x003c, PIN_OUTPUT, 7)      /* (T20) GPMC0_AD0.GPIO0_15 */
index 5b028b3a3192f2890720b12fbba81f481206573c..44ecbcf1c84474cf639c809e3463b5e8b68993f8 100644 (file)
                #gpio-cells = <2>;
                gpio-line-names = "LED1","LED2","LED3","LED4","LED5","LED6","LED7","LED8";
        };
+
+       /* SoC power supply temperature */
+       tmp100@48 {
+               compatible = "ti,tmp100";
+               reg = <0x48>;
+       };
+
+       /* DDR power supply temperature */
+       tmp100@49 {
+               compatible = "ti,tmp100";
+               reg = <0x49>;
+       };
 };
 
 /* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
index 1f4dc5ad1696a5b29ffe941da22e1ab5a72b935d..c40ad67cee0191989d267c9d34a9364b44917ca1 100644 (file)
@@ -1,7 +1,7 @@
-// SPDX-License-Identifier: GPL-2.0-only
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
 /*
  * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
- * Copyright (c) 2022-2023 TQ-Systems GmbH <linux@ew.tq-group.com>, D-82229 Seefeld, Germany.
+ * Copyright (c) 2022-2024 TQ-Systems GmbH <linux@ew.tq-group.com>, D-82229 Seefeld, Germany.
  */
 
 /dts-v1/;
index 6c785eff7d2ffa32a2eb8512bae11dbf1422e068..828d815d6bdfc24d96c9e36f16643ed8bb59abfb 100644 (file)
@@ -1,7 +1,7 @@
-// SPDX-License-Identifier: GPL-2.0-only
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
 /*
  * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/
- * Copyright (c) 2022-2023 TQ-Systems GmbH <linux@ew.tq-group.com>, D-82229 Seefeld, Germany.
+ * Copyright (c) 2022-2024 TQ-Systems GmbH <linux@ew.tq-group.com>, D-82229 Seefeld, Germany.
  */
 
 #include "k3-am642.dtsi"
index ef7897763ef84fc45078f6a99565d15609a44331..0a29ed172215bd8d847c1f1d5c786a5eb3c78920 100644 (file)
                    "rx0", "rx1",
                    "rxmgm0", "rxmgm1";
 };
+
+&icssg0_iep0 {
+       interrupt-parent = <&icssg0_intc>;
+       interrupts = <7 7 7>;
+       interrupt-names = "iep_cap_cmp";
+};
+
+&icssg0_iep1 {
+       interrupt-parent = <&icssg0_intc>;
+       interrupts = <56 8 8>;
+       interrupt-names = "iep_cap_cmp";
+};
index ed71561c5bd9a9266225d0f4673fdc1962c33f39..1af3dedde1f67f5fde7f493e781393552f412ad6 100644 (file)
                              <0x22400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am65x-pru0_0-fw";
+                       interrupt-parent = <&icssg0_intc>;
+                       interrupts = <16 2 2>;
+                       interrupt-names = "vring";
                };
 
                rtu0_0: rtu@4000 {
                              <0x23400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am65x-rtu0_0-fw";
+                       interrupt-parent = <&icssg0_intc>;
+                       interrupts = <20 4 4>;
+                       interrupt-names = "vring";
                };
 
                tx_pru0_0: txpru@a000 {
                              <0x24400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am65x-pru0_1-fw";
+                       interrupt-parent = <&icssg0_intc>;
+                       interrupts = <18 3 3>;
+                       interrupt-names = "vring";
                };
 
                rtu0_1: rtu@6000 {
                              <0x23c00 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am65x-rtu0_1-fw";
+                       interrupt-parent = <&icssg0_intc>;
+                       interrupts = <22 5 5>;
+                       interrupt-names = "vring";
                };
 
                tx_pru0_1: txpru@c000 {
                              <0x22400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am65x-pru1_0-fw";
+                       interrupt-parent = <&icssg1_intc>;
+                       interrupts = <16 2 2>;
+                       interrupt-names = "vring";
                };
 
                rtu1_0: rtu@4000 {
                              <0x23400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am65x-rtu1_0-fw";
+                       interrupt-parent = <&icssg1_intc>;
+                       interrupts = <20 4 4>;
+                       interrupt-names = "vring";
                };
 
                tx_pru1_0: txpru@a000 {
                              <0x24400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am65x-pru1_1-fw";
+                       interrupt-parent = <&icssg1_intc>;
+                       interrupts = <18 3 3>;
+                       interrupt-names = "vring";
                };
 
                rtu1_1: rtu@6000 {
                              <0x23c00 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am65x-rtu1_1-fw";
+                       interrupt-parent = <&icssg1_intc>;
+                       interrupts = <22 5 5>;
+                       interrupt-names = "vring";
                };
 
                tx_pru1_1: txpru@c000 {
                              <0x22400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am65x-pru2_0-fw";
+                       interrupt-parent = <&icssg2_intc>;
+                       interrupts = <16 2 2>;
+                       interrupt-names = "vring";
                };
 
                rtu2_0: rtu@4000 {
                              <0x23400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am65x-rtu2_0-fw";
+                       interrupt-parent = <&icssg2_intc>;
+                       interrupts = <20 4 4>;
+                       interrupt-names = "vring";
                };
 
                tx_pru2_0: txpru@a000 {
                              <0x24400 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am65x-pru2_1-fw";
+                       interrupt-parent = <&icssg2_intc>;
+                       interrupts = <18 3 3>;
+                       interrupt-names = "vring";
                };
 
                rtu2_1: rtu@6000 {
                              <0x23c00 0x100>;
                        reg-names = "iram", "control", "debug";
                        firmware-name = "am65x-rtu2_1-fw";
+                       interrupt-parent = <&icssg2_intc>;
+                       interrupts = <22 5 5>;
+                       interrupt-names = "vring";
                };
 
                tx_pru2_1: txpru@c000 {
index 8feab93176447912e85d86571d1fb42ab61f3ad3..43c6118d2bf0fb9c1d540ba8ac990f5d6c2e8053 100644 (file)
@@ -6,13 +6,17 @@
  */
 
 &cbass_mcu {
-       mcu_conf: scm-conf@40f00000 {
-               compatible = "syscon", "simple-mfd";
-               reg = <0x0 0x40f00000 0x0 0x20000>;
+       mcu_conf: bus@40f00000 {
+               compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0x0 0x0 0x40f00000 0x20000>;
 
+               cpsw_mac_syscon: ethernet-mac-syscon@200 {
+                       compatible = "ti,am62p-cpsw-mac-efuse", "syscon";
+                       reg = <0x200 0x8>;
+               };
+
                phy_gmii_sel: phy@4040 {
                        compatible = "ti,am654-phy-gmii-sel";
                        reg = <0x4040 0x4>;
                                reg = <1>;
                                ti,mac-only;
                                label = "port1";
-                               ti,syscon-efuse = <&mcu_conf 0x200>;
+                               ti,syscon-efuse = <&cpsw_mac_syscon 0x0>;
                                phys = <&phy_gmii_sel 1>;
                        };
                };
index aba0c52b121338feabdd5b01ef65bb85f85ed762..aa7139cc8a92b44fe94b556d392038edf6e9f35e 100644 (file)
@@ -33,6 +33,7 @@
 
        memory@80000000 {
                device_type = "memory";
+               bootph-all;
                /* 4G RAM */
                reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
                      <0x00000008 0x80000000 0x00000000 0x80000000>;
index d743f023cdd9deb79ac219e24b90d3658ef45b75..90dbe31c5b811698d860e375ecc1fafd7dd2bba1 100644 (file)
        pinctrl-0 = <&wkup_uart0_pins_default>;
 };
 
+&wkup_i2c0 {
+       bootph-all;
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&wkup_i2c0_pins_default>;
+       status = "okay";
+
+       lp8733: pmic@60 {
+               compatible = "ti,lp8733";
+               reg = <0x60>;
+               buck0-in-supply = <&vsys_3v3>;
+               buck1-in-supply = <&vsys_3v3>;
+               ldo0-in-supply = <&vsys_3v3>;
+               ldo1-in-supply = <&vsys_3v3>;
+
+               lp8733_regulators: regulators {
+                       lp8733_buck0_reg: buck0 {
+                               /* FB_B0 -> LP8733-BUCK1 - VDD_MCU_0V85 */
+                               regulator-name = "lp8733-buck0";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       lp8733_buck1_reg: buck1 {
+                               /* FB_B1 -> LP8733-BUCK2 - VDD_DDR_1V1 */
+                               regulator-name = "lp8733-buck1";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       lp8733_ldo0_reg: ldo0 {
+                               /* LDO0 -> LP8733-LDO1 - VDA_DLL_0V8 */
+                               regulator-name = "lp8733-ldo0";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       lp8733_ldo1_reg: ldo1 {
+                               /* LDO1 -> LP8733-LDO2 - VDA_LN_1V8 */
+                               regulator-name = "lp8733-ldo1";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+               };
+       };
+
+       tps62873a: regulator@40 {
+               compatible = "ti,tps62873";
+               reg = <0x40>;
+               bootph-pre-ram;
+               regulator-name = "VDD_CPU_AVS";
+               regulator-min-microvolt = <600000>;
+               regulator-max-microvolt = <900000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       tps62873b: regulator@43 {
+               compatible = "ti,tps62873";
+               reg = <0x43>;
+               regulator-name = "VDD_CORE_0V8";
+               regulator-min-microvolt = <800000>;
+               regulator-max-microvolt = <800000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+};
+
 &mcu_uart0 {
        status = "okay";
        pinctrl-names = "default";
index 0f4a5da0ebc4527723eb16a0ccfb9a721b6cc71d..5c66e0ec6e82119559d4c7a23c74f0aa63ef0638 100644 (file)
 / {
        memory@80000000 {
                device_type = "memory";
+               bootph-all;
                /* 16 GB RAM */
-               reg = <0x00 0x80000000 0x00 0x80000000>,
-                     <0x08 0x80000000 0x03 0x80000000>;
+               reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
+                     <0x00000008 0x80000000 0x00000003 0x80000000>;
        };
 
        reserved_memory: reserved-memory {
        };
 };
 
+&wkup_pmx0 {
+       mcu_fss0_ospi0_pins_default: mcu-fss0-ospi0-pins {
+               bootph-all;
+               pinctrl-single,pins = <
+                       J721S2_WKUP_IOPAD(0x000, PIN_OUTPUT, 0) /* (D19) MCU_OSPI0_CLK */
+                       J721S2_WKUP_IOPAD(0x02c, PIN_OUTPUT, 0) /* (F15) MCU_OSPI0_CSn0 */
+                       J721S2_WKUP_IOPAD(0x00c, PIN_INPUT, 0) /* (C19) MCU_OSPI0_D0 */
+                       J721S2_WKUP_IOPAD(0x010, PIN_INPUT, 0) /* (F16) MCU_OSPI0_D1 */
+                       J721S2_WKUP_IOPAD(0x014, PIN_INPUT, 0) /* (G15) MCU_OSPI0_D2 */
+                       J721S2_WKUP_IOPAD(0x018, PIN_INPUT, 0) /* (F18) MCU_OSPI0_D3 */
+                       J721S2_WKUP_IOPAD(0x01c, PIN_INPUT, 0) /* (E19) MCU_OSPI0_D4 */
+                       J721S2_WKUP_IOPAD(0x020, PIN_INPUT, 0) /* (G19) MCU_OSPI0_D5 */
+                       J721S2_WKUP_IOPAD(0x024, PIN_INPUT, 0) /* (F19) MCU_OSPI0_D6 */
+                       J721S2_WKUP_IOPAD(0x028, PIN_INPUT, 0) /* (F20) MCU_OSPI0_D7 */
+                       J721S2_WKUP_IOPAD(0x008, PIN_INPUT, 0) /* (E18) MCU_OSPI0_DQS */
+               >;
+       };
+};
+
 &wkup_pmx2 {
        wkup_i2c0_pins_default: wkup-i2c0-default-pins {
                pinctrl-single,pins = <
        };
 };
 
+&ospi0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_fss0_ospi0_pins_default>;
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0x0>;
+               spi-tx-bus-width = <8>;
+               spi-rx-bus-width = <8>;
+               spi-max-frequency = <25000000>;
+               cdns,tshsl-ns = <60>;
+               cdns,tsd2d-ns = <60>;
+               cdns,tchsh-ns = <60>;
+               cdns,tslch-ns = <60>;
+               cdns,read-delay = <4>;
+
+               partitions {
+                       bootph-all;
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "ospi.tiboot3";
+                               reg = <0x0 0x80000>;
+                       };
+
+                       partition@80000 {
+                               label = "ospi.tispl";
+                               reg = <0x80000 0x200000>;
+                       };
+
+                       partition@280000 {
+                               label = "ospi.u-boot";
+                               reg = <0x280000 0x400000>;
+                       };
+
+                       partition@680000 {
+                               label = "ospi.env";
+                               reg = <0x680000 0x40000>;
+                       };
+
+                       partition@740000 {
+                               label = "ospi.env.backup";
+                               reg = <0x740000 0x40000>;
+                       };
+
+                       partition@800000 {
+                               label = "ospi.rootfs";
+                               reg = <0x800000 0x37c0000>;
+                       };
+
+                       partition@3fc0000 {
+                               bootph-pre-ram;
+                               label = "ospi.phypattern";
+                               reg = <0x3fc0000 0x40000>;
+                       };
+               };
+       };
+};
+
 &mailbox0_cluster0 {
        status = "okay";
        interrupts = <436>;
index d88651c297a22a52b499fd34f3e4d8f16e8af2fe..3f655852244ee7147e97c5138fbcf1804d4b8d27 100644 (file)
@@ -35,8 +35,8 @@
                device_type = "memory";
                bootph-all;
                /* 32G RAM */
-               reg = <0x00 0x80000000 0x00 0x80000000>,
-                     <0x08 0x80000000 0x07 0x80000000>;
+               reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
+                     <0x00000008 0x80000000 0x00000007 0x80000000>;
        };
 
        reserved_memory: reserved-memory {
                        };
                };
        };
+
+       tps62873a: regulator@40 {
+               compatible = "ti,tps62873";
+               reg = <0x40>;
+               bootph-pre-ram;
+               regulator-name = "VDD_CPU_AVS";
+               regulator-min-microvolt = <600000>;
+               regulator-max-microvolt = <900000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       tps62873b: regulator@43 {
+               compatible = "ti,tps62873";
+               reg = <0x43>;
+               regulator-name = "VDD_CORE_0V8";
+               regulator-min-microvolt = <760000>;
+               regulator-max-microvolt = <840000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
 };
 
 &wkup_gpio0 {
                };
        };
 };
+
+&serdes_ln_ctrl {
+       idle-states = <J784S4_SERDES0_LANE0_PCIE1_LANE0>, <J784S4_SERDES0_LANE1_PCIE1_LANE1>,
+                     <J784S4_SERDES0_LANE2_PCIE3_LANE0>, <J784S4_SERDES0_LANE3_USB>,
+                       <J784S4_SERDES1_LANE0_PCIE0_LANE0>, <J784S4_SERDES1_LANE1_PCIE0_LANE1>,
+                       <J784S4_SERDES1_LANE2_PCIE0_LANE2>, <J784S4_SERDES1_LANE3_PCIE0_LANE3>;
+};
+
+&serdes_wiz0 {
+       status = "okay";
+};
+
+&serdes0 {
+       status = "okay";
+
+       serdes0_pcie_link: phy@0 {
+               reg = <0>;
+               cdns,num-lanes = <3>;
+               #phy-cells = <0>;
+               cdns,phy-type = <PHY_TYPE_PCIE>;
+               resets = <&serdes_wiz0 1>, <&serdes_wiz0 2>, <&serdes_wiz0 3>;
+       };
+};
+
+&serdes_wiz1 {
+       status = "okay";
+};
+
+&serdes1 {
+       status = "okay";
+
+       serdes1_pcie_link: phy@0 {
+               reg = <0>;
+               cdns,num-lanes = <4>;
+               #phy-cells = <0>;
+               cdns,phy-type = <PHY_TYPE_PCIE>;
+               resets = <&serdes_wiz1 1>, <&serdes_wiz1 2>, <&serdes_wiz1 3>, <&serdes_wiz1 4>;
+       };
+};
+
+&pcie0_rc {
+       status = "okay";
+       reset-gpios = <&exp1 4 GPIO_ACTIVE_HIGH>;
+       phys = <&serdes1_pcie_link>;
+       phy-names = "pcie-phy";
+};
+
+&pcie1_rc {
+       status = "okay";
+       reset-gpios = <&exp1 5 GPIO_ACTIVE_HIGH>;
+       phys = <&serdes0_pcie_link>;
+       phy-names = "pcie-phy";
+       num-lanes = <2>;
+};
+
+&pcie3_rc {
+       status = "okay";
+       reset-gpios = <&exp1 6 GPIO_ACTIVE_HIGH>;
+       phys = <&serdes0_pcie_link>;
+       phy-names = "pcie-phy";
+       num-lanes = <1>;
+};
diff --git a/src/arm64/ti/k3-am6xx-phycore-disable-eth-phy.dtso b/src/arm64/ti/k3-am6xx-phycore-disable-eth-phy.dtso
new file mode 100644 (file)
index 0000000..356c82b
--- /dev/null
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (C) 2023 PHYTEC America, LLC
+ * Author: Garrett Giordano <ggiordano@phytec.com>
+ *
+ * Copyright (C) 2024 PHYTEC America, LLC
+ * Author: Nathan Morrisson <nmorrisson@phytec.com>
+ */
+
+/dts-v1/;
+/plugin/;
+
+&cpsw3g_phy1 {
+       status = "disabled";
+};
+
+&cpsw_port1 {
+       status = "disabled";
+};
diff --git a/src/arm64/ti/k3-am6xx-phycore-disable-rtc.dtso b/src/arm64/ti/k3-am6xx-phycore-disable-rtc.dtso
new file mode 100644 (file)
index 0000000..8b24191
--- /dev/null
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (C) 2023 PHYTEC America, LLC
+ * Author: Garrett Giordano <ggiordano@phytec.com>
+ *
+ * Copyright (C) 2024 PHYTEC America, LLC
+ * Author: Nathan Morrisson <nmorrisson@phytec.com>
+ */
+
+/dts-v1/;
+/plugin/;
+
+&i2c_som_rtc {
+       status = "disabled";
+};
diff --git a/src/arm64/ti/k3-am6xx-phycore-disable-spi-nor.dtso b/src/arm64/ti/k3-am6xx-phycore-disable-spi-nor.dtso
new file mode 100644 (file)
index 0000000..cc0cf26
--- /dev/null
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (C) 2023 PHYTEC America, LLC
+ * Author: Garrett Giordano <ggiordano@phytec.com>
+ *
+ * Copyright (C) 2024 PHYTEC America, LLC
+ * Author: Nathan Morrisson <nmorrisson@phytec.com>
+ */
+
+/dts-v1/;
+/plugin/;
+
+&serial_flash {
+       status = "disabled";
+};
diff --git a/src/arm64/ti/k3-am6xx-phycore-qspi-nor.dtso b/src/arm64/ti/k3-am6xx-phycore-qspi-nor.dtso
new file mode 100644 (file)
index 0000000..969dfeb
--- /dev/null
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (C) 2024 PHYTEC America LLC
+ * Author: Nathan Morrisson <nmorrisson@phytec.com>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include "k3-pinctrl.h"
+
+&serial_flash {
+       spi-tx-bus-width = <1>;
+       spi-rx-bus-width = <4>;
+};
index fccaabfb13482076d691e137ab3f5bce81056bb9..5097d192c2b208ffa702a38631d096995b4b53d5 100644 (file)
                ti,timer-pwm;
        };
 
-       mcu_conf: syscon@40f00000 {
-               compatible = "syscon", "simple-mfd";
-               reg = <0x00 0x40f00000 0x00 0x20000>;
+       mcu_conf: bus@40f00000 {
+               compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
-               ranges = <0x00 0x00 0x40f00000 0x20000>;
+               ranges = <0x0 0x0 0x40f00000 0x20000>;
+
+               cpsw_mac_syscon: ethernet-mac-syscon@200 {
+                       compatible = "ti,am62p-cpsw-mac-efuse", "syscon";
+                       reg = <0x200 0x8>;
+               };
 
                phy_gmii_sel: phy@4040 {
                        compatible = "ti,am654-phy-gmii-sel";
                                reg = <1>;
                                ti,mac-only;
                                label = "port1";
-                               ti,syscon-efuse = <&mcu_conf 0x200>;
+                               ti,syscon-efuse = <&cpsw_mac_syscon 0x0>;
                                phys = <&phy_gmii_sel 1>;
                        };
                };
index 7e6a584ac6f0b52882a87eec7994c90383c62297..21fe194a576625319e8fb0663e53a636ea2d14bf 100644 (file)
 / {
        memory@80000000 {
                device_type = "memory";
+               bootph-all;
                /* 4G RAM */
-               reg = <0x00 0x80000000 0x00 0x80000000>,
-                     <0x08 0x80000000 0x00 0x80000000>;
+               reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
+                     <0x00000008 0x80000000 0x00000000 0x80000000>;
        };
 
        reserved_memory: reserved-memory {
diff --git a/src/arm64/ti/k3-j721e-common-proc-board-infotainment.dtso b/src/arm64/ti/k3-j721e-common-proc-board-infotainment.dtso
new file mode 100644 (file)
index 0000000..65a7e54
--- /dev/null
@@ -0,0 +1,164 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Infotainment Expansion Board for j721e-evm
+ * User Guide: <https://www.ti.com/lit/ug/spruit0a/spruit0a.pdf>
+ *
+ * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+#include "k3-pinctrl.h"
+
+&{/} {
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+               type = "a";
+               ddc-i2c-bus = <&main_i2c1>;
+               digital;
+               /* P12 - HDMI_HPD */
+               hpd-gpios = <&exp6 10 GPIO_ACTIVE_HIGH>;
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&tfp410_out>;
+                       };
+               };
+       };
+
+       dvi-bridge {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "ti,tfp410";
+               /* P10 - HDMI_PDn */
+               powerdown-gpios = <&exp6 8 GPIO_ACTIVE_LOW>;
+
+               port@0 {
+                       reg = <0>;
+
+                       tfp410_in: endpoint {
+                               remote-endpoint = <&dpi_out0>;
+                               pclk-sample = <1>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       tfp410_out: endpoint {
+                               remote-endpoint =
+                                       <&hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&main_pmx0 {
+       main_i2c1_exp6_pins_default: main-i2c1-exp6-default-pins {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x264, PIN_INPUT, 7) /* (T29) MMC2_DAT2.GPIO1_24 */
+               >;
+       };
+
+       dss_vout0_pins_default: dss-vout0-default-pins {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x58, PIN_OUTPUT, 10) /* (AE22) PRG1_PRU1_GPO0.VOUT0_DATA0 */
+                       J721E_IOPAD(0x5c, PIN_OUTPUT, 10) /* (AG23) PRG1_PRU1_GPO1.VOUT0_DATA1 */
+                       J721E_IOPAD(0x60, PIN_OUTPUT, 10) /* (AF23) PRG1_PRU1_GPO2.VOUT0_DATA2 */
+                       J721E_IOPAD(0x64, PIN_OUTPUT, 10) /* (AD23) PRG1_PRU1_GPO3.VOUT0_DATA3 */
+                       J721E_IOPAD(0x68, PIN_OUTPUT, 10) /* (AH24) PRG1_PRU1_GPO4.VOUT0_DATA4 */
+                       J721E_IOPAD(0x6c, PIN_OUTPUT, 10) /* (AG21) PRG1_PRU1_GPO5.VOUT0_DATA5 */
+                       J721E_IOPAD(0x70, PIN_OUTPUT, 10) /* (AE23) PRG1_PRU1_GPO6.VOUT0_DATA6 */
+                       J721E_IOPAD(0x74, PIN_OUTPUT, 10) /* (AC21) PRG1_PRU1_GPO7.VOUT0_DATA7 */
+                       J721E_IOPAD(0x78, PIN_OUTPUT, 10) /* (Y23)  PRG1_PRU1_GPO8.VOUT0_DATA8 */
+                       J721E_IOPAD(0x7c, PIN_OUTPUT, 10) /* (AF21) PRG1_PRU1_GPO9.VOUT0_DATA9 */
+                       J721E_IOPAD(0x80, PIN_OUTPUT, 10) /* (AB23) PRG1_PRU1_GPO10.VOUT0_DATA10 */
+                       J721E_IOPAD(0x84, PIN_OUTPUT, 10) /* (AJ25) PRG1_PRU1_GPO11.VOUT0_DATA11 */
+                       J721E_IOPAD(0x88, PIN_OUTPUT, 10) /* (AH25) PRG1_PRU1_GPO12.VOUT0_DATA12 */
+                       J721E_IOPAD(0x8c, PIN_OUTPUT, 10) /* (AG25) PRG1_PRU1_GPO13.VOUT0_DATA13 */
+                       J721E_IOPAD(0x90, PIN_OUTPUT, 10) /* (AH26) PRG1_PRU1_GPO14.VOUT0_DATA14 */
+                       J721E_IOPAD(0x94, PIN_OUTPUT, 10) /* (AJ27) PRG1_PRU1_GPO15.VOUT0_DATA15 */
+                       J721E_IOPAD(0x30, PIN_OUTPUT, 10) /* (AF24) PRG1_PRU0_GPO11.VOUT0_DATA16 */
+                       J721E_IOPAD(0x34, PIN_OUTPUT, 10) /* (AJ24) PRG1_PRU0_GPO12.VOUT0_DATA17 */
+                       J721E_IOPAD(0x38, PIN_OUTPUT, 10) /* (AG24) PRG1_PRU0_GPO13.VOUT0_DATA18 */
+                       J721E_IOPAD(0x3c, PIN_OUTPUT, 10) /* (AD24) PRG1_PRU0_GPO14.VOUT0_DATA19 */
+                       J721E_IOPAD(0x40, PIN_OUTPUT, 10) /* (AC24) PRG1_PRU0_GPO15.VOUT0_DATA20 */
+                       J721E_IOPAD(0x44, PIN_OUTPUT, 10) /* (AE24) PRG1_PRU0_GPO16.VOUT0_DATA21 */
+                       J721E_IOPAD(0x24, PIN_OUTPUT, 10) /* (AJ20) PRG1_PRU0_GPO8.VOUT0_DATA22 */
+                       J721E_IOPAD(0x28, PIN_OUTPUT, 10) /* (AG20) PRG1_PRU0_GPO9.VOUT0_DATA23 */
+                       J721E_IOPAD(0x9c, PIN_OUTPUT, 10) /* (AC22) PRG1_PRU1_GPO17.VOUT0_DE */
+                       J721E_IOPAD(0x98, PIN_OUTPUT, 10) /* (AJ26) PRG1_PRU1_GPO16.VOUT0_HSYNC */
+                       J721E_IOPAD(0xa4, PIN_OUTPUT, 10) /* (AH22) PRG1_PRU1_GPO19.VOUT0_PCLK */
+                       J721E_IOPAD(0xa0, PIN_OUTPUT, 10) /* (AJ22) PRG1_PRU1_GPO18.VOUT0_VSYNC */
+               >;
+       };
+};
+
+&exp1 {
+       p14-hog {
+               /* P14 - VINOUT_MUX_SEL0 */
+               gpio-hog;
+               gpios = <12 GPIO_ACTIVE_HIGH>;
+               output-low;
+               line-name = "VINOUT_MUX_SEL0";
+       };
+
+       p15-hog {
+               /* P15 - VINOUT_MUX_SEL1 */
+               gpio-hog;
+               gpios = <13 GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "VINOUT_MUX_SEL1";
+       };
+};
+
+&main_i2c1 {
+       /* i2c1 is used for DVI DDC, so we need to use 100kHz */
+       clock-frequency = <100000>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       exp6: gpio@21 {
+               compatible = "ti,tca6416";
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&main_i2c1_exp6_pins_default>;
+               interrupt-parent = <&main_gpio1>;
+               interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               p11-hog {
+                       /* P11 - HDMI_DDC_OE */
+                       gpio-hog;
+                       gpios = <9 GPIO_ACTIVE_HIGH>;
+                       output-high;
+                       line-name = "HDMI_DDC_OE";
+               };
+       };
+};
+
+&dss {
+       pinctrl-names = "default";
+       pinctrl-0 = <&dss_vout0_pins_default>;
+};
+
+&dss_ports {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       port@1 {
+               reg = <1>;
+
+               dpi_out0: endpoint {
+                       remote-endpoint = <&tfp410_in>;
+               };
+       };
+};
index 9349ae07c046e6acfa8843e325bd12fdb7ce6a75..6b6ef6a30614262627c3f722cd47fcd975de67bf 100644 (file)
                };
        };
 
-       mcu_conf: syscon@40f00000 {
-               compatible = "syscon", "simple-mfd";
-               reg = <0x0 0x40f00000 0x0 0x20000>;
+       mcu_conf: bus@40f00000 {
+               compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0x0 0x0 0x40f00000 0x20000>;
 
+               cpsw_mac_syscon: ethernet-mac-syscon@200 {
+                       compatible = "ti,am62p-cpsw-mac-efuse", "syscon";
+                       reg = <0x200 0x8>;
+               };
+
                phy_gmii_sel: phy@4040 {
                        compatible = "ti,am654-phy-gmii-sel";
                        reg = <0x4040 0x4>;
                                reg = <1>;
                                ti,mac-only;
                                label = "port1";
-                               ti,syscon-efuse = <&mcu_conf 0x200>;
+                               ti,syscon-efuse = <&cpsw_mac_syscon 0x0>;
                                phys = <&phy_gmii_sel 1>;
                        };
                };
index 0c4575ad8d7cb03919a7a4520acc2d4059a23287..89fbfb21e5d3b22537e6ad697b1f2c30864b863e 100644 (file)
@@ -31,6 +31,7 @@
 
        memory@80000000 {
                device_type = "memory";
+               bootph-all;
                /* 4G RAM */
                reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
                      <0x00000008 0x80000000 0x00000000 0x80000000>;
                         <3300000 0x1>;
        };
 
+       transceiver1: can-phy1 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mcu_mcan0_gpio_pins_default>;
+               standby-gpios = <&wkup_gpio0 3 GPIO_ACTIVE_HIGH>;
+       };
+
+       transceiver2: can-phy2 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&main_mcan0_gpio_pins_default>;
+               standby-gpios = <&main_gpio0 65 GPIO_ACTIVE_HIGH>;
+       };
+
+       transceiver3: can-phy3 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&main_mcan5_gpio_pins_default>;
+               standby-gpios = <&main_gpio0 66 GPIO_ACTIVE_HIGH>;
+       };
+
+       transceiver4: can-phy4 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&main_mcan9_gpio_pins_default>;
+               standby-gpios = <&main_gpio0 67 GPIO_ACTIVE_HIGH>;
+       };
+
        dp_pwr_3v3: fixedregulator-dp-prw {
                compatible = "regulator-fixed";
                regulator-name = "dp-pwr";
                >;
        };
 
+       main_mcan0_pins_default: main-mcan0-default-pins {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x208, PIN_INPUT, 0) /* (W5) MCAN0_RX */
+                       J721E_IOPAD(0x20c, PIN_OUTPUT, 0) /* (W6) MCAN0_TX */
+               >;
+       };
+
+       main_mcan0_gpio_pins_default: main-mcan0-gpio-default-pins {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x108, PIN_INPUT, 7) /* (AD27) PRG0_PRU1_GPO2.GPIO0_65 */
+               >;
+       };
+
+       main_mcan5_pins_default: main-mcan5-default-pins {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x050, PIN_INPUT, 6) /* (AE21) PRG1_PRU0_GPO18.MCAN5_RX */
+                       J721E_IOPAD(0x04c, PIN_OUTPUT, 6) /* (AJ21) PRG1_PRU0_GPO17.MCAN5_TX */
+               >;
+       };
+
+       main_mcan5_gpio_pins_default: main-mcan5-gpio-default-pins {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x10c, PIN_INPUT, 7) /* (AC25) PRG0_PRU1_GPO3.GPIO0_66 */
+               >;
+       };
+
+       main_mcan9_pins_default: main-mcan9-default-pins {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x0d0, PIN_INPUT, 6) /* (AC27) PRG0_PRU0_GPO8.MCAN9_RX */
+                       J721E_IOPAD(0x0cc, PIN_OUTPUT, 6) /* (AC28) PRG0_PRU0_GPO7.MCAN9_TX */
+               >;
+       };
+
+       main_mcan9_gpio_pins_default: main-mcan9-gpio-default-pins {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x110, PIN_INPUT, 7) /* (AD29) PRG0_PRU1_GPO4.GPIO0_67 */
+               >;
+       };
+
        dp0_pins_default: dp0-default-pins {
                pinctrl-single,pins = <
                        J721E_IOPAD(0x1c4, PIN_INPUT, 5) /* SPI0_CS1.DP0_HPD */
                >;
        };
 
+       mcu_mcan0_pins_default: mcu-mcan0-default-pins {
+               pinctrl-single,pins = <
+                       J721E_WKUP_IOPAD(0x0ac, PIN_INPUT, 0) /* (C29) MCU_MCAN0_RX */
+                       J721E_WKUP_IOPAD(0x0a8, PIN_OUTPUT, 0) /* (D29) MCU_MCAN0_TX */
+               >;
+       };
+
+       mcu_mcan0_gpio_pins_default: mcu-mcan0-gpio-default-pins {
+               pinctrl-single,pins = <
+                       J721E_WKUP_IOPAD(0x0bc, PIN_INPUT, 7) /* (F27) WKUP_GPIO0_3 */
+               >;
+       };
+
        /* Reset for M.2 M Key slot on PCIe1  */
        mkey_reset_pins_default: mkey-reset-pns-default-pins {
                pinctrl-single,pins = <
        num-lanes = <2>;
 };
 
+&mcu_mcan0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_mcan0_pins_default>;
+       phys = <&transceiver1>;
+       status = "okay";
+};
+
+&main_mcan0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcan0_pins_default>;
+       phys = <&transceiver2>;
+       status = "okay";
+};
+
+&main_mcan5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcan5_pins_default>;
+       phys = <&transceiver3>;
+       status = "okay";
+};
+
+&main_mcan9 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcan9_pins_default>;
+       phys = <&transceiver4>;
+       status = "okay";
+};
+
 &ufs_wrapper {
        status = "disabled";
 };
index 1fae6495db074a9b9997681575bcfe35e67f240a..5ba947771b842dea3ef3ceaa0b864d981e880dd5 100644 (file)
@@ -12,6 +12,7 @@
 / {
        memory@80000000 {
                device_type = "memory";
+               bootph-all;
                /* 4G RAM */
                reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
                      <0x00000008 0x80000000 0x00000000 0x80000000>;
index 5ccb04c7c4624efff9e512fb87b90440a77de863..8feb42c89e4760c79f5d30f530ef1398cdeab4ab 100644 (file)
                ti,interrupt-ranges = <16 960 16>;
        };
 
-       mcu_conf: syscon@40f00000 {
-               compatible = "syscon", "simple-mfd";
-               reg = <0x0 0x40f00000 0x0 0x20000>;
+       mcu_conf: bus@40f00000 {
+               compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0x0 0x0 0x40f00000 0x20000>;
 
+               cpsw_mac_syscon: ethernet-mac-syscon@200 {
+                       compatible = "ti,am62p-cpsw-mac-efuse", "syscon";
+                       reg = <0x200 0x8>;
+               };
+
                phy_gmii_sel: phy@4040 {
                        compatible = "ti,am654-phy-gmii-sel";
                        reg = <0x4040 0x4>;
                                reg = <1>;
                                ti,mac-only;
                                label = "port1";
-                               ti,syscon-efuse = <&mcu_conf 0x200>;
+                               ti,syscon-efuse = <&cpsw_mac_syscon 0x0>;
                                phys = <&phy_gmii_sel 1>;
                        };
                };
index 623c8421525d1932800140c2b424c10ed2be6227..82aacc01e8fe88f02888c928022bb6f415646b0c 100644 (file)
 / {
        memory@80000000 {
                device_type = "memory";
+               bootph-all;
                /* 16 GB RAM */
-               reg = <0x00 0x80000000 0x00 0x80000000>,
-                     <0x08 0x80000000 0x03 0x80000000>;
+               reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
+                     <0x00000008 0x80000000 0x00000003 0x80000000>;
        };
 
        /* Reserving memory regions still pending */
index bf3c246d13d1f5fc09f72427a2aa84fdf0ef16c1..dd3b5f7039d7c1c6fd78bd56b3cd5304f1eb7f7b 100644 (file)
@@ -9,7 +9,9 @@
 /dts-v1/;
 
 #include <dt-bindings/net/ti-dp83867.h>
+#include <dt-bindings/phy/phy.h>
 #include "k3-j722s.dtsi"
+#include "k3-serdes.h"
 
 / {
        compatible = "ti,j722s-evm", "ti,j722s";
                         <3300000 0x1>;
        };
 
+       vsys_io_3v3: regulator-vsys-io-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vsys_io_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
        vsys_io_1v8: regulator-vsys-io-1v8 {
                compatible = "regulator-fixed";
                regulator-name = "vsys_io_1v8";
                regulator-always-on;
                regulator-boot-on;
        };
+
+       codec_audio: sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "J722S-EVM";
+               simple-audio-card,widgets =
+                       "Headphone",    "Headphone Jack",
+                       "Line",         "Line In",
+                       "Microphone",   "Microphone Jack";
+               simple-audio-card,routing =
+                       "Headphone Jack",       "HPLOUT",
+                       "Headphone Jack",       "HPROUT",
+                       "LINE1L",               "Line In",
+                       "LINE1R",               "Line In",
+                       "MIC3R",                "Microphone Jack",
+                       "Microphone Jack",      "Mic Bias";
+               simple-audio-card,format = "dsp_b";
+               simple-audio-card,bitclock-master = <&sound_master>;
+               simple-audio-card,frame-master = <&sound_master>;
+               simple-audio-card,bitclock-inversion;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&mcasp1>;
+               };
+
+               sound_master: simple-audio-card,codec {
+                       sound-dai = <&tlv320aic3106>;
+                       clocks = <&audio_refclk1>;
+               };
+       };
 };
 
 &main_pmx0 {
                        J722S_IOPAD(0x012c, PIN_OUTPUT, 0) /* (AF25) RGMII1_TX_CTL */
                >;
        };
+
+       main_usb1_pins_default: main-usb1-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x0258, PIN_INPUT, 0) /* (B27) USB1_DRVVBUS */
+               >;
+       };
+
+       main_mcasp1_pins_default: main-mcasp1-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x0090, PIN_INPUT, 2) /* (P27) GPMC0_BE0n_CLE.MCASP1_ACLKX */
+                       J722S_IOPAD(0x0098, PIN_INPUT, 2) /* (V21) GPMC0_WAIT0.MCASP1_AFSX */
+                       J722S_IOPAD(0x008c, PIN_OUTPUT, 2) /* (N23) GPMC0_WEn.MCASP1_AXR0 */
+                       J722S_IOPAD(0x0084, PIN_INPUT, 2) /* (N21) GPMC0_ADVn_ALE.MCASP1_AXR2 */
+               >;
+       };
+
+       audio_ext_refclk1_pins_default: audio-ext-refclk1-default-pins {
+               pinctrl-single,pins = <
+                       J722S_IOPAD(0x00a0, PIN_OUTPUT, 1) /* (N24) GPMC0_WPn.AUDIO_EXT_REFCLK1 */
+               >;
+       };
 };
 
 &cpsw3g {
        bootph-all;
 };
 
+&k3_clks {
+       /* Configure AUDIO_EXT_REFCLK1 pin as output */
+       pinctrl-names = "default";
+       pinctrl-0 = <&audio_ext_refclk1_pins_default>;
+};
+
 &main_i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_i2c0_pins_default>;
                                  "PCIe0_1L_RC_RSTz", "PCIe0_1L_PRSNT#",
                                  "ENET1_EXP_SPARE2", "ENET1_EXP_PWRDN",
                                  "PD_I2ENET1_I2CMUX_SELC_IRQ", "ENET1_EXP_RESETZ";
+
+               p05-hog {
+                       /* P05 - USB2.0_MUX_SEL */
+                       gpio-hog;
+                       gpios = <5 GPIO_ACTIVE_HIGH>;
+                       output-high;
+               };
+
+               p01_hog: p01-hog {
+                       /* P01 - TRC_MUX_SEL */
+                       gpio-hog;
+                       gpios = <0 GPIO_ACTIVE_HIGH>;
+                       output-low;
+                       line-name = "TRC_MUX_SEL";
+               };
+
+               p02_hog: p02-hog {
+                       /* P02 - MCASP1_FET_SEL */
+                       gpio-hog;
+                       gpios = <2 GPIO_ACTIVE_HIGH>;
+                       output-high;
+                       line-name = "MCASP1_FET_SEL";
+               };
+
+               p13_hog: p13-hog {
+                       /* P13 - GPIO_AUD_RSTn */
+                       gpio-hog;
+                       gpios = <13 GPIO_ACTIVE_HIGH>;
+                       output-high;
+                       line-name = "GPIO_AUD_RSTn";
+               };
+       };
+
+       tlv320aic3106: audio-codec@1b {
+               #sound-dai-cells = <0>;
+               compatible = "ti,tlv320aic3106";
+               reg = <0x1b>;
+               ai3x-micbias-vg = <1>;  /* 2.0V */
+               AVDD-supply = <&vsys_io_3v3>;
+               IOVDD-supply = <&vsys_io_3v3>;
+               DRVDD-supply = <&vsys_io_3v3>;
+               DVDD-supply = <&vsys_io_1v8>;
        };
 };
 
        status = "okay";
        bootph-all;
 };
+
+&serdes_ln_ctrl {
+       idle-states = <J722S_SERDES0_LANE0_USB>,
+                     <J722S_SERDES1_LANE0_PCIE0_LANE0>;
+};
+
+&serdes0 {
+       status = "okay";
+       serdes0_usb_link: phy@0 {
+               reg = <0>;
+               cdns,num-lanes = <1>;
+               #phy-cells = <0>;
+               cdns,phy-type = <PHY_TYPE_USB3>;
+               resets = <&serdes_wiz0 1>;
+       };
+};
+
+&serdes1 {
+       status = "okay";
+       serdes1_pcie_link: phy@0 {
+               reg = <0>;
+               cdns,num-lanes = <1>;
+               #phy-cells = <0>;
+               cdns,phy-type = <PHY_TYPE_PCIE>;
+               resets = <&serdes_wiz1 1>;
+       };
+};
+
+&pcie0_rc {
+       reset-gpios = <&exp1 18 GPIO_ACTIVE_HIGH>;
+       phys = <&serdes1_pcie_link>;
+       phy-names = "pcie-phy";
+       status = "okay";
+};
+
+&usbss0 {
+       ti,vbus-divider;
+       status = "okay";
+};
+
+&usb0 {
+       dr_mode = "otg";
+       usb-role-switch;
+};
+
+&usbss1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_usb1_pins_default>;
+       ti,vbus-divider;
+       status = "okay";
+};
+
+&usb1 {
+       dr_mode = "host";
+       maximum-speed = "super-speed";
+       phys = <&serdes0_usb_link>;
+       phy-names = "cdns3,usb3-phy";
+};
+
+&mcasp1 {
+       status = "okay";
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcasp1_pins_default>;
+       op-mode = <0>; /* MCASP_IIS_MODE */
+       tdm-slots = <2>;
+       serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
+              1 0 2 0
+              0 0 0 0
+              0 0 0 0
+              0 0 0 0
+       >;
+};
diff --git a/src/arm64/ti/k3-j722s-main.dtsi b/src/arm64/ti/k3-j722s-main.dtsi
new file mode 100644 (file)
index 0000000..dde4bd5
--- /dev/null
@@ -0,0 +1,218 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Device Tree file for the J722S MAIN domain peripherals
+ *
+ * Copyright (C) 2023-2024 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+#include <dt-bindings/phy/phy-cadence.h>
+#include <dt-bindings/phy/phy-ti.h>
+
+/ {
+       serdes_refclk: clk-0 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+       };
+};
+
+&cbass_main {
+       serdes_wiz0: phy@f000000 {
+               compatible = "ti,am64-wiz-10g";
+               ranges = <0x0f000000 0x0 0x0f000000 0x00010000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               power-domains = <&k3_pds 279 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 279 0>, <&k3_clks 279 1>, <&serdes_refclk>;
+               clock-names = "fck", "core_ref_clk", "ext_ref_clk";
+               num-lanes = <1>;
+               #reset-cells = <1>;
+               #clock-cells = <1>;
+
+               assigned-clocks = <&k3_clks 279 1>;
+               assigned-clock-parents = <&k3_clks 279 5>;
+
+               serdes0: serdes@f000000 {
+                       compatible = "ti,j721e-serdes-10g";
+                       reg = <0x0f000000 0x00010000>;
+                       reg-names = "torrent_phy";
+                       resets = <&serdes_wiz0 0>;
+                       reset-names = "torrent_reset";
+                       clocks = <&serdes_wiz0 TI_WIZ_PLL0_REFCLK>,
+                                <&serdes_wiz0 TI_WIZ_PHY_EN_REFCLK>;
+                       clock-names = "refclk", "phy_en_refclk";
+                       assigned-clocks = <&serdes_wiz0 TI_WIZ_PLL0_REFCLK>,
+                                         <&serdes_wiz0 TI_WIZ_PLL1_REFCLK>,
+                                         <&serdes_wiz0 TI_WIZ_REFCLK_DIG>;
+                       assigned-clock-parents = <&k3_clks 279 1>,
+                                                <&k3_clks 279 1>,
+                                                <&k3_clks 279 1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #clock-cells = <1>;
+
+                       status = "disabled"; /* Needs lane config */
+               };
+       };
+
+       serdes_wiz1: phy@f010000 {
+               compatible = "ti,am64-wiz-10g";
+               ranges = <0x0f010000 0x0 0x0f010000 0x00010000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               power-domains = <&k3_pds 280 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 280 0>, <&k3_clks 280 1>, <&serdes_refclk>;
+               clock-names = "fck", "core_ref_clk", "ext_ref_clk";
+               num-lanes = <1>;
+               #reset-cells = <1>;
+               #clock-cells = <1>;
+
+               assigned-clocks = <&k3_clks 280 1>;
+               assigned-clock-parents = <&k3_clks 280 5>;
+
+               serdes1: serdes@f010000 {
+                       compatible = "ti,j721e-serdes-10g";
+                       reg = <0x0f010000 0x00010000>;
+                       reg-names = "torrent_phy";
+                       resets = <&serdes_wiz1 0>;
+                       reset-names = "torrent_reset";
+                       clocks = <&serdes_wiz1 TI_WIZ_PLL0_REFCLK>,
+                                <&serdes_wiz1 TI_WIZ_PHY_EN_REFCLK>;
+                       clock-names = "refclk", "phy_en_refclk";
+                       assigned-clocks = <&serdes_wiz1 TI_WIZ_PLL0_REFCLK>,
+                                         <&serdes_wiz1 TI_WIZ_PLL1_REFCLK>,
+                                         <&serdes_wiz1 TI_WIZ_REFCLK_DIG>;
+                       assigned-clock-parents = <&k3_clks 280 1>,
+                                                <&k3_clks 280 1>,
+                                                <&k3_clks 280 1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #clock-cells = <1>;
+
+                       status = "disabled"; /* Needs lane config */
+               };
+       };
+
+       pcie0_rc: pcie@f102000 {
+               compatible = "ti,j722s-pcie-host", "ti,j721e-pcie-host";
+               reg = <0x00 0x0f102000 0x00 0x1000>,
+                     <0x00 0x0f100000 0x00 0x400>,
+                     <0x00 0x0d000000 0x00 0x00800000>,
+                     <0x00 0x68000000 0x00 0x00001000>;
+               reg-names = "intd_cfg", "user_cfg", "reg", "cfg";
+               ranges = <0x01000000 0x00 0x68001000  0x00 0x68001000  0x00 0x0010000>,
+                        <0x02000000 0x00 0x68011000  0x00 0x68011000  0x00 0x7fef000>;
+               dma-ranges = <0x02000000 0x0 0x0 0x0 0x0 0x10000 0x0>;
+               interrupt-names = "link_state";
+               interrupts = <GIC_SPI 99 IRQ_TYPE_EDGE_RISING>;
+               device_type = "pci";
+               max-link-speed = <3>;
+               num-lanes = <1>;
+               power-domains = <&k3_pds 259 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 259 0>, <&serdes1 CDNS_TORRENT_REFCLK_DRIVER>;
+               clock-names = "fck", "pcie_refclk";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               bus-range = <0x0 0xff>;
+               vendor-id = <0x104c>;
+               device-id = <0xb010>;
+               cdns,no-bar-match-nbits = <64>;
+               ti,syscon-pcie-ctrl = <&pcie0_ctrl 0x0>;
+               msi-map = <0x0 &gic_its 0x0 0x10000>;
+               status = "disabled";
+       };
+
+       usbss1: usb@f920000 {
+               compatible = "ti,j721e-usb";
+               reg = <0x00 0x0f920000 0x00 0x100>;
+               power-domains = <&k3_pds 278 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 278 3>, <&k3_clks 278 1>;
+               clock-names = "ref", "lpm";
+               assigned-clocks = <&k3_clks 278 3>; /* USB2_REFCLK */
+               assigned-clock-parents = <&k3_clks 278 4>; /* HF0SC0 */
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               status = "disabled";
+
+               usb1: usb@31200000{
+                       compatible = "cdns,usb3";
+                       reg = <0x00 0x31200000 0x00 0x10000>,
+                             <0x00 0x31210000 0x00 0x10000>,
+                             <0x00 0x31220000 0x00 0x10000>;
+                       reg-names = "otg",
+                                   "xhci",
+                                   "dev";
+                       interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
+                                    <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>, /* irq.6 */
+                                    <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>; /* otgirq */
+                       interrupt-names = "host",
+                                         "peripheral",
+                                         "otg";
+                       maximum-speed = "super-speed";
+                       dr_mode = "otg";
+               };
+       };
+};
+
+&main_conf {
+       serdes_ln_ctrl: mux-controller@4080 {
+               compatible = "reg-mux";
+               reg = <0x4080 0x14>;
+               #mux-control-cells = <1>;
+               mux-reg-masks = <0x00 0x3>, /* SERDES0 lane0 select */
+                               <0x10 0x3>; /* SERDES1 lane0 select */
+       };
+
+       audio_refclk1: clock@82e4 {
+               compatible = "ti,am62-audio-refclk";
+               reg = <0x82e4 0x4>;
+               clocks = <&k3_clks 157 18>;
+               assigned-clocks = <&k3_clks 157 18>;
+               assigned-clock-parents = <&k3_clks 157 33>;
+               #clock-cells = <0>;
+       };
+};
+
+&wkup_conf {
+       pcie0_ctrl: pcie0-ctrl@4070 {
+               compatible = "ti,j784s4-pcie-ctrl", "syscon";
+               reg = <0x4070 0x4>;
+       };
+};
+
+&oc_sram {
+       reg = <0x00 0x70000000 0x00 0x40000>;
+       ranges = <0x00 0x00 0x70000000 0x40000>;
+};
+
+&inta_main_dmss {
+       ti,interrupt-ranges = <7 71 21>;
+};
+
+&main_pmx0 {
+       pinctrl-single,gpio-range =
+               <&main_pmx0_range 0 32 PIN_GPIO_RANGE_IOPAD>,
+               <&main_pmx0_range 33 38 PIN_GPIO_RANGE_IOPAD>,
+               <&main_pmx0_range 72 17 PIN_GPIO_RANGE_IOPAD>,
+               <&main_pmx0_range 101 25 PIN_GPIO_RANGE_IOPAD>,
+               <&main_pmx0_range 137 5 PIN_GPIO_RANGE_IOPAD>,
+               <&main_pmx0_range 143 3 PIN_GPIO_RANGE_IOPAD>,
+               <&main_pmx0_range 149 2 PIN_GPIO_RANGE_IOPAD>;
+
+       main_pmx0_range: gpio-range {
+               #pinctrl-single,gpio-range-cells = <3>;
+       };
+};
+
+&main_gpio0 {
+       gpio-ranges = <&main_pmx0 0 0 32>, <&main_pmx0 32 33 38>,
+                       <&main_pmx0 70 72 17>;
+       ti,ngpio = <87>;
+};
+
+&main_gpio1 {
+       gpio-ranges = <&main_pmx0 7 101 25>, <&main_pmx0 42 137 5>,
+                       <&main_pmx0 47 143 3>, <&main_pmx0 50 149 2>;
+       ti,ngpio = <73>;
+};
index c75744edb1433b42451d79d9518860953e184755..14c6c6a332ef2f118e483744e97222865560e6ac 100644 (file)
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/soc/ti,sci_pm_domain.h>
 
-#include "k3-am62p5.dtsi"
+#include "k3-pinctrl.h"
 
 / {
        model = "Texas Instruments K3 J722S SoC";
        compatible = "ti,j722s";
+       interrupt-parent = <&gic500>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu-map {
+                       cluster0: cluster0 {
+                               core0 {
+                                       cpu = <&cpu0>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu1>;
+                               };
+
+                               core2 {
+                                       cpu = <&cpu2>;
+                               };
+
+                               core3 {
+                                       cpu = <&cpu3>;
+                               };
+                       };
+               };
+
+               cpu0: cpu@0 {
+                       compatible = "arm,cortex-a53";
+                       reg = <0x000>;
+                       device_type = "cpu";
+                       enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_0>;
+                       clocks = <&k3_clks 135 0>;
+               };
+
+               cpu1: cpu@1 {
+                       compatible = "arm,cortex-a53";
+                       reg = <0x001>;
+                       device_type = "cpu";
+                       enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_0>;
+                       clocks = <&k3_clks 136 0>;
+               };
+
+               cpu2: cpu@2 {
+                       compatible = "arm,cortex-a53";
+                       reg = <0x002>;
+                       device_type = "cpu";
+                       enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_0>;
+                       clocks = <&k3_clks 137 0>;
+               };
+
+               cpu3: cpu@3 {
+                       compatible = "arm,cortex-a53";
+                       reg = <0x003>;
+                       device_type = "cpu";
+                       enable-method = "psci";
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_0>;
+                       clocks = <&k3_clks 138 0>;
+               };
+       };
+
+       l2_0: l2-cache0 {
+               compatible = "cache";
+               cache-unified;
+               cache-level = <2>;
+               cache-size = <0x80000>;
+               cache-line-size = <64>;
+               cache-sets = <512>;
+       };
+
+       firmware {
+               optee {
+                       compatible = "linaro,optee-tz";
+                       method = "smc";
+               };
+
+               psci: psci {
+                       compatible = "arm,psci-1.0";
+                       method = "smc";
+               };
+       };
+
+       a53_timer0: timer-cl0-cpu0 {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* cntpsirq */
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* cntpnsirq */
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* cntvirq */
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* cnthpirq */
+       };
+
+       pmu: pmu {
+               compatible = "arm,cortex-a53-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
+       };
 
        cbass_main: bus@f0000 {
                compatible = "simple-bus";
                         <0x00 0x43000000 0x00 0x43000000 0x00 0x00020000>,
                         <0x00 0x78000000 0x00 0x78000000 0x00 0x00008000>,
                         <0x00 0x78100000 0x00 0x78100000 0x00 0x00008000>;
-       };
-};
 
-/* Main domain overrides */
+               cbass_mcu: bus@4000000 {
+                       compatible = "simple-bus";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges = <0x00 0x04000000 0x00 0x04000000 0x00 0x01ff1400>, /* Peripheral window */
+                                <0x00 0x79000000 0x00 0x79000000 0x00 0x00008000>, /* MCU R5 ATCM */
+                                <0x00 0x79020000 0x00 0x79020000 0x00 0x00008000>, /* MCU R5 BTCM */
+                                <0x00 0x79100000 0x00 0x79100000 0x00 0x00040000>, /* MCU IRAM0 */
+                                <0x00 0x79140000 0x00 0x79140000 0x00 0x00040000>; /* MCU IRAM1 */
+                       bootph-all;
+               };
 
-&inta_main_dmss {
-       ti,interrupt-ranges = <7 71 21>;
-};
+               cbass_wakeup: bus@b00000 {
+                       compatible = "simple-bus";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges = <0x00 0x00b00000 0x00 0x00b00000 0x00 0x00002400>, /* VTM */
+                                <0x00 0x2b000000 0x00 0x2b000000 0x00 0x00300400>, /* Peripheral Window */
+                                <0x00 0x43000000 0x00 0x43000000 0x00 0x00020000>, /* WKUP CTRL MMR */
+                                <0x00 0x78000000 0x00 0x78000000 0x00 0x00008000>, /* DM R5 ATCM*/
+                                <0x00 0x78100000 0x00 0x78100000 0x00 0x00008000>; /* DM R5 BTCM*/
+                       bootph-all;
+               };
+       };
 
-&oc_sram {
-       reg = <0x00 0x70000000 0x00 0x40000>;
-       ranges = <0x00 0x00 0x70000000 0x40000>;
+       #include "k3-am62p-j722s-common-thermal.dtsi"
 };
+
+/* Include peripherals shared with AM62P */
+#include "k3-am62p-j722s-common-main.dtsi"
+#include "k3-am62p-j722s-common-mcu.dtsi"
+#include "k3-am62p-j722s-common-wakeup.dtsi"
+
+/* Include J722S specific peripherals */
+#include "k3-j722s-main.dtsi"
diff --git a/src/arm64/ti/k3-j784s4-evm-pcie0-pcie1-ep.dtso b/src/arm64/ti/k3-j784s4-evm-pcie0-pcie1-ep.dtso
new file mode 100644 (file)
index 0000000..6853050
--- /dev/null
@@ -0,0 +1,79 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/**
+ * DT Overlay for enabling PCIE0 and PCIE1 instances in Endpoint Configuration
+ * on J784S4 EVM.
+ *
+ * J784S4 EVM Product Link: https://www.ti.com/tool/J784S4XEVM
+ *
+ * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/soc/ti,sci_pm_domain.h>
+
+#include "k3-pinctrl.h"
+
+/*
+ * Since Root Complex and Endpoint modes are mutually exclusive
+ * disable Root Complex mode.
+ */
+&pcie0_rc {
+       status = "disabled";
+};
+
+&pcie1_rc {
+       status = "disabled";
+};
+
+&cbass_main {
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&gic500>;
+
+       pcie0_ep: pcie-ep@2900000 {
+               compatible = "ti,j784s4-pcie-ep";
+               reg = <0x00 0x02900000 0x00 0x1000>,
+                     <0x00 0x02907000 0x00 0x400>,
+                     <0x00 0x0d000000 0x00 0x00800000>,
+                     <0x00 0x10000000 0x00 0x08000000>;
+               reg-names = "intd_cfg", "user_cfg", "reg", "mem";
+               interrupt-names = "link_state";
+               interrupts = <GIC_SPI 318 IRQ_TYPE_EDGE_RISING>;
+               ti,syscon-pcie-ctrl = <&pcie0_ctrl 0x0>;
+               max-link-speed = <3>;
+               num-lanes = <4>;
+               power-domains = <&k3_pds 332 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 332 0>;
+               clock-names = "fck";
+               max-functions = /bits/ 8 <6>;
+               max-virtual-functions = /bits/ 8 <4 4 4 4 0 0>;
+               dma-coherent;
+               phys = <&serdes1_pcie0_link>;
+               phy-names = "pcie-phy";
+       };
+
+       pcie1_ep: pcie-ep@2910000 {
+               compatible = "ti,j784s4-pcie-ep";
+               reg = <0x00 0x02910000 0x00 0x1000>,
+                     <0x00 0x02917000 0x00 0x400>,
+                     <0x00 0x0d800000 0x00 0x00800000>,
+                     <0x00 0x18000000 0x00 0x08000000>;
+               reg-names = "intd_cfg", "user_cfg", "reg", "mem";
+               interrupt-names = "link_state";
+               interrupts = <GIC_SPI 330 IRQ_TYPE_EDGE_RISING>;
+               ti,syscon-pcie-ctrl = <&pcie1_ctrl 0x0>;
+               max-link-speed = <3>;
+               num-lanes = <2>;
+               power-domains = <&k3_pds 333 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 333 0>;
+               clock-names = "fck";
+               max-functions = /bits/ 8 <6>;
+               max-virtual-functions = /bits/ 8 <4 4 4 4 0 0>;
+               dma-coherent;
+               phys = <&serdes0_pcie1_link>;
+               phy-names = "pcie-phy";
+       };
+};
diff --git a/src/arm64/ti/k3-j784s4-evm-quad-port-eth-exp1.dtso b/src/arm64/ti/k3-j784s4-evm-quad-port-eth-exp1.dtso
new file mode 100644 (file)
index 0000000..dcd2c7c
--- /dev/null
@@ -0,0 +1,147 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR MIT */
+/**
+ * DT Overlay for CPSW9G in QSGMII mode using J7 Quad Port ETH EXP Add-On Ethernet Card with
+ * J784S4 EVM. The Add-On Ethernet Card has to be connected to ENET Expansion 1 slot on the
+ * board.
+ *
+ * Product Datasheet: https://www.ti.com/lit/ug/spruj74/spruj74.pdf
+ *
+ * Link to QSGMII Daughtercard: https://www.ti.com/tool/J721EXENETXPANEVM
+ *
+ * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/phy/phy-cadence.h>
+#include <dt-bindings/phy/phy.h>
+
+#include "k3-pinctrl.h"
+#include "k3-serdes.h"
+
+&{/} {
+       aliases {
+               ethernet1 = "/bus@100000/ethernet@c000000/ethernet-ports/port@5";
+               ethernet2 = "/bus@100000/ethernet@c000000/ethernet-ports/port@6";
+               ethernet3 = "/bus@100000/ethernet@c000000/ethernet-ports/port@7";
+               ethernet4 = "/bus@100000/ethernet@c000000/ethernet-ports/port@8";
+               ethernet5 = "/bus@100000/ethernet@c200000/ethernet-ports/port@1";
+       };
+};
+
+&main_cpsw0 {
+       status = "okay";
+};
+
+&main_cpsw0_port5 {
+       phy-handle = <&cpsw9g_phy1>;
+       phy-mode = "qsgmii";
+       mac-address = [00 00 00 00 00 00];
+       phys = <&cpsw0_phy_gmii_sel 5>, <&serdes2_qsgmii_link>;
+       phy-names = "mac", "serdes";
+       status = "okay";
+};
+
+&main_cpsw0_port6 {
+       phy-handle = <&cpsw9g_phy2>;
+       phy-mode = "qsgmii";
+       mac-address = [00 00 00 00 00 00];
+       phys = <&cpsw0_phy_gmii_sel 6>, <&serdes2_qsgmii_link>;
+       phy-names = "mac", "serdes";
+       status = "okay";
+};
+
+&main_cpsw0_port7 {
+       phy-handle = <&cpsw9g_phy0>;
+       phy-mode = "qsgmii";
+       mac-address = [00 00 00 00 00 00];
+       phys = <&cpsw0_phy_gmii_sel 7>, <&serdes2_qsgmii_link>;
+       phy-names = "mac", "serdes";
+       status = "okay";
+};
+
+&main_cpsw0_port8 {
+       phy-handle = <&cpsw9g_phy3>;
+       phy-mode = "qsgmii";
+       mac-address = [00 00 00 00 00 00];
+       phys = <&cpsw0_phy_gmii_sel 8>, <&serdes2_qsgmii_link>;
+       phy-names = "mac", "serdes";
+       status = "okay";
+};
+
+&main_cpsw0_mdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mdio0_default_pins>;
+       bus_freq = <1000000>;
+       reset-gpios = <&exp2 17 GPIO_ACTIVE_LOW>;
+       reset-post-delay-us = <120000>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       cpsw9g_phy0: ethernet-phy@16 {
+               reg = <16>;
+       };
+       cpsw9g_phy1: ethernet-phy@17 {
+               reg = <17>;
+       };
+       cpsw9g_phy2: ethernet-phy@18 {
+               reg = <18>;
+       };
+       cpsw9g_phy3: ethernet-phy@19 {
+               reg = <19>;
+       };
+};
+
+&exp2 {
+       /* Power-up ENET1 EXPANDER PHY. */
+       qsgmii-line-hog {
+               gpio-hog;
+               gpios = <16 GPIO_ACTIVE_HIGH>;
+               output-low;
+       };
+
+       /* Toggle MUX2 for MDIO lines */
+       mux-sel-hog {
+               gpio-hog;
+               gpios = <13 GPIO_ACTIVE_HIGH>, <14 GPIO_ACTIVE_HIGH>, <15 GPIO_ACTIVE_HIGH>;
+               output-high;
+       };
+};
+
+&main_pmx0 {
+       mdio0_default_pins: mdio0-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_IOPAD(0x05c, PIN_INPUT, 4) /* (AC36) MCASP2_AXR0.MDIO1_MDIO */
+                       J784S4_IOPAD(0x058, PIN_INPUT, 4) /* (AE37) MCASP2_AFSX.MDIO1_MDC */
+               >;
+       };
+};
+
+&serdes_ln_ctrl {
+       idle-states = <J784S4_SERDES0_LANE0_PCIE1_LANE0>, <J784S4_SERDES0_LANE1_PCIE1_LANE1>,
+                     <J784S4_SERDES0_LANE2_IP3_UNUSED>, <J784S4_SERDES0_LANE3_USB>,
+                     <J784S4_SERDES1_LANE0_PCIE0_LANE0>, <J784S4_SERDES1_LANE1_PCIE0_LANE1>,
+                     <J784S4_SERDES1_LANE2_PCIE0_LANE2>, <J784S4_SERDES1_LANE3_PCIE0_LANE3>,
+                     <J784S4_SERDES2_LANE0_QSGMII_LANE5>, <J784S4_SERDES2_LANE1_QSGMII_LANE6>,
+                     <J784S4_SERDES2_LANE2_QSGMII_LANE7>, <J784S4_SERDES2_LANE3_QSGMII_LANE8>;
+};
+
+&serdes_wiz2 {
+       status = "okay";
+};
+
+&serdes2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+       serdes2_qsgmii_link: phy@0 {
+               reg = <2>;
+               cdns,num-lanes = <1>;
+               #phy-cells = <0>;
+               cdns,phy-type = <PHY_TYPE_QSGMII>;
+               resets = <&serdes_wiz2 3>;
+       };
+};
diff --git a/src/arm64/ti/k3-j784s4-evm-usxgmii-exp1-exp2.dtso b/src/arm64/ti/k3-j784s4-evm-usxgmii-exp1-exp2.dtso
new file mode 100644 (file)
index 0000000..d5f8c85
--- /dev/null
@@ -0,0 +1,81 @@
+/* SPDX-License-Identifier: GPL-2.0-only OR MIT */
+/**
+ * DT Overlay for CPSW9G in dual port fixed-link USXGMII mode using ENET-1
+ * and ENET-2 Expansion slots of J784S4 EVM.
+ *
+ * Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/phy/phy-cadence.h>
+#include <dt-bindings/phy/phy.h>
+
+#include "k3-serdes.h"
+
+&{/} {
+       aliases {
+               ethernet1 = "/bus@100000/ethernet@c000000/ethernet-ports/port@1";
+               ethernet2 = "/bus@100000/ethernet@c000000/ethernet-ports/port@2";
+               ethernet3 = "/bus@100000/ethernet@c200000/ethernet-ports/port@1";
+       };
+};
+
+&main_cpsw0 {
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&main_cpsw0_port1 {
+       phy-mode = "usxgmii";
+       mac-address = [00 00 00 00 00 00];
+       phys = <&cpsw0_phy_gmii_sel 1>, <&serdes2_usxgmii_link>;
+       phy-names = "mac", "serdes";
+       status = "okay";
+       fixed-link {
+               speed = <5000>;
+               full-duplex;
+       };
+};
+
+&main_cpsw0_port2 {
+       phy-mode = "usxgmii";
+       mac-address = [00 00 00 00 00 00];
+       phys = <&cpsw0_phy_gmii_sel 2>, <&serdes2_usxgmii_link>;
+       phy-names = "mac", "serdes";
+       status = "okay";
+       fixed-link {
+               speed = <5000>;
+               full-duplex;
+       };
+};
+
+&serdes_wiz2 {
+       assigned-clock-parents = <&k3_clks 406 9>; /* Use 156.25 MHz clock for USXGMII */
+       status = "okay";
+};
+
+&serdes2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       serdes2_usxgmii_link: phy@2 {
+               reg = <2>;
+               cdns,num-lanes = <2>;
+               #phy-cells = <0>;
+               cdns,phy-type = <PHY_TYPE_USXGMII>;
+               resets = <&serdes_wiz2 3>, <&serdes_wiz2 4>;
+       };
+};
+
+&serdes_ln_ctrl {
+       idle-states = <J784S4_SERDES0_LANE0_PCIE1_LANE0>, <J784S4_SERDES0_LANE1_PCIE1_LANE1>,
+                     <J784S4_SERDES0_LANE2_IP3_UNUSED>, <J784S4_SERDES0_LANE3_USB>,
+                     <J784S4_SERDES1_LANE0_PCIE0_LANE0>, <J784S4_SERDES1_LANE1_PCIE0_LANE1>,
+                     <J784S4_SERDES1_LANE2_PCIE0_LANE2>, <J784S4_SERDES1_LANE3_PCIE0_LANE3>,
+                     <J784S4_SERDES2_LANE0_IP2_UNUSED>, <J784S4_SERDES2_LANE1_IP2_UNUSED>,
+                     <J784S4_SERDES2_LANE2_QSGMII_LANE1>, <J784S4_SERDES2_LANE3_QSGMII_LANE2>;
+};
index d511b25d62e37024813f78c6cbac66407d0e398c..ffa38f41679d8436f570682dc6133c53f51bbef3 100644 (file)
                mmc1 = &main_sdhci1;
                i2c0 = &wkup_i2c0;
                i2c3 = &main_i2c0;
+               ethernet0 = &mcu_cpsw_port1;
+               ethernet1 = &main_cpsw1_port1;
        };
 
        memory@80000000 {
                device_type = "memory";
                bootph-all;
                /* 32G RAM */
-               reg = <0x00 0x80000000 0x00 0x80000000>,
-                     <0x08 0x80000000 0x07 0x80000000>;
+               reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
+                     <0x00000008 0x80000000 0x00000007 0x80000000>;
        };
 
        reserved_memory: reserved-memory {
                        };
                };
        };
+
+       transceiver0: can-phy0 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mcu_mcan0_gpio_pins_default>;
+               standby-gpios = <&wkup_gpio0 69 GPIO_ACTIVE_HIGH>;
+       };
+
+       transceiver1: can-phy1 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mcu_mcan1_gpio_pins_default>;
+               standby-gpios = <&wkup_gpio0 2 GPIO_ACTIVE_HIGH>;
+       };
+
+       transceiver2: can-phy2 {
+               /* standby pin has been grounded by default */
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+       };
+
+       transceiver3: can-phy3 {
+               compatible = "ti,tcan1042";
+               #phy-cells = <0>;
+               max-bitrate = <5000000>;
+               standby-gpios = <&exp2 7 GPIO_ACTIVE_HIGH>;
+               mux-states = <&mux1 1>;
+       };
+
+       mux1: mux-controller {
+               compatible = "gpio-mux";
+               #mux-state-cells = <1>;
+               mux-gpios = <&exp2 14 GPIO_ACTIVE_HIGH>;
+               idle-state = <1>;
+       };
+
+       codec_audio: sound {
+               compatible = "ti,j7200-cpb-audio";
+               model = "j784s4-cpb";
+
+               ti,cpb-mcasp = <&mcasp0>;
+               ti,cpb-codec = <&pcm3168a_1>;
+
+               clocks = <&k3_clks 265 0>, <&k3_clks 265 1>,
+                        <&k3_clks 157 34>, <&k3_clks 157 63>;
+               clock-names = "cpb-mcasp-auxclk", "cpb-mcasp-auxclk-48000",
+                             "cpb-codec-scki", "cpb-codec-scki-48000";
+       };
 };
 
 &wkup_gpio0 {
 
 &main_pmx0 {
        bootph-all;
+       main_cpsw2g_default_pins: main-cpsw2g-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_IOPAD(0x0b8, PIN_INPUT, 6) /* (AC34) MCASP1_ACLKX.RGMII1_RD0 */
+                       J784S4_IOPAD(0x0a0, PIN_INPUT, 6) /* (AD34) MCASP0_AXR12.RGMII1_RD1 */
+                       J784S4_IOPAD(0x0a4, PIN_INPUT, 6) /* (AJ36) MCASP0_AXR13.RGMII1_RD2 */
+                       J784S4_IOPAD(0x0a8, PIN_INPUT, 6) /* (AF34) MCASP0_AXR14.RGMII1_RD3 */
+                       J784S4_IOPAD(0x0b0, PIN_INPUT, 6) /* (AL33) MCASP1_AXR3.RGMII1_RXC */
+                       J784S4_IOPAD(0x0ac, PIN_INPUT, 6) /* (AE34) MCASP0_AXR15.RGMII1_RX_CTL */
+                       J784S4_IOPAD(0x08c, PIN_INPUT, 6) /* (AE35) MCASP0_AXR7.RGMII1_TD0 */
+                       J784S4_IOPAD(0x090, PIN_INPUT, 6) /* (AC35) MCASP0_AXR8.RGMII1_TD1 */
+                       J784S4_IOPAD(0x094, PIN_INPUT, 6) /* (AG35) MCASP0_AXR9.RGMII1_TD2 */
+                       J784S4_IOPAD(0x098, PIN_INPUT, 6) /* (AH36) MCASP0_AXR10.RGMII1_TD3 */
+                       J784S4_IOPAD(0x0b4, PIN_INPUT, 6) /* (AL34) MCASP1_AXR4.RGMII1_TXC */
+                       J784S4_IOPAD(0x09c, PIN_INPUT, 6) /* (AF35) MCASP0_AXR11.RGMII1_TX_CTL */
+               >;
+       };
+
+       main_cpsw2g_mdio_default_pins: main-cpsw2g-mdio-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_IOPAD(0x0c0, PIN_INPUT, 6) /* (AD38) MCASP1_AXR0.MDIO0_MDC */
+                       J784S4_IOPAD(0x0bc, PIN_INPUT, 6) /* (AD33) MCASP1_AFSX.MDIO0_MDIO */
+               >;
+       };
+
        main_uart8_pins_default: main-uart8-default-pins {
                bootph-all;
                pinctrl-single,pins = <
                        J784S4_IOPAD(0x010, PIN_INPUT_PULLUP, 8) /* (AH33) MCAN13_RX.I2C4_SDA */
                >;
        };
+
+       main_mcan4_pins_default: main-mcan4-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_IOPAD(0x088, PIN_INPUT, 0) /* (AF36) MCAN4_RX */
+                       J784S4_IOPAD(0x084, PIN_OUTPUT, 0) /* (AG38) MCAN4_TX */
+               >;
+       };
+
+       main_mcan16_pins_default: main-mcan16-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_IOPAD(0x028, PIN_INPUT, 0) /* (AE33) MCAN16_RX */
+                       J784S4_IOPAD(0x024, PIN_OUTPUT, 0) /* (AH34) MCAN16_TX */
+               >;
+       };
+
+       main_usbss0_pins_default: main-usbss0-default-pins {
+               bootph-all;
+               pinctrl-single,pins = <
+                       J784S4_IOPAD(0x0ec, PIN_OUTPUT, 6) /* (AN37) TIMER_IO1.USB0_DRVVBUS */
+               >;
+       };
+
+       main_i2c3_pins_default: main-i2c3-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_IOPAD(0x064, PIN_INPUT, 13) /* (AF38) MCAN0_TX.I2C3_SCL */
+                       J784S4_IOPAD(0x060, PIN_INPUT, 13) /* (AE36) MCASP2_AXR1.I2C3_SDA */
+               >;
+       };
+
+       main_mcasp0_pins_default: main-mcasp0-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_IOPAD(0x038, PIN_OUTPUT_PULLDOWN, 1) /* (AK35) MCASP0_ACLKX */
+                       J784S4_IOPAD(0x03c, PIN_OUTPUT_PULLDOWN, 1) /* (AK38) MCASP0_AFSX */
+                       J784S4_IOPAD(0x07c, PIN_OUTPUT_PULLDOWN, 1) /* (AJ38) MCASP0_AXR3 */
+                       J784S4_IOPAD(0x080, PIN_INPUT_PULLDOWN, 1) /* (AK34) MCASP0_AXR4 */
+               >;
+       };
+
+       audio_ext_refclk1_pins_default: audio-ext-refclk1-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_IOPAD(0x078, PIN_OUTPUT, 1) /* (AH37) MCAN2_RX.AUDIO_EXT_REFCLK1 */
+               >;
+       };
 };
 
 &wkup_pmx2 {
                        J784S4_WKUP_IOPAD(0x108, PIN_INPUT, 0) /* (Y36) MCU_ADC1_AIN7 */
                >;
        };
+
+       mcu_mcan0_pins_default: mcu-mcan0-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_WKUP_IOPAD(0x050, PIN_OUTPUT, 0) /* (K33) MCU_MCAN0_TX */
+                       J784S4_WKUP_IOPAD(0x054, PIN_INPUT, 0) /* (F38) MCU_MCAN0_RX */
+               >;
+       };
+
+       mcu_mcan1_pins_default: mcu-mcan1-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_WKUP_IOPAD(0x068, PIN_OUTPUT, 0) /* (H35) WKUP_GPIO0_4.MCU_MCAN1_TX */
+                       J784S4_WKUP_IOPAD(0x06c, PIN_INPUT, 0) /* (K36) WKUP_GPIO0_5.MCU_MCAN1_RX */
+               >;
+       };
+
+       mcu_mcan0_gpio_pins_default: mcu-mcan0-gpio-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_WKUP_IOPAD(0x040, PIN_INPUT, 7) /* (J38) MCU_SPI0_D1.WKUP_GPIO0_69 */
+               >;
+       };
+
+       mcu_mcan1_gpio_pins_default: mcu-mcan1-gpio-default-pins {
+               pinctrl-single,pins = <
+                       J784S4_WKUP_IOPAD(0x060, PIN_INPUT, 7) /* (J35) WKUP_GPIO0_2 */
+               >;
+       };
 };
 
 &wkup_pmx1 {
                        };
                };
        };
+
+       tps62873a: regulator@40 {
+               compatible = "ti,tps62873";
+               reg = <0x40>;
+               bootph-pre-ram;
+               regulator-name = "VDD_CPU_AVS";
+               regulator-min-microvolt = <750000>;
+               regulator-max-microvolt = <1330000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       tps62873b: regulator@43 {
+               compatible = "ti,tps62873";
+               reg = <0x43>;
+               regulator-name = "VDD_CORE_0V8";
+               regulator-min-microvolt = <760000>;
+               regulator-max-microvolt = <840000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
 };
 
 &mcu_uart0 {
                                  "PCIE0_4L_RC_RSTZ", "PCIE0_4L_EP_RST_EN", "PCIE1_4L_PRSNT#",
                                  "PCIE0_4L_PRSNT#", "CDCI1_OE1/OE4", "CDCI1_OE2/OE3",
                                  "AUDIO_MUX_SEL", "EXP_MUX2", "EXP_MUX3", "GESI_EXP_PHY_RSTZ";
+
+               p12-hog {
+                       /* P12 - AUDIO_MUX_SEL */
+                       gpio-hog;
+                       gpios = <12 GPIO_ACTIVE_HIGH>;
+                       output-low;
+                       line-name = "AUDIO_MUX_SEL";
+               };
        };
 
        exp2: gpio@22 {
                                  "CANUART_MUX1_SEL1", "ENET1_EXP_PWRDN", "ENET1_EXP_RESETZ",
                                  "ENET1_I2CMUX_SEL", "ENET1_EXP_SPARE2", "ENET2_EXP_RESETZ",
                                  "USER_INPUT1", "USER_LED1", "USER_LED2";
+
+               p13-hog {
+                       /* P13 - CANUART_MUX_SEL0 */
+                       gpio-hog;
+                       gpios = <13 GPIO_ACTIVE_HIGH>;
+                       output-high;
+                       line-name = "CANUART_MUX_SEL0";
+               };
+
+               p15-hog {
+                       /* P15 - CANUART_MUX1_SEL1 */
+                       gpio-hog;
+                       gpios = <15 GPIO_ACTIVE_HIGH>;
+                       output-high;
+                       line-name = "CANUART_MUX1_SEL1";
+               };
        };
 };
 
        phy-handle = <&mcu_phy0>;
 };
 
+&main_cpsw1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_cpsw2g_default_pins>;
+       status = "okay";
+};
+
+&main_cpsw1_mdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_cpsw2g_mdio_default_pins>;
+       status = "okay";
+
+       main_cpsw1_phy0: ethernet-phy@0 {
+               reg = <0>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+               ti,min-output-impedance;
+       };
+};
+
+&main_cpsw1_port1 {
+       phy-mode = "rgmii-rxid";
+       phy-handle = <&main_cpsw1_phy0>;
+       status = "okay";
+};
+
 &mailbox0_cluster0 {
        status = "okay";
        interrupts = <436>;
                                 <&k3_clks 218 22>;
 };
 
+&serdes0 {
+       status = "okay";
+
+       serdes0_pcie1_link: phy@0 {
+               reg = <0>;
+               cdns,num-lanes = <2>;
+               #phy-cells = <0>;
+               cdns,phy-type = <PHY_TYPE_PCIE>;
+               resets = <&serdes_wiz0 1>, <&serdes_wiz0 2>;
+       };
+
+       serdes0_usb_link: phy@3 {
+               reg = <3>;
+               cdns,num-lanes = <1>;
+               #phy-cells = <0>;
+               cdns,phy-type = <PHY_TYPE_USB3>;
+               resets = <&serdes_wiz0 4>;
+       };
+};
+
+&serdes_wiz0 {
+       status = "okay";
+};
+
+&usb_serdes_mux {
+       idle-states = <0>; /* USB0 to SERDES lane 3 */
+};
+
+&usbss0 {
+       status = "okay";
+       pinctrl-0 = <&main_usbss0_pins_default>;
+       pinctrl-names = "default";
+       ti,vbus-divider;
+};
+
+&usb0 {
+       dr_mode = "otg";
+       maximum-speed = "super-speed";
+       phys = <&serdes0_usb_link>;
+       phy-names = "cdns3,usb3-phy";
+};
+
 &serdes_wiz4 {
        status = "okay";
 };
                };
        };
 };
+
+&mcu_mcan0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_mcan0_pins_default>;
+       phys = <&transceiver0>;
+};
+
+&mcu_mcan1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&mcu_mcan1_pins_default>;
+       phys = <&transceiver1>;
+};
+
+&main_mcan16 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcan16_pins_default>;
+       phys = <&transceiver2>;
+};
+
+&main_mcan4 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcan4_pins_default>;
+       phys = <&transceiver3>;
+};
+
+&pcie1_rc {
+       status = "okay";
+       num-lanes = <2>;
+       reset-gpios = <&exp1 2 GPIO_ACTIVE_HIGH>;
+       phys = <&serdes0_pcie1_link>;
+       phy-names = "pcie-phy";
+};
+
+&serdes1 {
+       status = "okay";
+
+       serdes1_pcie0_link: phy@0 {
+               reg = <0>;
+               cdns,num-lanes = <2>;
+               #phy-cells = <0>;
+               cdns,phy-type = <PHY_TYPE_PCIE>;
+               resets = <&serdes_wiz1 1>, <&serdes_wiz1 2>;
+       };
+};
+
+&serdes_wiz1 {
+       status = "okay";
+};
+
+&pcie0_rc {
+       status = "okay";
+       reset-gpios = <&exp1 6 GPIO_ACTIVE_HIGH>;
+       phys = <&serdes1_pcie0_link>;
+       phy-names = "pcie-phy";
+};
+
+&k3_clks {
+       /* Confiure AUDIO_EXT_REFCLK1 pin as output */
+       pinctrl-names = "default";
+       pinctrl-0 = <&audio_ext_refclk1_pins_default>;
+};
+
+&main_i2c3 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_i2c3_pins_default>;
+       clock-frequency = <400000>;
+
+       exp3: gpio@20 {
+               compatible = "ti,tca6408";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       pcm3168a_1: audio-codec@44 {
+               compatible = "ti,pcm3168a";
+               reg = <0x44>;
+               #sound-dai-cells = <1>;
+               reset-gpios = <&exp3 0 GPIO_ACTIVE_LOW>;
+               clocks = <&audio_refclk1>;
+               clock-names = "scki";
+               VDD1-supply = <&vsys_3v3>;
+               VDD2-supply = <&vsys_3v3>;
+               VCCAD1-supply = <&vsys_5v0>;
+               VCCAD2-supply = <&vsys_5v0>;
+               VCCDA1-supply = <&vsys_5v0>;
+               VCCDA2-supply = <&vsys_5v0>;
+       };
+};
+
+&mcasp0 {
+       status = "okay";
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcasp0_pins_default>;
+       op-mode = <0>;          /* MCASP_IIS_MODE */
+       tdm-slots = <2>;
+       auxclk-fs-ratio = <256>;
+       serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
+               0 0 0 1
+               2 0 0 0
+               0 0 0 0
+               0 0 0 0
+       >;
+};
index 6a4554c6c9c1305127e894cc150bbe3a465ba5d0..d4ac1c9872a5e70ff9bf9e3f6146d92fce780a34 100644 (file)
                #size-cells = <1>;
                ranges = <0x00 0x00 0x00100000 0x1c000>;
 
+               cpsw1_phy_gmii_sel: phy@4034 {
+                       compatible = "ti,am654-phy-gmii-sel";
+                       reg = <0x4034 0x4>;
+                       #phy-cells = <1>;
+               };
+
+               cpsw0_phy_gmii_sel: phy@4044 {
+                       compatible = "ti,j784s4-cpsw9g-phy-gmii-sel";
+                       reg = <0x4044 0x20>;
+                       #phy-cells = <1>;
+                       ti,qsgmii-main-ports = <7>, <7>;
+               };
+
+               pcie0_ctrl: pcie0-ctrl@4070 {
+                       compatible = "ti,j784s4-pcie-ctrl", "syscon";
+                       reg = <0x4070 0x4>;
+               };
+
+               pcie1_ctrl: pcie1-ctrl@4074 {
+                       compatible = "ti,j784s4-pcie-ctrl", "syscon";
+                       reg = <0x4074 0x4>;
+               };
+
+               pcie2_ctrl: pcie2-ctrl@4078 {
+                       compatible = "ti,j784s4-pcie-ctrl", "syscon";
+                       reg = <0x4078 0x4>;
+               };
+
+               pcie3_ctrl: pcie3-ctrl@407c {
+                       compatible = "ti,j784s4-pcie-ctrl", "syscon";
+                       reg = <0x407c 0x4>;
+               };
+
                serdes_ln_ctrl: mux-controller@4080 {
                        compatible = "reg-mux";
                        reg = <0x00004080 0x30>;
                                      <J784S4_SERDES4_LANE2_EDP_LANE2>,
                                      <J784S4_SERDES4_LANE3_EDP_LANE3>;
                };
+
+               usb_serdes_mux: mux-controller@4000 {
+                       compatible = "reg-mux";
+                       reg = <0x4000 0x4>;
+                       #mux-control-cells = <1>;
+                       mux-reg-masks = <0x0 0x8000000>; /* USB0 to SERDES0 lane 3 mux */
+               };
+
+               ehrpwm_tbclk: clock-controller@4140 {
+                       compatible = "ti,am654-ehrpwm-tbclk";
+                       reg = <0x4140 0x18>;
+                       #clock-cells = <1>;
+               };
+
+               audio_refclk1: clock@82e4 {
+                       compatible = "ti,am62-audio-refclk";
+                       reg = <0x82e4 0x4>;
+                       clocks = <&k3_clks 157 34>;
+                       assigned-clocks = <&k3_clks 157 34>;
+                       assigned-clock-parents = <&k3_clks 157 63>;
+                       #clock-cells = <0>;
+               };
+       };
+
+       main_ehrpwm0: pwm@3000000 {
+               compatible = "ti,am654-ehrpwm", "ti,am3352-ehrpwm";
+               reg = <0x00 0x3000000 0x00 0x100>;
+               clocks = <&ehrpwm_tbclk 0>, <&k3_clks 219 0>;
+               clock-names = "tbclk", "fck";
+               power-domains = <&k3_pds 219 TI_SCI_PD_EXCLUSIVE>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       main_ehrpwm1: pwm@3010000 {
+               compatible = "ti,am654-ehrpwm", "ti,am3352-ehrpwm";
+               reg = <0x00 0x3010000 0x00 0x100>;
+               clocks = <&ehrpwm_tbclk 1>, <&k3_clks 220 0>;
+               clock-names = "tbclk", "fck";
+               power-domains = <&k3_pds 220 TI_SCI_PD_EXCLUSIVE>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       main_ehrpwm2: pwm@3020000 {
+               compatible = "ti,am654-ehrpwm", "ti,am3352-ehrpwm";
+               reg = <0x00 0x3020000 0x00 0x100>;
+               clocks = <&ehrpwm_tbclk 2>, <&k3_clks 221 0>;
+               clock-names = "tbclk", "fck";
+               power-domains = <&k3_pds 221 TI_SCI_PD_EXCLUSIVE>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       main_ehrpwm3: pwm@3030000 {
+               compatible = "ti,am654-ehrpwm", "ti,am3352-ehrpwm";
+               reg = <0x00 0x3030000 0x00 0x100>;
+               clocks = <&ehrpwm_tbclk 3>, <&k3_clks 222 0>;
+               clock-names = "tbclk", "fck";
+               power-domains = <&k3_pds 222 TI_SCI_PD_EXCLUSIVE>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       main_ehrpwm4: pwm@3040000 {
+               compatible = "ti,am654-ehrpwm", "ti,am3352-ehrpwm";
+               reg = <0x00 0x3040000 0x00 0x100>;
+               clocks = <&ehrpwm_tbclk 4>, <&k3_clks 223 0>;
+               clock-names = "tbclk", "fck";
+               power-domains = <&k3_pds 223 TI_SCI_PD_EXCLUSIVE>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       main_ehrpwm5: pwm@3050000 {
+               compatible = "ti,am654-ehrpwm", "ti,am3352-ehrpwm";
+               reg = <0x00 0x3050000 0x00 0x100>;
+               clocks = <&ehrpwm_tbclk 5>, <&k3_clks 224 0>;
+               clock-names = "tbclk", "fck";
+               power-domains = <&k3_pds 224 TI_SCI_PD_EXCLUSIVE>;
+               #pwm-cells = <3>;
+               status = "disabled";
        };
 
        gic500: interrupt-controller@1800000 {
                status = "disabled";
        };
 
+       usbss0: usb@4104000 {
+               bootph-all;
+               compatible = "ti,j721e-usb";
+               reg = <0x00 0x4104000 0x00 0x100>;
+               dma-coherent;
+               power-domains = <&k3_pds 398 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 398 21>, <&k3_clks 398 2>;
+               clock-names = "ref", "lpm";
+               assigned-clocks = <&k3_clks 398 21>;    /* USB2_REFCLK */
+               assigned-clock-parents = <&k3_clks 398 22>; /* HFOSC0 */
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               status = "disabled"; /* Needs lane config */
+
+               usb0: usb@6000000 {
+                       bootph-all;
+                       compatible = "cdns,usb3";
+                       reg = <0x00 0x6000000 0x00 0x10000>,
+                             <0x00 0x6010000 0x00 0x10000>,
+                             <0x00 0x6020000 0x00 0x10000>;
+                       reg-names = "otg", "xhci", "dev";
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,  /* irq.0 */
+                                    <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, /* irq.6 */
+                                    <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; /* otgirq.0 */
+                       interrupt-names = "host",
+                                         "peripheral",
+                                         "otg";
+               };
+       };
+
        main_i2c0: i2c@2000000 {
                compatible = "ti,j721e-i2c", "ti,omap4-i2c";
                reg = <0x00 0x02000000 0x00 0x100>;
                status = "disabled";
        };
 
+       pcie0_rc: pcie@2900000 {
+               compatible = "ti,j784s4-pcie-host";
+               reg = <0x00 0x02900000 0x00 0x1000>,
+                     <0x00 0x02907000 0x00 0x400>,
+                     <0x00 0x0d000000 0x00 0x00800000>,
+                     <0x00 0x10000000 0x00 0x00001000>;
+               reg-names = "intd_cfg", "user_cfg", "reg", "cfg";
+               interrupt-names = "link_state";
+               interrupts = <GIC_SPI 318 IRQ_TYPE_EDGE_RISING>;
+               device_type = "pci";
+               ti,syscon-pcie-ctrl = <&pcie0_ctrl 0x0>;
+               max-link-speed = <3>;
+               num-lanes = <4>;
+               power-domains = <&k3_pds 332 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 332 0>;
+               clock-names = "fck";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               bus-range = <0x0 0xff>;
+               vendor-id = <0x104c>;
+               device-id = <0xb012>;
+               msi-map = <0x0 &gic_its 0x0 0x10000>;
+               dma-coherent;
+               ranges = <0x01000000 0x0 0x10001000 0x0 0x10001000 0x0 0x0010000>,
+                        <0x02000000 0x0 0x10011000 0x0 0x10011000 0x0 0x7fef000>;
+               dma-ranges = <0x02000000 0x0 0x0 0x0 0x0 0x10000 0x0>;
+               status = "disabled";
+       };
+
+       pcie1_rc: pcie@2910000 {
+               compatible = "ti,j784s4-pcie-host";
+               reg = <0x00 0x02910000 0x00 0x1000>,
+                     <0x00 0x02917000 0x00 0x400>,
+                     <0x00 0x0d800000 0x00 0x00800000>,
+                     <0x00 0x18000000 0x00 0x00001000>;
+               reg-names = "intd_cfg", "user_cfg", "reg", "cfg";
+               interrupt-names = "link_state";
+               interrupts = <GIC_SPI 330 IRQ_TYPE_EDGE_RISING>;
+               device_type = "pci";
+               ti,syscon-pcie-ctrl = <&pcie1_ctrl 0x0>;
+               max-link-speed = <3>;
+               num-lanes = <4>;
+               power-domains = <&k3_pds 333 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 333 0>;
+               clock-names = "fck";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               bus-range = <0x0 0xff>;
+               vendor-id = <0x104c>;
+               device-id = <0xb012>;
+               msi-map = <0x0 &gic_its 0x10000 0x10000>;
+               dma-coherent;
+               ranges = <0x01000000 0x0 0x18001000  0x00 0x18001000  0x0 0x0010000>,
+                        <0x02000000 0x0 0x18011000  0x00 0x18011000  0x0 0x7fef000>;
+               dma-ranges = <0x02000000 0x0 0x0 0x0 0x0 0x10000 0x0>;
+               status = "disabled";
+       };
+
+       pcie2_rc: pcie@2920000 {
+               compatible = "ti,j784s4-pcie-host";
+               reg = <0x00 0x02920000 0x00 0x1000>,
+                     <0x00 0x02927000 0x00 0x400>,
+                     <0x00 0x0e000000 0x00 0x00800000>,
+                     <0x44 0x00000000 0x00 0x00001000>;
+               reg-names = "intd_cfg", "user_cfg", "reg", "cfg";
+               interrupt-names = "link_state";
+               interrupts = <GIC_SPI 342 IRQ_TYPE_EDGE_RISING>;
+               device_type = "pci";
+               ti,syscon-pcie-ctrl = <&pcie2_ctrl 0x0>;
+               max-link-speed = <3>;
+               num-lanes = <2>;
+               power-domains = <&k3_pds 334 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 334 0>;
+               clock-names = "fck";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               bus-range = <0x0 0xff>;
+               vendor-id = <0x104c>;
+               device-id = <0xb012>;
+               msi-map = <0x0 &gic_its 0x20000 0x10000>;
+               dma-coherent;
+               ranges = <0x01000000 0x0 0x00001000 0x44 0x00001000 0x0 0x0010000>,
+                        <0x02000000 0x0 0x00011000 0x44 0x00011000 0x0 0x7fef000>;
+               dma-ranges = <0x02000000 0x0 0x0 0x0 0x0 0x10000 0x0>;
+               status = "disabled";
+       };
+
+       pcie3_rc: pcie@2930000 {
+               compatible = "ti,j784s4-pcie-host";
+               reg = <0x00 0x02930000 0x00 0x1000>,
+                     <0x00 0x02937000 0x00 0x400>,
+                     <0x00 0x0e800000 0x00 0x00800000>,
+                     <0x44 0x10000000 0x00 0x00001000>;
+               reg-names = "intd_cfg", "user_cfg", "reg", "cfg";
+               interrupt-names = "link_state";
+               interrupts = <GIC_SPI 354 IRQ_TYPE_EDGE_RISING>;
+               device_type = "pci";
+               ti,syscon-pcie-ctrl = <&pcie3_ctrl 0x0>;
+               max-link-speed = <3>;
+               num-lanes = <2>;
+               power-domains = <&k3_pds 335 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 335 0>;
+               clock-names = "fck";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               bus-range = <0x0 0xff>;
+               vendor-id = <0x104c>;
+               device-id = <0xb012>;
+               msi-map = <0x0 &gic_its 0x30000 0x10000>;
+               dma-coherent;
+               ranges = <0x01000000 0x0 0x00001000 0x44 0x10001000 0x0 0x0010000>,
+                        <0x02000000 0x0 0x00011000 0x44 0x10011000 0x0 0x7fef000>;
+               dma-ranges = <0x02000000 0x0 0x0 0x0 0x0 0x10000 0x0>;
+               status = "disabled";
+       };
+
        serdes_wiz0: wiz@5060000 {
                compatible = "ti,j784s4-wiz-10g";
                #address-cells = <1>;
                };
        };
 
+       main_cpsw0: ethernet@c000000 {
+               compatible = "ti,j784s4-cpswxg-nuss";
+               reg = <0x00 0xc000000 0x00 0x200000>;
+               reg-names = "cpsw_nuss";
+               ranges = <0x00 0x00 0x00 0xc000000 0x00 0x200000>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               dma-coherent;
+               clocks = <&k3_clks 64 0>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 64 TI_SCI_PD_EXCLUSIVE>;
+
+               dmas = <&main_udmap 0xca00>,
+                      <&main_udmap 0xca01>,
+                      <&main_udmap 0xca02>,
+                      <&main_udmap 0xca03>,
+                      <&main_udmap 0xca04>,
+                      <&main_udmap 0xca05>,
+                      <&main_udmap 0xca06>,
+                      <&main_udmap 0xca07>,
+                      <&main_udmap 0x4a00>;
+               dma-names = "tx0", "tx1", "tx2", "tx3",
+                           "tx4", "tx5", "tx6", "tx7",
+                           "rx";
+
+               status = "disabled";
+
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       main_cpsw0_port1: port@1 {
+                               reg = <1>;
+                               label = "port1";
+                               ti,mac-only;
+                               status = "disabled";
+                       };
+
+                       main_cpsw0_port2: port@2 {
+                               reg = <2>;
+                               label = "port2";
+                               ti,mac-only;
+                               status = "disabled";
+                       };
+
+                       main_cpsw0_port3: port@3 {
+                               reg = <3>;
+                               label = "port3";
+                               ti,mac-only;
+                               status = "disabled";
+                       };
+
+                       main_cpsw0_port4: port@4 {
+                               reg = <4>;
+                               label = "port4";
+                               ti,mac-only;
+                               status = "disabled";
+                       };
+
+                       main_cpsw0_port5: port@5 {
+                               reg = <5>;
+                               label = "port5";
+                               ti,mac-only;
+                               status = "disabled";
+                       };
+
+                       main_cpsw0_port6: port@6 {
+                               reg = <6>;
+                               label = "port6";
+                               ti,mac-only;
+                               status = "disabled";
+                       };
+
+                       main_cpsw0_port7: port@7 {
+                               reg = <7>;
+                               label = "port7";
+                               ti,mac-only;
+                               status = "disabled";
+                       };
+
+                       main_cpsw0_port8: port@8 {
+                               reg = <8>;
+                               label = "port8";
+                               ti,mac-only;
+                               status = "disabled";
+                       };
+               };
+
+               main_cpsw0_mdio: mdio@f00 {
+                       compatible = "ti,cpsw-mdio","ti,davinci_mdio";
+                       reg = <0x00 0xf00 0x00 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&k3_clks 64 0>;
+                       clock-names = "fck";
+                       bus_freq = <1000000>;
+                       status = "disabled";
+               };
+
+               cpts@3d000 {
+                       compatible = "ti,am65-cpts";
+                       reg = <0x00 0x3d000 0x00 0x400>;
+                       clocks = <&k3_clks 64 3>;
+                       clock-names = "cpts";
+                       interrupts-extended = <&gic500 GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "cpts";
+                       ti,cpts-ext-ts-inputs = <4>;
+                       ti,cpts-periodic-outputs = <2>;
+               };
+       };
+
+       main_cpsw1: ethernet@c200000 {
+               compatible = "ti,j721e-cpsw-nuss";
+               reg = <0x00 0xc200000 0x00 0x200000>;
+               reg-names = "cpsw_nuss";
+               ranges = <0x00 0x00 0x00 0xc200000 0x00 0x200000>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               dma-coherent;
+               clocks = <&k3_clks 62 0>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 62 TI_SCI_PD_EXCLUSIVE>;
+
+               dmas = <&main_udmap 0xc640>,
+                       <&main_udmap 0xc641>,
+                       <&main_udmap 0xc642>,
+                       <&main_udmap 0xc643>,
+                       <&main_udmap 0xc644>,
+                       <&main_udmap 0xc645>,
+                       <&main_udmap 0xc646>,
+                       <&main_udmap 0xc647>,
+                       <&main_udmap 0x4640>;
+               dma-names = "tx0", "tx1", "tx2", "tx3",
+                               "tx4", "tx5", "tx6", "tx7",
+                               "rx";
+
+               status = "disabled";
+
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       main_cpsw1_port1: port@1 {
+                               reg = <1>;
+                               label = "port1";
+                               phys = <&cpsw1_phy_gmii_sel 1>;
+                               ti,mac-only;
+                               status = "disabled";
+                       };
+               };
+
+               main_cpsw1_mdio: mdio@f00 {
+                       compatible = "ti,cpsw-mdio", "ti,davinci_mdio";
+                       reg = <0x00 0xf00 0x00 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&k3_clks 62 0>;
+                       clock-names = "fck";
+                       bus_freq = <1000000>;
+                       status = "disabled";
+               };
+
+               cpts@3d000 {
+                       compatible = "ti,am65-cpts";
+                       reg = <0x00 0x3d000 0x00 0x400>;
+                       clocks = <&k3_clks 62 3>;
+                       clock-names = "cpts";
+                       interrupts-extended = <&gic500 GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "cpts";
+                       ti,cpts-ext-ts-inputs = <4>;
+                       ti,cpts-periodic-outputs = <2>;
+               };
+       };
+
        main_mcan0: can@2701000 {
                compatible = "bosch,m_can";
                reg = <0x00 0x02701000 0x00 0x200>,
                         */
                };
        };
+
+       mcasp0: mcasp@2b00000 {
+               compatible = "ti,am33xx-mcasp-audio";
+               reg = <0x00 0x02b00000 0x00 0x2000>,
+                     <0x00 0x02b08000 0x00 0x1000>;
+               reg-names = "mpu","dat";
+               interrupts = <GIC_SPI 544 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 545 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tx", "rx";
+               dmas = <&main_udmap 0xc400>, <&main_udmap 0x4400>;
+               dma-names = "tx", "rx";
+               clocks = <&k3_clks 265 0>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 265 0>;
+               assigned-clock-parents = <&k3_clks 265 1>;
+               power-domains = <&k3_pds 265 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+       };
+
+       mcasp1: mcasp@2b10000 {
+               compatible = "ti,am33xx-mcasp-audio";
+               reg = <0x00 0x02b10000 0x00 0x2000>,
+                     <0x00 0x02b18000 0x00 0x1000>;
+               reg-names = "mpu","dat";
+               interrupts = <GIC_SPI 546 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 547 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tx", "rx";
+               dmas = <&main_udmap 0xc401>, <&main_udmap 0x4401>;
+               dma-names = "tx", "rx";
+               clocks = <&k3_clks 266 0>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 266 0>;
+               assigned-clock-parents = <&k3_clks 266 1>;
+               power-domains = <&k3_pds 266 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+       };
+
+       mcasp2: mcasp@2b20000 {
+               compatible = "ti,am33xx-mcasp-audio";
+               reg = <0x00 0x02b20000 0x00 0x2000>,
+                     <0x00 0x02b28000 0x00 0x1000>;
+               reg-names = "mpu","dat";
+               interrupts = <GIC_SPI 548 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 549 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tx", "rx";
+               dmas = <&main_udmap 0xc402>, <&main_udmap 0x4402>;
+               dma-names = "tx", "rx";
+               clocks = <&k3_clks 267 0>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 267 0>;
+               assigned-clock-parents = <&k3_clks 267 1>;
+               power-domains = <&k3_pds 267 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+       };
+
+       mcasp3: mcasp@2b30000 {
+               compatible = "ti,am33xx-mcasp-audio";
+               reg = <0x00 0x02b30000 0x00 0x2000>,
+                     <0x00 0x02b38000 0x00 0x1000>;
+               reg-names = "mpu","dat";
+               interrupts = <GIC_SPI 550 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 551 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tx", "rx";
+               dmas = <&main_udmap 0xc403>, <&main_udmap 0x4403>;
+               dma-names = "tx", "rx";
+               clocks = <&k3_clks 268 0>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 268 0>;
+               assigned-clock-parents = <&k3_clks 268 1>;
+               power-domains = <&k3_pds 268 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+       };
+
+       mcasp4: mcasp@2b40000 {
+               compatible = "ti,am33xx-mcasp-audio";
+               reg = <0x00 0x02b40000 0x00 0x2000>,
+                     <0x00 0x02b48000 0x00 0x1000>;
+               reg-names = "mpu","dat";
+               interrupts = <GIC_SPI 552 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 553 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tx", "rx";
+               dmas = <&main_udmap 0xc404>, <&main_udmap 0x4404>;
+               dma-names = "tx", "rx";
+               clocks = <&k3_clks 269 0>;
+               clock-names = "fck";
+               assigned-clocks = <&k3_clks 269 0>;
+               assigned-clock-parents = <&k3_clks 269 1>;
+               power-domains = <&k3_pds 269 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
+       };
 };
index 2e18d91ae92f8e63ef651bb3e0d4757162457a88..f3a6ed1c979d038def19153371b74819ff84132b 100644 (file)
                status = "reserved";
        };
 
-       mcu_conf: syscon@40f00000 {
-               compatible = "ti,j721e-system-controller", "syscon", "simple-mfd";
-               reg = <0x00 0x40f00000 0x00 0x20000>;
+       mcu_conf: bus@40f00000 {
+               compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
-               ranges = <0x00 0x00 0x40f00000 0x20000>;
+               ranges = <0x0 0x0 0x40f00000 0x20000>;
+
+               cpsw_mac_syscon: ethernet-mac-syscon@200 {
+                       compatible = "ti,am62p-cpsw-mac-efuse", "syscon";
+                       reg = <0x200 0x8>;
+               };
 
                phy_gmii_sel: phy@4040 {
                        compatible = "ti,am654-phy-gmii-sel";
                                reg = <1>;
                                ti,mac-only;
                                label = "port1";
-                               ti,syscon-efuse = <&mcu_conf 0x200>;
+                               ti,syscon-efuse = <&cpsw_mac_syscon 0x0>;
                                phys = <&phy_gmii_sel 1>;
                        };
                };
index da7368ed6b521dfd64241234837345e3555f2b67..73cc3c1fec08d3b8395177403767d0aafdb14dc2 100644 (file)
                         <0x00 0x01000000 0x00 0x01000000 0x00 0x0d000000>, /* Most peripherals */
                         <0x00 0x04210000 0x00 0x04210000 0x00 0x00010000>, /* VPU0 */
                         <0x00 0x04220000 0x00 0x04220000 0x00 0x00010000>, /* VPU1 */
-                        <0x00 0x0d000000 0x00 0x0d000000 0x00 0x01000000>, /* PCIe Core*/
+                        <0x00 0x0d000000 0x00 0x0d000000 0x00 0x00800000>, /* PCIe0 Core*/
+                        <0x00 0x0d800000 0x00 0x0d800000 0x00 0x00800000>, /* PCIe1 Core*/
+                        <0x00 0x0e000000 0x00 0x0e000000 0x00 0x00800000>, /* PCIe2 Core*/
+                        <0x00 0x0e800000 0x00 0x0e800000 0x00 0x00800000>, /* PCIe3 Core*/
                         <0x00 0x10000000 0x00 0x10000000 0x00 0x08000000>, /* PCIe0 DAT0 */
                         <0x00 0x18000000 0x00 0x18000000 0x00 0x08000000>, /* PCIe1 DAT0 */
                         <0x00 0x64800000 0x00 0x64800000 0x00 0x0070c000>, /* C71_1 */
                         <0x00 0x6f000000 0x00 0x6f000000 0x00 0x00310000>, /* A72 PERIPHBASE */
                         <0x00 0x70000000 0x00 0x70000000 0x00 0x00400000>, /* MSMC RAM */
                         <0x00 0x30000000 0x00 0x30000000 0x00 0x0c400000>, /* MAIN NAVSS */
+                        <0x40 0x00000000 0x40 0x00000000 0x01 0x00000000>, /* PCIe0 DAT1 */
                         <0x41 0x00000000 0x41 0x00000000 0x01 0x00000000>, /* PCIe1 DAT1 */
+                        <0x42 0x00000000 0x42 0x00000000 0x01 0x00000000>, /* PCIe2 DAT1 */
+                        <0x43 0x00000000 0x43 0x00000000 0x01 0x00000000>, /* PCIe3 DAT1 */
+                        <0x44 0x00000000 0x44 0x00000000 0x00 0x08000000>, /* PCIe2 DAT0 */
+                        <0x44 0x10000000 0x44 0x10000000 0x00 0x08000000>, /* PCIe3 DAT0 */
                         <0x4e 0x20000000 0x4e 0x20000000 0x00 0x00080000>, /* GPU */
 
                         /* MCUSS_WKUP Range */
index 4cd2df467d0b41dad2925836d13e0e970f7abd42..22b8d73cfd3264735ddf91874e60a0c5fc7ade5b 100644 (file)
@@ -38,6 +38,9 @@
 #define PIN_DEBOUNCE_CONF5     (5 << DEBOUNCE_SHIFT)
 #define PIN_DEBOUNCE_CONF6     (6 << DEBOUNCE_SHIFT)
 
+/* Default mux configuration for gpio-ranges to use with pinctrl */
+#define PIN_GPIO_RANGE_IOPAD   (PIN_INPUT | 7)
+
 #define AM62AX_IOPAD(pa, val, muxmode)         (((pa) & 0x1fff)) ((val) | (muxmode))
 #define AM62AX_MCU_IOPAD(pa, val, muxmode)     (((pa) & 0x1fff)) ((val) | (muxmode))
 
index a011ad893b44c6653f35d911fc08ad98ae99b8e6..ef36060681405ddaa109b483274af741d147cba7 100644 (file)
 #define J784S4_SERDES4_LANE3_USB               0x2
 #define J784S4_SERDES4_LANE3_IP4_UNUSED                0x3
 
+/* J722S */
+
+#define J722S_SERDES0_LANE0_USB                        0x0
+#define J722S_SERDES0_LANE0_QSGMII_LANE2       0x1
+
+#define J722S_SERDES1_LANE0_PCIE0_LANE0                0x0
+#define J722S_SERDES1_LANE0_QSGMII_LANE1       0x1
+
 #endif /* DTS_ARM64_TI_K3_SERDES_H */
index dd4569e7bd95801197b602aeda74b278f784c855..60d1b1acf9a0307d118bb70562cfa10c1800a5ea 100644 (file)
        clocks = <&zynqmp_clk ACPU>;
 };
 
+&cpu0_debug {
+       clocks = <&zynqmp_clk DBF_FPD>;
+};
+
+&cpu1_debug {
+       clocks = <&zynqmp_clk DBF_FPD>;
+};
+
+&cpu2_debug {
+       clocks = <&zynqmp_clk DBF_FPD>;
+};
+
+&cpu3_debug {
+       clocks = <&zynqmp_clk DBF_FPD>;
+};
+
 &fpd_dma_chan1 {
        clocks = <&zynqmp_clk GDMA_REF>, <&zynqmp_clk LPD_LSBUS>;
 };
index d7535a77b45e34785670b71d008db9e63a753cc5..95d16904d765f4b8c00b5edfa60ed23fb3541846 100644 (file)
 /plugin/;
 
 &{/} {
+       compatible = "xlnx,zynqmp-sk-kv260-revA",
+                    "xlnx,zynqmp-sk-kv260-revY",
+                    "xlnx,zynqmp-sk-kv260-revZ",
+                    "xlnx,zynqmp-sk-kv260", "xlnx,zynqmp";
+       model = "ZynqMP KV260 revA";
+
+       ina260-u14 {
+               compatible = "iio-hwmon";
+               io-channels = <&u14 0>, <&u14 1>, <&u14 2>;
+       };
+
        si5332_0: si5332-0 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
        scl-gpios = <&gpio 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        sda-gpios = <&gpio 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 
-       /* u14 - 0x40 - ina260 */
+       u14: ina260@40 { /* u14 */
+               compatible = "ti,ina260";
+               #io-channel-cells = <1>;
+               label = "ina260-u14";
+               reg = <0x40>;
+       };
        /* u27 - 0xe0 - STDP4320 DP/HDMI splitter */
 };
 
                        slew-rate = <SLEW_RATE_SLOW>;
                        power-source = <IO_STANDARD_LVCMOS18>;
                        bias-disable;
+                       output-enable;
                };
 
                conf-cd {
index a7b8fffad49936b505f6ae2d6264bbb6213baeff..a74d0ac7e07a10701c06280e89314ac160c489f7 100644 (file)
 /plugin/;
 
 &{/} {
+       compatible = "xlnx,zynqmp-sk-kv260-rev2",
+                    "xlnx,zynqmp-sk-kv260-rev1",
+                    "xlnx,zynqmp-sk-kv260-revB",
+                    "xlnx,zynqmp-sk-kv260", "xlnx,zynqmp";
+       model = "ZynqMP KV260 revB";
+
+       ina260-u14 {
+               compatible = "iio-hwmon";
+               io-channels = <&u14 0>, <&u14 1>, <&u14 2>;
+       };
+
        si5332_0: si5332-0 { /* u17 */
                compatible = "fixed-clock";
                #clock-cells = <0>;
                #clock-cells = <0>;
                clock-frequency = <27000000>;
        };
+
+       dpcon {
+               compatible = "dp-connector";
+               label = "P11";
+               type = "full-size";
+
+               port {
+                       dpcon_in: endpoint {
+                               remote-endpoint = <&dpsub_dp_out>;
+                       };
+               };
+       };
 };
 
 &i2c1 { /* I2C_SCK C23/C24 - MIO from SOM */
        scl-gpios = <&gpio 24 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        sda-gpios = <&gpio 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 
-       /* u14 - 0x40 - ina260 */
-       /* u43 - 0x2d - usb5744 */
+       u14: ina260@40 { /* u14 */
+               compatible = "ti,ina260";
+               #io-channel-cells = <1>;
+               label = "ina260-u14";
+               reg = <0x40>;
+       };
+       /* u43 - 0x2d - USB hub */
        /* u27 - 0xe0 - STDP4320 DP/HDMI splitter */
 };
 
        phy-names = "dp-phy0", "dp-phy1";
        phys = <&psgtr 1 PHY_TYPE_DP 0 0>, <&psgtr 0 PHY_TYPE_DP 1 0>;
        assigned-clock-rates = <27000000>, <25000000>, <300000000>;
+
+       ports {
+               port@5 {
+                       dpsub_dp_out: endpoint {
+                               remote-endpoint = <&dpcon_in>;
+                       };
+               };
+       };
 };
 
 &zynqmp_dpdma {
                        slew-rate = <SLEW_RATE_SLOW>;
                        power-source = <IO_STANDARD_LVCMOS18>;
                        bias-disable;
+                       output-enable;
                };
 
                conf-cd {
index 51622896b1b1c373da803c77d2357529e6d0d4e2..86e6c49905606c6970e0a8dc7c35cb0506ad6f21 100644 (file)
@@ -1,8 +1,9 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * dts file for Xilinx ZynqMP SM-K26 rev1/B/A
+ * dts file for Xilinx ZynqMP SM-K26 rev2/1/B/A
  *
  * (C) Copyright 2020 - 2021, Xilinx, Inc.
+ * (C) Copyright 2023 - 2024, Advanced Micro Devices, Inc.
  *
  * Michal Simek <michal.simek@amd.com>
  */
@@ -17,8 +18,9 @@
 #include <dt-bindings/pinctrl/pinctrl-zynqmp.h>
 
 / {
-       model = "ZynqMP SM-K26 Rev1/B/A";
-       compatible = "xlnx,zynqmp-sm-k26-rev1", "xlnx,zynqmp-sm-k26-revB",
+       model = "ZynqMP SM-K26 Rev2/1/B/A";
+       compatible = "xlnx,zynqmp-sm-k26-rev2",
+                    "xlnx,zynqmp-sm-k26-rev1", "xlnx,zynqmp-sm-k26-revB",
                     "xlnx,zynqmp-sm-k26-revA", "xlnx,zynqmp-sm-k26",
                     "xlnx,zynqmp";
 
                        <&xilinx_ams 24>, <&xilinx_ams 25>, <&xilinx_ams 26>,
                        <&xilinx_ams 27>, <&xilinx_ams 28>, <&xilinx_ams 29>;
        };
+
+       pwm-fan {
+               compatible = "pwm-fan";
+               status = "okay";
+               pwms = <&ttc0 2 40000 0>;
+       };
 };
 
 &modepin_gpio {
        label = "modepin";
 };
 
+&ttc0 {
+       status = "okay";
+       #pwm-cells = <3>;
+};
+
 &uart1 { /* MIO36/MIO37 */
        status = "okay";
 };
index 85b0d1677240657e73437d6465b1fe1fcd8def78..b804abe89d1d3f4a88f8adf84c0379f0c683bb5d 100644 (file)
@@ -1,8 +1,9 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * dts file for Xilinx ZynqMP SMK-K26 rev1/B/A
+ * dts file for Xilinx ZynqMP SMK-K26 rev2/1/B/A
  *
  * (C) Copyright 2020 - 2021, Xilinx, Inc.
+ * (C) Copyright 2023 - 2024, Advanced Micro Devices, Inc.
  *
  * Michal Simek <michal.simek@amd.com>
  */
@@ -10,8 +11,9 @@
 #include "zynqmp-sm-k26-revA.dts"
 
 / {
-       model = "ZynqMP SMK-K26 Rev1/B/A";
-       compatible = "xlnx,zynqmp-smk-k26-rev1", "xlnx,zynqmp-smk-k26-revB",
+       model = "ZynqMP SMK-K26 Rev2/1/B/A";
+       compatible = "xlnx,zynqmp-smk-k26-rev2",
+                    "xlnx,zynqmp-smk-k26-rev1", "xlnx,zynqmp-smk-k26-revB",
                     "xlnx,zynqmp-smk-k26-revA", "xlnx,zynqmp-smk-k26",
                     "xlnx,zynqmp";
 };
index c8f71a1aec895679ec0e90226402e690f410b65b..495ca94b45db78abf8183e7794d74ba41cf80fe1 100644 (file)
        compatible = "xlnx,zynqmp-zcu102-rev1.0", "xlnx,zynqmp-zcu102", "xlnx,zynqmp";
 };
 
+&rproc_split {
+       status = "okay";
+};
+
+&rproc_lockstep {
+       status = "disabled";
+};
+
 &eeprom {
        #address-cells = <1>;
        #size-cells = <1>;
index d99830c9b85f9df1097ba1de819c0565a67454bd..b1b31dcf6291b057087c097dfd147360c5930fdd 100644 (file)
                                mbox-names = "tx", "rx";
                        };
 
-                       nvmem-firmware {
+                       soc-nvmem {
                                compatible = "xlnx,zynqmp-nvmem-fw";
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-
-                               soc_revision: soc-revision@0 {
-                                       reg = <0x0 0x4>;
+                               nvmem-layout {
+                                       compatible = "fixed-layout";
+                                       #address-cells = <1>;
+                                       #size-cells = <1>;
+
+                                       soc_revision: soc-revision@0 {
+                                               reg = <0x0 0x4>;
+                                       };
+                                       /* efuse access */
+                                       efuse_dna: efuse-dna@c {
+                                               reg = <0xc 0xc>;
+                                       };
+                                       efuse_usr0: efuse-usr0@20 {
+                                               reg = <0x20 0x4>;
+                                       };
+                                       efuse_usr1: efuse-usr1@24 {
+                                               reg = <0x24 0x4>;
+                                       };
+                                       efuse_usr2: efuse-usr2@28 {
+                                               reg = <0x28 0x4>;
+                                       };
+                                       efuse_usr3: efuse-usr3@2c {
+                                               reg = <0x2c 0x4>;
+                                       };
+                                       efuse_usr4: efuse-usr4@30 {
+                                               reg = <0x30 0x4>;
+                                       };
+                                       efuse_usr5: efuse-usr5@34 {
+                                               reg = <0x34 0x4>;
+                                       };
+                                       efuse_usr6: efuse-usr6@38 {
+                                               reg = <0x38 0x4>;
+                                       };
+                                       efuse_usr7: efuse-usr7@3c {
+                                               reg = <0x3c 0x4>;
+                                       };
+                                       efuse_miscusr: efuse-miscusr@40 {
+                                               reg = <0x40 0x4>;
+                                       };
+                                       efuse_chash: efuse-chash@50 {
+                                               reg = <0x50 0x4>;
+                                       };
+                                       efuse_pufmisc: efuse-pufmisc@54 {
+                                               reg = <0x54 0x4>;
+                                       };
+                                       efuse_sec: efuse-sec@58 {
+                                               reg = <0x58 0x4>;
+                                       };
+                                       efuse_spkid: efuse-spkid@5c {
+                                               reg = <0x5c 0x4>;
+                                       };
+                                       efuse_aeskey: efuse-aeskey@60 {
+                                               reg = <0x60 0x20>;
+                                       };
+                                       efuse_ppk0hash: efuse-ppk0hash@a0 {
+                                               reg = <0xa0 0x30>;
+                                       };
+                                       efuse_ppk1hash: efuse-ppk1hash@d0 {
+                                               reg = <0xd0 0x30>;
+                                       };
+                                       efuse_pufuser: efuse-pufuser@100 {
+                                               reg = <0x100 0x7F>;
+                                       };
                                };
                        };
 
                             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
        };
 
-       fpga_full: fpga-full {
+       fpga_full: fpga-region {
                compatible = "fpga-region";
                fpga-mgr = <&zynqmp_pcap>;
                #address-cells = <2>;
                ranges;
        };
 
-       remoteproc {
+       rproc_lockstep: remoteproc@ffe00000 {
                compatible = "xlnx,zynqmp-r5fss";
                xlnx,cluster-mode = <1>;
+               xlnx,tcm-mode = <1>;
+
+               #address-cells = <2>;
+               #size-cells = <2>;
 
-               r5f-0 {
+               ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x10000>,
+                        <0x0 0x20000 0x0 0xffe20000 0x0 0x10000>,
+                        <0x0 0x10000 0x0 0xffe10000 0x0 0x10000>,
+                        <0x0 0x30000 0x0 0xffe30000 0x0 0x10000>;
+
+               r5f@0 {
                        compatible = "xlnx,zynqmp-r5f";
-                       power-domains = <&zynqmp_firmware PD_RPU_0>;
+                       reg = <0x0 0x0 0x0 0x10000>,
+                             <0x0 0x20000 0x0 0x10000>,
+                             <0x0 0x10000 0x0 0x10000>,
+                             <0x0 0x30000 0x0 0x10000>;
+                       reg-names = "atcm0", "btcm0", "atcm1", "btcm1";
+                       power-domains = <&zynqmp_firmware PD_RPU_0>,
+                                       <&zynqmp_firmware PD_R5_0_ATCM>,
+                                       <&zynqmp_firmware PD_R5_0_BTCM>,
+                                       <&zynqmp_firmware PD_R5_1_ATCM>,
+                                       <&zynqmp_firmware PD_R5_1_BTCM>;
                        memory-region = <&rproc_0_fw_image>;
                };
 
-               r5f-1 {
+               r5f@1 {
                        compatible = "xlnx,zynqmp-r5f";
-                       power-domains = <&zynqmp_firmware PD_RPU_1>;
+                       reg = <0x1 0x0 0x0 0x10000>, <0x1 0x20000 0x0 0x10000>;
+                       reg-names = "atcm0", "btcm0";
+                       power-domains = <&zynqmp_firmware PD_RPU_1>,
+                                       <&zynqmp_firmware PD_R5_1_ATCM>,
+                                       <&zynqmp_firmware PD_R5_1_BTCM>;
+                       memory-region = <&rproc_1_fw_image>;
+               };
+       };
+
+       rproc_split: remoteproc-split@ffe00000 {
+               status = "disabled";
+               compatible = "xlnx,zynqmp-r5fss";
+               xlnx,cluster-mode = <0>;
+               xlnx,tcm-mode = <0>;
+
+               #address-cells = <2>;
+               #size-cells = <2>;
+
+               ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x10000>,
+                        <0x0 0x20000 0x0 0xffe20000 0x0 0x10000>,
+                        <0x1 0x0 0x0 0xffe90000 0x0 0x10000>,
+                        <0x1 0x20000 0x0 0xffeb0000 0x0 0x10000>;
+
+               r5f@0 {
+                       compatible = "xlnx,zynqmp-r5f";
+                       reg = <0x0 0x0 0x0 0x10000>, <0x0 0x20000 0x0 0x10000>;
+                       reg-names = "atcm0", "btcm0";
+                       power-domains = <&zynqmp_firmware PD_RPU_0>,
+                                       <&zynqmp_firmware PD_R5_0_ATCM>,
+                                       <&zynqmp_firmware PD_R5_0_BTCM>;
+                       memory-region = <&rproc_0_fw_image>;
+               };
+
+               r5f@1 {
+                       compatible = "xlnx,zynqmp-r5f";
+                       reg = <0x1 0x0 0x0 0x10000>, <0x1 0x20000 0x0 0x10000>;
+                       reg-names = "atcm0", "btcm0";
+                       power-domains = <&zynqmp_firmware PD_RPU_1>,
+                                       <&zynqmp_firmware PD_R5_1_ATCM>,
+                                       <&zynqmp_firmware PD_R5_1_BTCM>;
                        memory-region = <&rproc_1_fw_image>;
                };
        };
                        };
                };
 
+               cpu0_debug: debug@fec10000 {
+                       compatible = "arm,coresight-cpu-debug", "arm,primecell";
+                       reg = <0x0 0xfec10000 0x0 0x1000>;
+                       clock-names = "apb_pclk";
+                       cpu = <&cpu0>;
+               };
+
+               cpu1_debug: debug@fed10000 {
+                       compatible = "arm,coresight-cpu-debug", "arm,primecell";
+                       reg = <0x0 0xfed10000 0x0 0x1000>;
+                       clock-names = "apb_pclk";
+                       cpu = <&cpu1>;
+               };
+
+               cpu2_debug: debug@fee10000 {
+                       compatible = "arm,coresight-cpu-debug", "arm,primecell";
+                       reg = <0x0 0xfee10000 0x0 0x1000>;
+                       clock-names = "apb_pclk";
+                       cpu = <&cpu2>;
+               };
+
+               cpu3_debug: debug@fef10000 {
+                       compatible = "arm,coresight-cpu-debug", "arm,primecell";
+                       reg = <0x0 0xfef10000 0x0 0x1000>;
+                       clock-names = "apb_pclk";
+                       cpu = <&cpu3>;
+               };
+
                /* GDMA */
                fpd_dma_chan1: dma-controller@fd500000 {
                        status = "disabled";
                        power-domains = <&zynqmp_firmware PD_I2C_1>;
                };
 
+               ocm: memory-controller@ff960000 {
+                       compatible = "xlnx,zynqmp-ocmc-1.0";
+                       reg = <0x0 0xff960000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                pcie: pcie@fd0e0000 {
                        compatible = "xlnx,nwl-pcie-2.11";
                        status = "disabled";
                                status = "disabled";
                                reg = <0x0 0xfe200000 0x0 0x40000>;
                                interrupt-parent = <&gic>;
-                               interrupt-names = "host", "peripheral", "otg";
+                               interrupt-names = "host", "peripheral", "otg", "wakeup";
                                interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+                                            <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
                                clock-names = "ref";
                                /* iommus = <&smmu 0x860>; */
                                snps,quirk-frame-length-adjustment = <0x20>;
                                status = "disabled";
                                reg = <0x0 0xfe300000 0x0 0x40000>;
                                interrupt-parent = <&gic>;
-                               interrupt-names = "host", "peripheral", "otg";
+                               interrupt-names = "host", "peripheral", "otg", "wakeup";
                                interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                                            <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
                                clock-names = "ref";
                                /* iommus = <&smmu 0x861>; */
                                snps,quirk-frame-length-adjustment = <0x20>;
                                compatible = "xlnx,zynqmp-ams-pl";
                                status = "disabled";
                                reg = <0x400 0x400>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
                        };
                };
 
index ee3e2153dd13fb78894f25d9efd476075c9d86d8..cc7747c5f21f35c660ffdfb27c1db3730a320fdf 100644 (file)
                };
        };
 
-       memory@200000 {
-               compatible = "memory";
-               device_type = "memory";
-               reg = <0x00000000 0x00200000 0x00000000 0x0ee00000>, /* 238 MB at 2 MB */
-                       <0x00000000 0x20000000 0x00000000 0x1f000000>, /* 496 MB at 512 MB */
-                       <0x00000001 0x10000000 0x00000001 0xb0000000>; /* 6912 MB at 4352MB */
-       };
-
        cpu_clk: cpu_clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                        0 0x40000000 0 0x40000000 0 0x40000000
                        0xfe 0x00000000 0xfe 0x00000000 0 0x40000000>;
 
+               isa@18000000 {
+                       compatible = "isa";
+                       #size-cells = <1>;
+                       #address-cells = <2>;
+                       ranges = <1 0x0 0x0 0x18000000 0x4000>;
+               };
+
                pm: reset-controller@1fe07000 {
                        compatible = "loongson,ls2k-pm";
                        reg = <0 0x1fe07000 0 0x422>;
                rtc0: rtc@1fe07800 {
                        compatible = "loongson,ls2k1000-rtc";
                        reg = <0 0x1fe07800 0 0x78>;
-                       interrupt-parent = <&liointc0>;
-                       interrupts = <60 IRQ_TYPE_LEVEL_LOW>;
+                       interrupt-parent = <&liointc1>;
+                       interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
                };
 
                uart0: serial@1fe00000 {
                        reg = <0 0x1fe00000 0 0x8>;
                        clock-frequency = <125000000>;
                        interrupt-parent = <&liointc0>;
-                       interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+                       interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
                        no-loopback-test;
                };
 
                        device_type = "pci";
                        #address-cells = <3>;
                        #size-cells = <2>;
-                       #interrupt-cells = <2>;
 
                        reg = <0 0x1a000000 0 0x02000000>,
                                <0xfe 0x00000000 0 0x20000000>;
                                                   "pciclass0c03";
 
                                reg = <0x1800 0x0 0x0 0x0 0x0>;
-                               interrupts = <12 IRQ_TYPE_LEVEL_LOW>,
-                                            <13 IRQ_TYPE_LEVEL_LOW>;
+                               interrupts = <12 IRQ_TYPE_LEVEL_HIGH>,
+                                            <13 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-names = "macirq", "eth_lpi";
                                interrupt-parent = <&liointc0>;
-                               phy-mode = "rgmii";
+                               phy-mode = "rgmii-id";
+                               phy-handle = <&phy1>;
                                mdio {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                                   "loongson, pci-gmac";
 
                                reg = <0x1900 0x0 0x0 0x0 0x0>;
-                               interrupts = <14 IRQ_TYPE_LEVEL_LOW>,
-                                            <15 IRQ_TYPE_LEVEL_LOW>;
+                               interrupts = <14 IRQ_TYPE_LEVEL_HIGH>,
+                                            <15 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-names = "macirq", "eth_lpi";
                                interrupt-parent = <&liointc0>;
-                               phy-mode = "rgmii";
+                               phy-mode = "rgmii-id";
+                               phy-handle = <&phy1>;
                                mdio {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                                   "pciclass0c03";
 
                                reg = <0x2100 0x0 0x0 0x0 0x0>;
-                               interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
+                               interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-parent = <&liointc1>;
                        };
 
                                                   "pciclass0c03";
 
                                reg = <0x2200 0x0 0x0 0x0 0x0>;
-                               interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
+                               interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-parent = <&liointc1>;
                        };
 
                                                   "pciclass0106";
 
                                reg = <0x4000 0x0 0x0 0x0 0x0>;
-                               interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
+                               interrupts = <19 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-parent = <&liointc0>;
                        };
 
-                       pci_bridge@9,0 {
+                       pcie@9,0 {
                                compatible = "pci0014,7a19.0",
                                                   "pci0014,7a19",
                                                   "pciclass060400",
                                                   "pciclass0604";
 
                                reg = <0x4800 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
                                #interrupt-cells = <1>;
-                               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+                               interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-parent = <&liointc1>;
                                interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &liointc1 0 IRQ_TYPE_LEVEL_LOW>;
+                               interrupt-map = <0 0 0 0 &liointc1 0 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
                                external-facing;
                        };
 
-                       pci_bridge@a,0 {
+                       pcie@a,0 {
                                compatible = "pci0014,7a09.0",
                                                   "pci0014,7a09",
                                                   "pciclass060400",
                                                   "pciclass0604";
 
                                reg = <0x5000 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
                                #interrupt-cells = <1>;
-                               interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
+                               interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-parent = <&liointc1>;
                                interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &liointc1 1 IRQ_TYPE_LEVEL_LOW>;
+                               interrupt-map = <0 0 0 0 &liointc1 1 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
                                external-facing;
                        };
 
-                       pci_bridge@b,0 {
+                       pcie@b,0 {
                                compatible = "pci0014,7a09.0",
                                                   "pci0014,7a09",
                                                   "pciclass060400",
                                                   "pciclass0604";
 
                                reg = <0x5800 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
                                #interrupt-cells = <1>;
-                               interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
+                               interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-parent = <&liointc1>;
                                interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &liointc1 2 IRQ_TYPE_LEVEL_LOW>;
+                               interrupt-map = <0 0 0 0 &liointc1 2 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
                                external-facing;
                        };
 
-                       pci_bridge@c,0 {
+                       pcie@c,0 {
                                compatible = "pci0014,7a09.0",
                                                   "pci0014,7a09",
                                                   "pciclass060400",
                                                   "pciclass0604";
 
                                reg = <0x6000 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
                                #interrupt-cells = <1>;
-                               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+                               interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-parent = <&liointc1>;
                                interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &liointc1 3 IRQ_TYPE_LEVEL_LOW>;
+                               interrupt-map = <0 0 0 0 &liointc1 3 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
                                external-facing;
                        };
 
-                       pci_bridge@d,0 {
+                       pcie@d,0 {
                                compatible = "pci0014,7a19.0",
                                                   "pci0014,7a19",
                                                   "pciclass060400",
                                                   "pciclass0604";
 
                                reg = <0x6800 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
                                #interrupt-cells = <1>;
-                               interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
+                               interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-parent = <&liointc1>;
                                interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &liointc1 4 IRQ_TYPE_LEVEL_LOW>;
+                               interrupt-map = <0 0 0 0 &liointc1 4 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
                                external-facing;
                        };
 
-                       pci_bridge@e,0 {
+                       pcie@e,0 {
                                compatible = "pci0014,7a09.0",
                                                   "pci0014,7a09",
                                                   "pciclass060400",
                                                   "pciclass0604";
 
                                reg = <0x7000 0x0 0x0 0x0 0x0>;
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               device_type = "pci";
                                #interrupt-cells = <1>;
-                               interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
+                               interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
                                interrupt-parent = <&liointc1>;
                                interrupt-map-mask = <0 0 0 0>;
-                               interrupt-map = <0 0 0 0 &liointc1 5 IRQ_TYPE_LEVEL_LOW>;
+                               interrupt-map = <0 0 0 0 &liointc1 5 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
                                external-facing;
                        };
 
index c945f8565d5434b235f2124ec7604ebb77bff488..fb180cb2b8e2ca6bbfb76d14f2d2c957aed686ae 100644 (file)
@@ -33,6 +33,7 @@
                compatible = "loongson,pch-msi-1.0";
                reg = <0 0x2ff00000 0 0x8>;
                interrupt-controller;
+               #interrupt-cells = <1>;
                msi-controller;
                loongson,msi-base-vec = <64>;
                loongson,msi-num-vecs = <192>;
similarity index 88%
rename from src/mips/mobileye/eyeq5-fixed-clocks.dtsi
rename to src/mips/mobileye/eyeq5-clocks.dtsi
index 78f5533a95c67db2ee51ecd0e7695170616651c3..17a342cc744e57dc1f21262abdbfa97d4e4d58f3 100644 (file)
@@ -3,42 +3,20 @@
  * Copyright 2023 Mobileye Vision Technologies Ltd.
  */
 
+#include <dt-bindings/clock/mobileye,eyeq5-clk.h>
+
 / {
        /* Fixed clock */
-       pll_cpu: pll-cpu {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <1500000000>;
-       };
-
-       pll_vdi: pll-vdi {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <1280000000>;
-       };
-
-       pll_per: pll-per {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <2000000000>;
-       };
-
-       pll_ddr0: pll-ddr0 {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <1857210000>;
-       };
-
-       pll_ddr1: pll-ddr1 {
+       xtal: xtal {
                compatible = "fixed-clock";
                #clock-cells = <0>;
-               clock-frequency = <1857210000>;
+               clock-frequency = <30000000>;
        };
 
 /* PLL_CPU derivatives */
        occ_cpu: occ-cpu {
                compatible = "fixed-factor-clock";
-               clocks = <&pll_cpu>;
+               clocks = <&olb EQ5C_PLL_CPU>;
                #clock-cells = <0>;
                clock-div = <1>;
                clock-mult = <1>;
        };
        occ_isram: occ-isram {
                compatible = "fixed-factor-clock";
-               clocks = <&pll_cpu>;
+               clocks = <&olb EQ5C_PLL_CPU>;
                #clock-cells = <0>;
                clock-div = <2>;
                clock-mult = <1>;
        };
        occ_dbu: occ-dbu {
                compatible = "fixed-factor-clock";
-               clocks = <&pll_cpu>;
+               clocks = <&olb EQ5C_PLL_CPU>;
                #clock-cells = <0>;
                clock-div = <10>;
                clock-mult = <1>;
 /* PLL_VDI derivatives */
        occ_vdi: occ-vdi {
                compatible = "fixed-factor-clock";
-               clocks = <&pll_vdi>;
+               clocks = <&olb EQ5C_PLL_VDI>;
                #clock-cells = <0>;
                clock-div = <2>;
                clock-mult = <1>;
        };
        occ_can_ser: occ-can-ser {
                compatible = "fixed-factor-clock";
-               clocks = <&pll_vdi>;
+               clocks = <&olb EQ5C_PLL_VDI>;
                #clock-cells = <0>;
                clock-div = <16>;
                clock-mult = <1>;
        };
        i2c_ser_clk: i2c-ser-clk {
                compatible = "fixed-factor-clock";
-               clocks = <&pll_vdi>;
+               clocks = <&olb EQ5C_PLL_VDI>;
                #clock-cells = <0>;
                clock-div = <20>;
                clock-mult = <1>;
 /* PLL_PER derivatives */
        occ_periph: occ-periph {
                compatible = "fixed-factor-clock";
-               clocks = <&pll_per>;
+               clocks = <&olb EQ5C_PLL_PER>;
                #clock-cells = <0>;
                clock-div = <16>;
                clock-mult = <1>;
        };
        emmc_sys_clk: emmc-sys-clk {
                compatible = "fixed-factor-clock";
-               clocks = <&pll_per>;
+               clocks = <&olb EQ5C_PLL_PER>;
                #clock-cells = <0>;
                clock-div = <10>;
                clock-mult = <1>;
        };
        ccf_ctrl_clk: ccf-ctrl-clk {
                compatible = "fixed-factor-clock";
-               clocks = <&pll_per>;
+               clocks = <&olb EQ5C_PLL_PER>;
                #clock-cells = <0>;
                clock-div = <4>;
                clock-mult = <1>;
        };
        occ_mjpeg_core: occ-mjpeg-core {
                compatible = "fixed-factor-clock";
-               clocks = <&pll_per>;
+               clocks = <&olb EQ5C_PLL_PER>;
                #clock-cells = <0>;
                clock-div = <2>;
                clock-mult = <1>;
        };
        fcmu_a_clk: fcmu-a-clk {
                compatible = "fixed-factor-clock";
-               clocks = <&pll_per>;
+               clocks = <&olb EQ5C_PLL_PER>;
                #clock-cells = <0>;
                clock-div = <20>;
                clock-mult = <1>;
        };
        occ_pci_sys: occ-pci-sys {
                compatible = "fixed-factor-clock";
-               clocks = <&pll_per>;
+               clocks = <&olb EQ5C_PLL_PER>;
                #clock-cells = <0>;
                clock-div = <8>;
                clock-mult = <1>;
diff --git a/src/mips/mobileye/eyeq5-pins.dtsi b/src/mips/mobileye/eyeq5-pins.dtsi
new file mode 100644 (file)
index 0000000..0b36710
--- /dev/null
@@ -0,0 +1,125 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+
+/*
+ * Default pin configuration for Mobileye EyeQ5 boards. We mostly create one
+ * pin configuration node per function.
+ */
+
+&olb {
+       timer0_pins: timer0-pins {
+               function = "timer0";
+               pins = "PA0", "PA1";
+       };
+       timer1_pins: timer1-pins {
+               function = "timer1";
+               pins = "PA2", "PA3";
+       };
+       timer2_pins: timer2-pins {
+               function = "timer2";
+               pins = "PA4", "PA5";
+       };
+       pps0_pins: pps0-pin {
+               function = "timer2";
+               pins = "PA4";
+       };
+       pps1_pins: pps1-pin {
+               function = "timer2";
+               pins = "PA5";
+       };
+       timer5_ext_pins: timer5-ext-pins {
+               function = "timer5";
+               pins = "PA6", "PA7", "PA8", "PA9";
+       };
+       timer5_ext_input_pins: timer5-ext-input-pins {
+               function = "timer5";
+               pins = "PA6", "PA7";
+       };
+       timer5_ext_incap_a_pins: timer5-ext-incap-a-pin {
+               function = "timer5";
+               pins = "PA6";
+       };
+       timer5_ext_incap_b_pins: timer5-ext-incap-b-pin {
+               function = "timer5";
+               pins = "PA7";
+       };
+       can0_pins: can0-pins {
+               function = "can0";
+               pins = "PA14", "PA15";
+       };
+       can1_pins: can1-pins {
+               function = "can1";
+               pins = "PA16", "PA17";
+       };
+       uart0_pins: uart0-pins {
+               function = "uart0";
+               pins = "PA10", "PA11";
+       };
+       uart1_pins: uart1-pins {
+               function = "uart1";
+               pins = "PA12", "PA13";
+       };
+       spi0_pins: spi0-pins {
+               function = "spi0";
+               pins = "PA18", "PA19", "PA20", "PA21", "PA22";
+       };
+       spi1_pins: spi1-pins {
+               function = "spi1";
+               pins = "PA23", "PA24", "PA25", "PA26", "PA27";
+       };
+       spi1_slave_pins: spi1-slave-pins {
+               function = "spi1";
+               pins = "PA24", "PA25", "PA26";
+       };
+       refclk0_pins: refclk0-pin {
+               function = "refclk0";
+               pins = "PA28";
+       };
+       timer3_pins: timer3-pins {
+               function = "timer3";
+               pins = "PB0", "PB1";
+       };
+       timer4_pins: timer4-pins {
+               function = "timer4";
+               pins = "PB2", "PB3";
+       };
+       timer6_ext_pins: timer6-ext-pins {
+               function = "timer6";
+               pins = "PB4", "PB5", "PB6", "PB7";
+       };
+       timer6_ext_input_pins: timer6-ext-input-pins {
+               function = "timer6";
+               pins = "PB4", "PB5";
+       };
+       timer6_ext_incap_a_pins: timer6-ext-incap-a-pin {
+               function = "timer6";
+               pins = "PB4";
+       };
+       timer6_ext_incap_b_pins: timer6-ext-incap-b-pin {
+               function = "timer6";
+               pins = "PB5";
+       };
+       can2_pins: can2-pins {
+               function = "can2";
+               pins = "PB10", "PB11";
+       };
+       uart2_pins: uart2-pins {
+               function = "uart2";
+               pins = "PB8", "PB9";
+       };
+       spi2_pins: spi2-pins {
+               function = "spi2";
+               pins = "PB12", "PB13", "PB14", "PB15", "PB16";
+       };
+       spi3_pins: spi3-pins {
+               function = "spi3";
+               pins = "PB17", "PB18", "PB19", "PB20", "PB21";
+       };
+       spi3_slave_pins: spi3-slave-pins {
+               function = "spi3";
+               pins = "PB18", "PB19", "PB20";
+       };
+       mclk0_pins: mclk0-pin {
+               function = "mclk0";
+               pins = "PB22";
+       };
+};
index 6cc5980e2fa17911fb8f0af728a1012ce104efa5..0708771c193d064fa56be2c7f6115672b5c24d8d 100644 (file)
@@ -5,7 +5,7 @@
 
 #include <dt-bindings/interrupt-controller/mips-gic.h>
 
-#include "eyeq5-fixed-clocks.dtsi"
+#include "eyeq5-clocks.dtsi"
 
 / {
        #address-cells = <2>;
@@ -78,6 +78,9 @@
                        interrupts = <GIC_SHARED 6 IRQ_TYPE_LEVEL_HIGH>;
                        clocks  = <&uart_clk>, <&occ_periph>;
                        clock-names = "uartclk", "apb_pclk";
+                       resets = <&olb 0 10>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart0_pins>;
                };
 
                uart1: serial@900000 {
@@ -88,6 +91,9 @@
                        interrupts = <GIC_SHARED 6 IRQ_TYPE_LEVEL_HIGH>;
                        clocks  = <&uart_clk>, <&occ_periph>;
                        clock-names = "uartclk", "apb_pclk";
+                       resets = <&olb 0 11>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart1_pins>;
                };
 
                uart2: serial@a00000 {
                        interrupts = <GIC_SHARED 6 IRQ_TYPE_LEVEL_HIGH>;
                        clocks  = <&uart_clk>, <&occ_periph>;
                        clock-names = "uartclk", "apb_pclk";
+                       resets = <&olb 0 12>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart2_pins>;
+               };
+
+               olb: system-controller@e00000 {
+                       compatible = "mobileye,eyeq5-olb", "syscon";
+                       reg = <0 0xe00000 0x0 0x400>;
+                       #reset-cells = <2>;
+                       #clock-cells = <1>;
+                       clocks = <&xtal>;
+                       clock-names = "ref";
                };
 
                gic: interrupt-controller@140000 {
                };
        };
 };
+
+#include "eyeq5-pins.dtsi"
diff --git a/src/mips/mobileye/eyeq6h-epm6.dts b/src/mips/mobileye/eyeq6h-epm6.dts
new file mode 100644 (file)
index 0000000..ebc0d36
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Copyright 2024 Mobileye Vision Technologies Ltd.
+ */
+
+/dts-v1/;
+
+#include "eyeq6h.dtsi"
+
+/ {
+       compatible = "mobileye,eyeq6-epm6", "mobileye,eyeq6";
+       model = "Mobile EyeQ6H MP6 Evaluation board";
+
+       chosen {
+               stdout-path = "serial0:921600n8";
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x1 0x00000000 0x1 0x00000000>;
+       };
+};
diff --git a/src/mips/mobileye/eyeq6h-fixed-clocks.dtsi b/src/mips/mobileye/eyeq6h-fixed-clocks.dtsi
new file mode 100644 (file)
index 0000000..5fa99e0
--- /dev/null
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Copyright 2023 Mobileye Vision Technologies Ltd.
+ */
+
+#include <dt-bindings/clock/mobileye,eyeq5-clk.h>
+
+/ {
+       xtal: clock-30000000 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <30000000>;
+       };
+
+       pll_west: clock-2000000000-west {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <2000000000>;
+       };
+
+       pll_cpu: clock-2000000000-cpu {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <2000000000>;
+       };
+
+       /* pll-cpu derivatives */
+       occ_cpu: clock-2000000000-occ-cpu {
+               compatible = "fixed-factor-clock";
+               clocks = <&pll_cpu>;
+               #clock-cells = <0>;
+               clock-div = <1>;
+               clock-mult = <1>;
+       };
+
+       /* pll-west derivatives */
+       occ_periph_w: clock-200000000 {
+               compatible = "fixed-factor-clock";
+               clocks = <&pll_west>;
+               #clock-cells = <0>;
+               clock-div = <10>;
+               clock-mult = <1>;
+       };
+       uart_clk: clock-200000000-uart {
+               compatible = "fixed-factor-clock";
+               clocks = <&occ_periph_w>;
+               #clock-cells = <0>;
+               clock-div = <1>;
+               clock-mult = <1>;
+       };
+
+};
diff --git a/src/mips/mobileye/eyeq6h-pins.dtsi b/src/mips/mobileye/eyeq6h-pins.dtsi
new file mode 100644 (file)
index 0000000..a3d1b36
--- /dev/null
@@ -0,0 +1,88 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Copyright 2024 Mobileye Vision Technologies Ltd.
+ */
+
+/*
+ * MUX register structure
+ * bits    | field      | comment
+ * [0]     | MUX_SEL    | 0 - GPIO, 1 - alternative func
+ * [4]     | SW_LOOPBACK|
+ * [5]     | SW_OUT_HZ  |
+ * [7]     | DBG_IN     |
+ * [11:8]  | DS         | drive strength
+ * [13:12] | PUD        | pull-up/pull-down. 0, 3 - no, 1 - PD, 2 - PU
+ * [14]    | OD         | Open drain
+ * [15]    | ST_CFG     | Hysteretic input enable (Schmitt trigger)
+ */
+
+&pinctrl_west {
+       // TODO: use pinctrl-single,bias-pullup
+       // TODO: use pinctrl-single,bias-pulldown
+       // TODO: use pinctrl-single,drive-strength
+       // TODO: use pinctrl-single,input-schmitt
+
+       i2c0_pins: i2c0-pins {
+               pinctrl-single,pins = <
+                       0x000 0x200     // I2C0_SCL pin
+                       0x004 0x200     // I2C0_SDA pin
+               >;
+       };
+       i2c1_pins: i2c1-pins {
+               pinctrl-single,pins = <
+                       0x008 0x200     // I2C1_SCL pin
+                       0x00c 0x200     // I2C1_SDA pin
+               >;
+       };
+       eth0_pins: eth0-pins {
+               pinctrl-single,pins = <
+                       0x080 1         // GPIO_C4__SMA0_MDC pin
+                       0x084 1         // GPIO_C5__SMA0_MDIO pin
+               >;
+       };
+       uart0_pins: uart0-pins {
+               pinctrl-single,pins = <0x0a8 1>; // UART0 pin group
+       };
+       uart1_pins: uart1-pins {
+               pinctrl-single,pins = <0x0a0 1>; // UART1 pin group
+       };
+       spi0_pins: spi0-pins {
+               pinctrl-single,pins = <0x0ac 1>; // SPI0 pin group
+       };
+       spi1_pins: spi1-pins {
+               pinctrl-single,pins = <0x0a4 1>; // SPI1 pin group
+       };
+};
+
+&pinctrl_east {
+       i2c2_pins: i2c2-pins {
+               pinctrl-single,pins = <
+                       0x000 0x200     // i2c2_SCL pin
+                       0x004 0x200     // i2c2_SDA pin
+               >;
+       };
+       i2c3_pins: i2c3-pins {
+               pinctrl-single,pins = <
+                       0x008 0x200     // i2c3_SCL pin
+                       0x00c 0x200     // i2c3_SDA pin
+               >;
+       };
+       eth1_pins: eth1-pins {
+               pinctrl-single,pins = <
+                       0x080 1 // GPIO_D4__SMA1_MDC pin
+                       0x084 1 // GPIO_D5__SMA1_MDIO pin
+               >;
+       };
+       uart2_sel_pins: uart2-pins {
+               pinctrl-single,pins = <0x0a4 1>; // UART2 pin group
+       };
+       uart3_pins: uart3-pins {
+               pinctrl-single,pins = <0x09c 1>; // UART3 pin group
+       };
+       spi2_pins: spi2-pins {
+               pinctrl-single,pins = <0x0a8 1>; // SPI2 pin group
+       };
+       spi3_pins: spi3-pins {
+               pinctrl-single,pins = <0x0a0 1>; // SPI3 pin group
+       };
+};
diff --git a/src/mips/mobileye/eyeq6h.dtsi b/src/mips/mobileye/eyeq6h.dtsi
new file mode 100644 (file)
index 0000000..1db3c3c
--- /dev/null
@@ -0,0 +1,98 @@
+// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+/*
+ * Copyright 2024 Mobileye Vision Technologies Ltd.
+ */
+
+#include <dt-bindings/interrupt-controller/mips-gic.h>
+
+#include "eyeq6h-fixed-clocks.dtsi"
+
+/ {
+       #address-cells = <2>;
+       #size-cells = <2>;
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "img,i6500";
+                       reg = <0>;
+                       clocks = <&occ_cpu>;
+               };
+       };
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       cpu_intc: interrupt-controller {
+               compatible = "mti,cpu-interrupt-controller";
+               interrupt-controller;
+               #address-cells = <0>;
+               #interrupt-cells = <1>;
+       };
+
+       soc: soc {
+               compatible = "simple-bus";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               uart0: serial@d3331000 {
+                       compatible = "arm,pl011", "arm,primecell";
+                       reg = <0 0xd3331000 0x0 0x1000>;
+                       reg-io-width = <4>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <GIC_SHARED 43 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&occ_periph_w>, <&occ_periph_w>;
+                       clock-names = "uartclk", "apb_pclk";
+               };
+
+               pinctrl_west: pinctrl@d3337000 {
+                       compatible = "pinctrl-single";
+                       reg = <0x0 0xd3337000 0x0 0xb0>;
+                       #pinctrl-cells = <1>;
+                       pinctrl-single,register-width = <32>;
+                       pinctrl-single,function-mask = <0xffff>;
+               };
+
+               pinctrl_east: pinctrl@d3357000 {
+                       compatible = "pinctrl-single";
+                       reg = <0x0 0xd3357000 0x0 0xb0>;
+                       #pinctrl-cells = <1>;
+                       pinctrl-single,register-width = <32>;
+                       pinctrl-single,function-mask = <0xffff>;
+               };
+
+               pinctrl_south: pinctrl@d8014000 {
+                       compatible = "pinctrl-single";
+                       reg = <0x0 0xd8014000 0x0 0xf8>;
+                       #pinctrl-cells = <1>;
+                       pinctrl-single,register-width = <32>;
+                       pinctrl-single,function-mask = <0xffff>;
+               };
+
+               gic: interrupt-controller@f0920000 {
+                       compatible = "mti,gic";
+                       reg = <0x0 0xf0920000 0x0 0x20000>;
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+
+                       /*
+                        * Declare the interrupt-parent even though the mti,gic
+                        * binding doesn't require it, such that the kernel can
+                        * figure out that cpu_intc is the root interrupt
+                        * controller & should be probed first.
+                        */
+                       interrupt-parent = <&cpu_intc>;
+
+                       timer {
+                               compatible = "mti,gic-timer";
+                               interrupts = <GIC_LOCAL 1 IRQ_TYPE_NONE>;
+                               clocks = <&occ_cpu>;
+                       };
+               };
+       };
+};
+
+#include "eyeq6h-pins.dtsi"
diff --git a/src/mips/realtek/cameo-rtl9302c-2x-rtl8224-2xge.dts b/src/mips/realtek/cameo-rtl9302c-2x-rtl8224-2xge.dts
new file mode 100644 (file)
index 0000000..77d2566
--- /dev/null
@@ -0,0 +1,73 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/dts-v1/;
+
+#include "rtl930x.dtsi"
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/thermal/thermal.h>
+
+/ {
+       compatible = "cameo,rtl9302c-2x-rtl8224-2xge", "realtek,rtl9302-soc";
+       model = "RTL9302C Development Board";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x8000000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&spi0 {
+       status = "okay";
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <10000000>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "LOADER";
+                               reg = <0x0 0xe0000>;
+                               read-only;
+                       };
+                       partition@e0000 {
+                               label = "BDINFO";
+                               reg = <0xe0000 0x10000>;
+                       };
+                       partition@f0000 {
+                               label = "SYSINFO";
+                               reg = <0xf0000 0x10000>;
+                               read-only;
+                       };
+                       partition@100000 {
+                               label = "JFFS2 CFG";
+                               reg = <0x100000 0x100000>;
+                       };
+                       partition@200000 {
+                               label = "JFFS2 LOG";
+                               reg = <0x200000 0x100000>;
+                       };
+                       partition@300000 {
+                               label = "RUNTIME";
+                               reg = <0x300000 0xe80000>;
+                       };
+                       partition@1180000 {
+                               label = "RUNTIME2";
+                               reg = <0x1180000 0xe80000>;
+                       };
+               };
+       };
+};
index 6cc4ff5c0d198058c0e973371ead0ddd34f96cd7..722106e39194bbf853f01c2af72fd5b8f5f3436c 100644 (file)
@@ -6,6 +6,7 @@
                #size-cells = <0>;
 
                cpu@0 {
+                       device_type = "cpu";
                        compatible = "mips,mips4KEc";
                        reg = <0>;
                        clocks = <&baseclk 0>;
index de65a111b6263e20bac6849e389b6e6c2345f9ea..03ddc61f7c9e9da61599909b04841c24544e2fc2 100644 (file)
@@ -22,7 +22,7 @@
                #size-cells = <1>;
                ranges = <0x0 0x18000000 0x10000>;
 
-               uart0: uart@2000 {
+               uart0: serial@2000 {
                        compatible = "ns16550a";
                        reg = <0x2000 0x100>;
 
@@ -39,7 +39,7 @@
                        status = "disabled";
                };
 
-               uart1: uart@2100 {
+               uart1: serial@2100 {
                        compatible = "ns16550a";
                        reg = <0x2100 0x100>;
 
diff --git a/src/mips/realtek/rtl930x.dtsi b/src/mips/realtek/rtl930x.dtsi
new file mode 100644 (file)
index 0000000..f271940
--- /dev/null
@@ -0,0 +1,79 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR BSD-2-Clause
+
+#include "rtl83xx.dtsi"
+
+/ {
+       compatible = "realtek,rtl9302-soc";
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
+                       device_type = "cpu";
+                       compatible = "mips,mips34Kc";
+                       reg = <0>;
+                       clocks = <&baseclk 0>;
+                       clock-names = "cpu";
+               };
+       };
+
+       baseclk: clock-800mhz {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <800000000>;
+       };
+
+       lx_clk: clock-175mhz {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency  = <175000000>;
+       };
+};
+
+&soc {
+       intc: interrupt-controller@3000 {
+               compatible = "realtek,rtl9300-intc", "realtek,rtl-intc";
+               reg = <0x3000 0x18>, <0x3018 0x18>;
+               interrupt-controller;
+               #interrupt-cells = <1>;
+
+               interrupt-parent = <&cpuintc>;
+               interrupts = <2>, <3>, <4>, <5>, <6>, <7>;
+       };
+
+       spi0: spi@1200 {
+               compatible = "realtek,rtl8380-spi";
+               reg = <0x1200 0x100>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       timer0: timer@3200 {
+               compatible = "realtek,rtl9302-timer", "realtek,otto-timer";
+               reg = <0x3200 0x10>, <0x3210 0x10>, <0x3220 0x10>,
+                   <0x3230 0x10>, <0x3240 0x10>;
+
+               interrupt-parent = <&intc>;
+               interrupts = <7>, <8>, <9>, <10>, <11>;
+               clocks = <&lx_clk>;
+       };
+};
+
+&uart0 {
+       /delete-property/ clock-frequency;
+       clocks = <&lx_clk>;
+
+       interrupt-parent = <&intc>;
+       interrupts = <30>;
+};
+
+&uart1 {
+       /delete-property/ clock-frequency;
+       clocks = <&lx_clk>;
+
+       interrupt-parent = <&intc>;
+       interrupts = <31>;
+};
+
diff --git a/src/powerpc/acadia.dts b/src/powerpc/acadia.dts
deleted file mode 100644 (file)
index 5fedda8..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Device Tree Source for AMCC Acadia (405EZ)
- *
- * Copyright IBM Corp. 2008
- *
- * This file is licensed under the terms of the GNU General Public License
- * version 2.  This program is licensed "as is" without any warranty of any
- * kind, whether express or implied.
- */
-
-/dts-v1/;
-
-/ {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       model = "amcc,acadia";
-       compatible = "amcc,acadia";
-       dcr-parent = <&{/cpus/cpu@0}>;
-
-       aliases {
-               ethernet0 = &EMAC0;
-               serial0 = &UART0;
-               serial1 = &UART1;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu@0 {
-                       device_type = "cpu";
-                       model = "PowerPC,405EZ";
-                       reg = <0x0>;
-                       clock-frequency = <0>; /* Filled in by wrapper */
-                       timebase-frequency = <0>; /* Filled in by wrapper */
-                       i-cache-line-size = <32>;
-                       d-cache-line-size = <32>;
-                       i-cache-size = <16384>;
-                       d-cache-size = <16384>;
-                       dcr-controller;
-                       dcr-access-method = "native";
-               };
-       };
-
-       memory {
-               device_type = "memory";
-               reg = <0x0 0x0>; /* Filled in by wrapper */
-       };
-
-       UIC0: interrupt-controller {
-               compatible = "ibm,uic-405ez", "ibm,uic";
-               interrupt-controller;
-               dcr-reg = <0x0c0 0x009>;
-               cell-index = <0>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-       };
-
-       plb {
-               compatible = "ibm,plb-405ez", "ibm,plb3";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-               clock-frequency = <0>; /* Filled in by wrapper */
-
-               MAL0: mcmal {
-                       compatible = "ibm,mcmal-405ez", "ibm,mcmal";
-                       dcr-reg = <0x380 0x62>;
-                       num-tx-chans = <1>;
-                       num-rx-chans = <1>;
-                       interrupt-parent = <&UIC0>;
-                       /* 405EZ has only 3 interrupts to the UIC, as
-                        * SERR, TXDE, and RXDE are or'd together into
-                        * one UIC bit
-                        */
-                       interrupts = <
-                               0x13 0x4 /* TXEOB */
-                               0x15 0x4 /* RXEOB */
-                               0x12 0x4 /* SERR, TXDE, RXDE */>;
-               };
-
-               POB0: opb {
-                       compatible = "ibm,opb-405ez", "ibm,opb";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges;
-                       dcr-reg = <0x0a 0x05>;
-                       clock-frequency = <0>; /* Filled in by wrapper */
-
-                       UART0: serial@ef600300 {
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0xef600300 0x8>;
-                               virtual-reg = <0xef600300>;
-                               clock-frequency = <0>; /* Filled in by wrapper */
-                               current-speed = <115200>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x5 0x4>;
-                       };
-
-                       UART1: serial@ef600400 {
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0xef600400 0x8>;
-                               clock-frequency = <0>; /* Filled in by wrapper */
-                               current-speed = <115200>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x6 0x4>;
-                       };
-
-                       IIC: i2c@ef600500 {
-                               compatible = "ibm,iic-405ez", "ibm,iic";
-                               reg = <0xef600500 0x11>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0xa 0x4>;
-                       };
-
-                       GPIO0: gpio@ef600700 {
-                               compatible = "ibm,gpio-405ez";
-                               reg = <0xef600700 0x20>;
-                       };
-
-                       GPIO1: gpio@ef600800 {
-                               compatible = "ibm,gpio-405ez";
-                               reg = <0xef600800 0x20>;
-                       };
-
-                       EMAC0: ethernet@ef600900 {
-                               device_type = "network";
-                               compatible = "ibm,emac-405ez", "ibm,emac";
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <
-                                       0x10 0x4 /* Ethernet */
-                                       0x11 0x4 /* Ethernet Wake up */>;
-                               local-mac-address = [000000000000]; /* Filled in by wrapper */
-                               reg = <0xef600900 0x70>;
-                               mal-device = <&MAL0>;
-                               mal-tx-channel = <0>;
-                               mal-rx-channel = <0>;
-                               cell-index = <0>;
-                               max-frame-size = <1500>;
-                               rx-fifo-size = <4096>;
-                               tx-fifo-size = <2048>;
-                               phy-mode = "mii";
-                               phy-map = <0x0>;
-                       };
-
-                       CAN0: can@ef601000 {
-                               compatible = "amcc,can-405ez";
-                               reg = <0xef601000 0x620>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x7 0x4>;
-                       };
-
-                       CAN1: can@ef601800 {
-                               compatible = "amcc,can-405ez";
-                               reg = <0xef601800 0x620>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x8 0x4>;
-                       };
-
-                       cameleon@ef602000 {
-                               compatible = "amcc,cameleon-405ez";
-                               reg = <0xef602000 0x800>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0xb 0x4 0xc 0x4>;
-                       };
-
-                       ieee1588@ef602800 {
-                               compatible = "amcc,ieee1588-405ez";
-                               reg = <0xef602800 0x60>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x4 0x4>;
-                               /* This thing is a bit weird.  It has its own UIC
-                                * that it uses to generate snapshot triggers.  We
-                                * don't really support this device yet, and it needs
-                                * work to figure this out.
-                                */
-                               dcr-reg = <0xe0 0x9>;
-                       };
-
-                       usb@ef603000 {
-                               compatible = "ohci-be";
-                               reg = <0xef603000 0x80>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0xd 0x4 0xe 0x4>;
-                       };
-
-                       dac@ef603300 {
-                               compatible = "amcc,dac-405ez";
-                               reg = <0xef603300 0x40>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x18 0x4>;
-                       };
-
-                       adc@ef603400 {
-                               compatible = "amcc,adc-405ez";
-                               reg = <0xef603400 0x40>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x17 0x4>;
-                       };
-
-                       spi@ef603500 {
-                               compatible = "amcc,spi-405ez";
-                               reg = <0xef603500 0x100>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x9 0x4>;
-                       };
-               };
-
-               EBC0: ebc {
-                       compatible = "ibm,ebc-405ez", "ibm,ebc";
-                       dcr-reg = <0x12 0x2>;
-                       #address-cells = <2>;
-                       #size-cells = <1>;
-                       clock-frequency = <0>; /* Filled in by wrapper */
-               };
-       };
-
-       chosen {
-               stdout-path = "/plb/opb/serial@ef600300";
-       };
-};
diff --git a/src/powerpc/haleakala.dts b/src/powerpc/haleakala.dts
deleted file mode 100644 (file)
index f81ce87..0000000
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Device Tree Source for AMCC Haleakala (405EXr)
- *
- * Copyright 2008 DENX Software Engineering, Stefan Roese <sr@denx.de>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2.  This program is licensed "as is" without
- * any warranty of any kind, whether express or implied.
- */
-
-/dts-v1/;
-
-/ {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       model = "amcc,haleakala";
-       compatible = "amcc,haleakala", "amcc,kilauea";
-       dcr-parent = <&{/cpus/cpu@0}>;
-
-       aliases {
-               ethernet0 = &EMAC0;
-               serial0 = &UART0;
-               serial1 = &UART1;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu@0 {
-                       device_type = "cpu";
-                       model = "PowerPC,405EXr";
-                       reg = <0x00000000>;
-                       clock-frequency = <0>; /* Filled in by U-Boot */
-                       timebase-frequency = <0>; /* Filled in by U-Boot */
-                       i-cache-line-size = <32>;
-                       d-cache-line-size = <32>;
-                       i-cache-size = <16384>; /* 16 kB */
-                       d-cache-size = <16384>; /* 16 kB */
-                       dcr-controller;
-                       dcr-access-method = "native";
-               };
-       };
-
-       memory {
-               device_type = "memory";
-               reg = <0x00000000 0x00000000>; /* Filled in by U-Boot */
-       };
-
-       UIC0: interrupt-controller {
-               compatible = "ibm,uic-405exr", "ibm,uic";
-               interrupt-controller;
-               cell-index = <0>;
-               dcr-reg = <0x0c0 0x009>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-       };
-
-       UIC1: interrupt-controller1 {
-               compatible = "ibm,uic-405exr","ibm,uic";
-               interrupt-controller;
-               cell-index = <1>;
-               dcr-reg = <0x0d0 0x009>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-               interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
-               interrupt-parent = <&UIC0>;
-       };
-
-       UIC2: interrupt-controller2 {
-               compatible = "ibm,uic-405exr","ibm,uic";
-               interrupt-controller;
-               cell-index = <2>;
-               dcr-reg = <0x0e0 0x009>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-               interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */
-               interrupt-parent = <&UIC0>;
-       };
-
-       plb {
-               compatible = "ibm,plb-405exr", "ibm,plb4";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-               clock-frequency = <0>; /* Filled in by U-Boot */
-
-               SDRAM0: memory-controller {
-                       compatible = "ibm,sdram-405exr", "ibm,sdram-4xx-ddr2";
-                       dcr-reg = <0x010 0x002>;
-                       interrupt-parent = <&UIC2>;
-                       interrupts = <0x5 0x4   /* ECC DED Error */ 
-                                     0x6 0x4>; /* ECC SEC Error */ 
-               };
-
-               MAL0: mcmal {
-                       compatible = "ibm,mcmal-405exr", "ibm,mcmal2";
-                       dcr-reg = <0x180 0x062>;
-                       num-tx-chans = <2>;
-                       num-rx-chans = <2>;
-                       interrupt-parent = <&MAL0>;
-                       interrupts = <0x0 0x1 0x2 0x3 0x4>;
-                       #interrupt-cells = <1>;
-                       #address-cells = <0>;
-                       #size-cells = <0>;
-                       interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4
-                                       /*RXEOB*/ 0x1 &UIC0 0xb 0x4
-                                       /*SERR*/  0x2 &UIC1 0x0 0x4
-                                       /*TXDE*/  0x3 &UIC1 0x1 0x4
-                                       /*RXDE*/  0x4 &UIC1 0x2 0x4>;
-                       interrupt-map-mask = <0xffffffff>;
-               };
-
-               POB0: opb {
-                       compatible = "ibm,opb-405exr", "ibm,opb";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0x80000000 0x80000000 0x10000000
-                                 0xef600000 0xef600000 0x00a00000
-                                 0xf0000000 0xf0000000 0x10000000>;
-                       dcr-reg = <0x0a0 0x005>;
-                       clock-frequency = <0>; /* Filled in by U-Boot */
-
-                       EBC0: ebc {
-                               compatible = "ibm,ebc-405exr", "ibm,ebc";
-                               dcr-reg = <0x012 0x002>;
-                               #address-cells = <2>;
-                               #size-cells = <1>;
-                               clock-frequency = <0>; /* Filled in by U-Boot */
-                               /* ranges property is supplied by U-Boot */
-                               interrupts = <0x5 0x1>;
-                               interrupt-parent = <&UIC1>;
-
-                               nor_flash@0,0 {
-                                       compatible = "amd,s29gl512n", "cfi-flash";
-                                       bank-width = <2>;
-                                       reg = <0x00000000 0x00000000 0x04000000>;
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       partition@0 {
-                                               label = "kernel";
-                                               reg = <0x00000000 0x00200000>;
-                                       };
-                                       partition@200000 {
-                                               label = "root";
-                                               reg = <0x00200000 0x00200000>;
-                                       };
-                                       partition@400000 {
-                                               label = "user";
-                                               reg = <0x00400000 0x03b60000>;
-                                       };
-                                       partition@3f60000 {
-                                               label = "env";
-                                               reg = <0x03f60000 0x00040000>;
-                                       };
-                                       partition@3fa0000 {
-                                               label = "u-boot";
-                                               reg = <0x03fa0000 0x00060000>;
-                                       };
-                               };
-                       };
-
-                       UART0: serial@ef600200 {
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0xef600200 0x00000008>;
-                               virtual-reg = <0xef600200>;
-                               clock-frequency = <0>; /* Filled in by U-Boot */
-                               current-speed = <0>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x1a 0x4>;
-                       };
-
-                       UART1: serial@ef600300 {
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0xef600300 0x00000008>;
-                               virtual-reg = <0xef600300>;
-                               clock-frequency = <0>; /* Filled in by U-Boot */
-                               current-speed = <0>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x1 0x4>;
-                       };
-
-                       IIC0: i2c@ef600400 {
-                               compatible = "ibm,iic-405exr", "ibm,iic";
-                               reg = <0xef600400 0x00000014>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x2 0x4>;
-                       };
-
-                       IIC1: i2c@ef600500 {
-                               compatible = "ibm,iic-405exr", "ibm,iic";
-                               reg = <0xef600500 0x00000014>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x7 0x4>;
-                       };
-
-
-                       RGMII0: emac-rgmii@ef600b00 {
-                               compatible = "ibm,rgmii-405exr", "ibm,rgmii";
-                               reg = <0xef600b00 0x00000104>;
-                               has-mdio;
-                       };
-
-                       EMAC0: ethernet@ef600900 {
-                               linux,network-index = <0x0>;
-                               device_type = "network";
-                               compatible = "ibm,emac-405exr", "ibm,emac4sync";
-                               interrupt-parent = <&EMAC0>;
-                               interrupts = <0x0 0x1>;
-                               #interrupt-cells = <1>;
-                               #address-cells = <0>;
-                               #size-cells = <0>;
-                               interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4
-                                               /*Wake*/  0x1 &UIC1 0x1d 0x4>;
-                               reg = <0xef600900 0x000000c4>;
-                               local-mac-address = [000000000000]; /* Filled in by U-Boot */
-                               mal-device = <&MAL0>;
-                               mal-tx-channel = <0>;
-                               mal-rx-channel = <0>;
-                               cell-index = <0>;
-                               max-frame-size = <9000>;
-                               rx-fifo-size = <4096>;
-                               tx-fifo-size = <2048>;
-                               rx-fifo-size-gige = <16384>;
-                               tx-fifo-size-gige = <16384>;
-                               phy-mode = "rgmii";
-                               phy-map = <0x00000000>;
-                               rgmii-device = <&RGMII0>;
-                               rgmii-channel = <0>;
-                               has-inverted-stacr-oc;
-                               has-new-stacr-staopc;
-                       };
-               };
-
-               PCIE0: pcie@a0000000 {
-                       device_type = "pci";
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       compatible = "ibm,plb-pciex-405ex", "ibm,plb-pciex";
-                       primary;
-                       port = <0x0>; /* port number */
-                       reg = <0xa0000000 0x20000000    /* Config space access */
-                              0xef000000 0x00001000>;  /* Registers */
-                       dcr-reg = <0x040 0x020>;
-                       sdr-base = <0x400>;
-
-                       /* Outbound ranges, one memory and one IO,
-                        * later cannot be changed
-                        */
-                       ranges = <0x02000000 0x00000000 0x80000000 0x90000000 0x00000000 0x08000000
-                                 0x01000000 0x00000000 0x00000000 0xe0000000 0x00000000 0x00010000>;
-
-                       /* Inbound 2GB range starting at 0 */
-                       dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x80000000>;
-
-                       /* This drives busses 0x00 to 0x3f */
-                       bus-range = <0x0 0x3f>;
-
-                       /* Legacy interrupts (note the weird polarity, the bridge seems
-                        * to invert PCIe legacy interrupts).
-                        * We are de-swizzling here because the numbers are actually for
-                        * port of the root complex virtual P2P bridge. But I want
-                        * to avoid putting a node for it in the tree, so the numbers
-                        * below are basically de-swizzled numbers.
-                        * The real slot is on idsel 0, so the swizzling is 1:1
-                        */
-                       interrupt-map-mask = <0x0 0x0 0x0 0x7>;
-                       interrupt-map = <
-                               0x0 0x0 0x0 0x1 &UIC2 0x0 0x4 /* swizzled int A */
-                               0x0 0x0 0x0 0x2 &UIC2 0x1 0x4 /* swizzled int B */
-                               0x0 0x0 0x0 0x3 &UIC2 0x2 0x4 /* swizzled int C */
-                               0x0 0x0 0x0 0x4 &UIC2 0x3 0x4 /* swizzled int D */>;
-               };
-       };
-};
diff --git a/src/powerpc/hotfoot.dts b/src/powerpc/hotfoot.dts
deleted file mode 100644 (file)
index b93bf2d..0000000
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * Device Tree Source for ESTeem 195E Hotfoot
- *
- * Copyright 2009 AbsoluteValue Systems <solomon@linux-wlan.com>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2.  This program is licensed "as is" without
- * any warranty of any kind, whether express or implied.
- */
-
-/dts-v1/;
-
-/ {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       model = "est,hotfoot";
-       compatible = "est,hotfoot";
-       dcr-parent = <&{/cpus/cpu@0}>;
-
-       aliases {
-               ethernet0 = &EMAC0;
-               ethernet1 = &EMAC1;
-               serial0 = &UART0;
-               serial1 = &UART1;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu@0 {
-                       device_type = "cpu";
-                       model = "PowerPC,405EP";
-                       reg = <0x00000000>;
-                       clock-frequency = <0>; /* Filled in by zImage */
-                       timebase-frequency = <0>; /* Filled in by zImage */
-                       i-cache-line-size = <0x20>;
-                       d-cache-line-size = <0x20>;
-                       i-cache-size = <0x4000>;
-                       d-cache-size = <0x4000>;
-                       dcr-controller;
-                       dcr-access-method = "native";
-               };
-       };
-
-       memory {
-               device_type = "memory";
-               reg = <0x00000000 0x00000000>; /* Filled in by zImage */
-       };
-
-       UIC0: interrupt-controller {
-               compatible = "ibm,uic";
-               interrupt-controller;
-               cell-index = <0>;
-               dcr-reg = <0x0c0 0x009>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-       };
-
-       plb {
-               compatible = "ibm,plb3";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-               clock-frequency = <0>; /* Filled in by zImage */
-
-               SDRAM0: memory-controller {
-                       compatible = "ibm,sdram-405ep";
-                       dcr-reg = <0x010 0x002>;
-               };
-
-               MAL: mcmal {
-                       compatible = "ibm,mcmal-405ep", "ibm,mcmal";
-                       dcr-reg = <0x180 0x062>;
-                       num-tx-chans = <4>;
-                       num-rx-chans = <2>;
-                       interrupt-parent = <&UIC0>;
-                       interrupts = <
-                               0xb 0x4 /* TXEOB */
-                               0xc 0x4 /* RXEOB */
-                               0xa 0x4 /* SERR */
-                               0xd 0x4 /* TXDE */
-                               0xe 0x4 /* RXDE */>;
-               };
-
-               POB0: opb {
-                       compatible = "ibm,opb-405ep", "ibm,opb";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0xef600000 0xef600000 0x00a00000>;
-                       dcr-reg = <0x0a0 0x005>;
-                       clock-frequency = <0>; /* Filled in by zImage */
-
-                       /* Hotfoot has UART0/UART1 swapped */
-
-                       UART0: serial@ef600400 {
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0xef600400 0x00000008>;
-                               virtual-reg = <0xef600400>;
-                               clock-frequency = <0>; /* Filled in by zImage */
-                               current-speed = <0x9600>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x1 0x4>;
-                       };
-
-                       UART1: serial@ef600300 {
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0xef600300 0x00000008>;
-                               virtual-reg = <0xef600300>;
-                               clock-frequency = <0>; /* Filled in by zImage */
-                               current-speed = <0x9600>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x0 0x4>;
-                       };
-
-                       IIC: i2c@ef600500 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               compatible = "ibm,iic-405ep", "ibm,iic";
-                               reg = <0xef600500 0x00000011>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x2 0x4>;
-
-                               rtc@68 {
-                                       /* Actually a DS1339 */
-                                       compatible = "dallas,ds1307";
-                                       reg = <0x68>;
-                               };
-
-                               temp@4a {
-                                       /* Not present on all boards */
-                                       compatible = "national,lm75";
-                                       reg = <0x4a>;
-                               };
-                       };
-
-                       GPIO: gpio@ef600700 {
-                               #gpio-cells = <2>;
-                               compatible = "ibm,ppc4xx-gpio";
-                               reg = <0xef600700 0x00000020>;
-                               gpio-controller;
-                       };
-
-                       gpio-leds {
-                               compatible = "gpio-leds";
-                               status {
-                                       label = "Status";
-                                       gpios = <&GPIO 1 0>;
-                               };
-                               radiorx {
-                                       label = "Rx";
-                                       gpios = <&GPIO 0xe 0>;
-                               };
-                       };
-
-                       EMAC0: ethernet@ef600800 {
-                               linux,network-index = <0x0>;
-                               device_type = "network";
-                               compatible = "ibm,emac-405ep", "ibm,emac";
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <
-                                       0xf 0x4 /* Ethernet */
-                                       0x9 0x4 /* Ethernet Wake Up */>;
-                               local-mac-address = [000000000000]; /* Filled in by zImage */
-                               reg = <0xef600800 0x00000070>;
-                               mal-device = <&MAL>;
-                               mal-tx-channel = <0>;
-                               mal-rx-channel = <0>;
-                               cell-index = <0>;
-                               max-frame-size = <0x5dc>;
-                               rx-fifo-size = <0x1000>;
-                               tx-fifo-size = <0x800>;
-                               phy-mode = "mii";
-                               phy-map = <0x00000000>;
-                       };
-
-                       EMAC1: ethernet@ef600900 {
-                               linux,network-index = <0x1>;
-                               device_type = "network";
-                               compatible = "ibm,emac-405ep", "ibm,emac";
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <
-                                       0x11 0x4 /* Ethernet */
-                                       0x9 0x4 /* Ethernet Wake Up */>;
-                               local-mac-address = [000000000000]; /* Filled in by zImage */
-                               reg = <0xef600900 0x00000070>;
-                               mal-device = <&MAL>;
-                               mal-tx-channel = <2>;
-                               mal-rx-channel = <1>;
-                               cell-index = <1>;
-                               max-frame-size = <0x5dc>;
-                               rx-fifo-size = <0x1000>;
-                               tx-fifo-size = <0x800>;
-                               mdio-device = <&EMAC0>;
-                               phy-mode = "mii";
-                               phy-map = <0x0000001>;
-                       };
-               };
-
-               EBC0: ebc {
-                       compatible = "ibm,ebc-405ep", "ibm,ebc";
-                       dcr-reg = <0x012 0x002>;
-                       #address-cells = <2>;
-                       #size-cells = <1>;
-
-                       /* The ranges property is supplied by the bootwrapper
-                        * and is based on the firmware's configuration of the
-                        * EBC bridge
-                        */
-                       clock-frequency = <0>; /* Filled in by zImage */
-
-                       nor_flash@0 {
-                               compatible = "cfi-flash";
-                               bank-width = <2>;
-                               reg = <0x0 0xff800000 0x00800000>;
-                               #address-cells = <1>;
-                               #size-cells = <1>;
-
-                               /* This mapping is for the 8M flash
-                                  4M flash has all ofssets -= 4M,
-                                  and FeatFS partition is not present */
-                               partition@0 {
-                                       label = "Bootloader";
-                                       reg = <0x7c0000 0x40000>;
-                                       /* read-only; */
-                               };
-                               partition@1 {
-                                       label = "Env_and_Config_Primary";
-                                       reg = <0x400000 0x10000>;
-                               };
-                               partition@2 {
-                                       label = "Kernel";
-                                       reg = <0x420000 0x100000>;
-                               };
-                               partition@3 {
-                                       label = "Filesystem";
-                                       reg = <0x520000 0x2a0000>;
-                               };
-                               partition@4 {
-                                       label = "Env_and_Config_Secondary";
-                                       reg = <0x410000 0x10000>;
-                               };
-                               partition@5 {
-                                       label = "FeatFS";
-                                       reg = <0x000000 0x400000>;
-                               };
-                               partition@6 {
-                                       label = "Bootloader_Env";
-                                       reg = <0x7d0000 0x10000>;
-                               };
-                       };
-               };
-
-               PCI0: pci@ec000000 {
-                       device_type = "pci";
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       compatible = "ibm,plb405ep-pci", "ibm,plb-pci";
-                       primary;
-                       reg = <0xeec00000 0x00000008    /* Config space access */
-                               0xeed80000 0x00000004    /* IACK */
-                               0xeed80000 0x00000004    /* Special cycle */
-                               0xef480000 0x00000040>;  /* Internal registers */
-
-                       /* Outbound ranges, one memory and one IO,
-                        * later cannot be changed. Chip supports a second
-                        * IO range but we don't use it for now
-                        */
-                       ranges = <0x02000000 0x00000000 0x80000000 0x80000000 0x00000000 0x20000000
-                               0x01000000 0x00000000 0x00000000 0xe8000000 0x00000000 0x00010000>;
-
-                       /* Inbound 2GB range starting at 0 */
-                       dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x80000000>;
-
-                       interrupt-parent = <&UIC0>;
-                       interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
-                       interrupt-map = <
-                               /* IDSEL 3 -- slot1 (optional) 27/29 A/B IRQ2/4 */
-                               0x1800 0x0 0x0 0x1 &UIC0 0x1b 0x8
-                               0x1800 0x0 0x0 0x2 &UIC0 0x1d 0x8
-
-                               /* IDSEL 4 -- slot0, 26/28 A/B IRQ1/3 */
-                               0x2000 0x0 0x0 0x1 &UIC0 0x1a 0x8
-                               0x2000 0x0 0x0 0x2 &UIC0 0x1c 0x8
-                               >;
-               };
-       };
-
-       chosen {
-               stdout-path = &UART0;
-       };
-};
diff --git a/src/powerpc/kilauea.dts b/src/powerpc/kilauea.dts
deleted file mode 100644 (file)
index c07a752..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-/*
- * Device Tree Source for AMCC Kilauea (405EX)
- *
- * Copyright 2007-2009 DENX Software Engineering, Stefan Roese <sr@denx.de>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2.  This program is licensed "as is" without
- * any warranty of any kind, whether express or implied.
- */
-
-/dts-v1/;
-
-/ {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       model = "amcc,kilauea";
-       compatible = "amcc,kilauea";
-       dcr-parent = <&{/cpus/cpu@0}>;
-
-       aliases {
-               ethernet0 = &EMAC0;
-               ethernet1 = &EMAC1;
-               serial0 = &UART0;
-               serial1 = &UART1;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu@0 {
-                       device_type = "cpu";
-                       model = "PowerPC,405EX";
-                       reg = <0x00000000>;
-                       clock-frequency = <0>; /* Filled in by U-Boot */
-                       timebase-frequency = <0>; /* Filled in by U-Boot */
-                       i-cache-line-size = <32>;
-                       d-cache-line-size = <32>;
-                       i-cache-size = <16384>; /* 16 kB */
-                       d-cache-size = <16384>; /* 16 kB */
-                       dcr-controller;
-                       dcr-access-method = "native";
-               };
-       };
-
-       memory {
-               device_type = "memory";
-               reg = <0x00000000 0x00000000>; /* Filled in by U-Boot */
-       };
-
-       UIC0: interrupt-controller {
-               compatible = "ibm,uic-405ex", "ibm,uic";
-               interrupt-controller;
-               cell-index = <0>;
-               dcr-reg = <0x0c0 0x009>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-       };
-
-       UIC1: interrupt-controller1 {
-               compatible = "ibm,uic-405ex","ibm,uic";
-               interrupt-controller;
-               cell-index = <1>;
-               dcr-reg = <0x0d0 0x009>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-               interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
-               interrupt-parent = <&UIC0>;
-       };
-
-       UIC2: interrupt-controller2 {
-               compatible = "ibm,uic-405ex","ibm,uic";
-               interrupt-controller;
-               cell-index = <2>;
-               dcr-reg = <0x0e0 0x009>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-               interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */
-               interrupt-parent = <&UIC0>;
-       };
-
-       CPM0: cpm {
-               compatible = "ibm,cpm";
-               dcr-access-method = "native";
-               dcr-reg = <0x0b0 0x003>;
-               unused-units = <0x00000000>;
-               idle-doze = <0x02000000>;
-               standby = <0xe3e74800>;
-       };
-
-       plb {
-               compatible = "ibm,plb-405ex", "ibm,plb4";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-               clock-frequency = <0>; /* Filled in by U-Boot */
-
-               SDRAM0: memory-controller {
-                       compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2";
-                       dcr-reg = <0x010 0x002>;
-                       interrupt-parent = <&UIC2>;
-                       interrupts = <0x5 0x4   /* ECC DED Error */ 
-                                     0x6 0x4>; /* ECC SEC Error */ 
-               };
-
-               CRYPTO: crypto@ef700000 {
-                       compatible = "amcc,ppc405ex-crypto", "amcc,ppc4xx-crypto";
-                       reg = <0xef700000 0x80400>;
-                       interrupt-parent = <&UIC0>;
-                       interrupts = <0x17 0x2>;
-               };
-
-               MAL0: mcmal {
-                       compatible = "ibm,mcmal-405ex", "ibm,mcmal2";
-                       dcr-reg = <0x180 0x062>;
-                       num-tx-chans = <2>;
-                       num-rx-chans = <2>;
-                       interrupt-parent = <&MAL0>;
-                       interrupts = <0x0 0x1 0x2 0x3 0x4>;
-                       #interrupt-cells = <1>;
-                       #address-cells = <0>;
-                       #size-cells = <0>;
-                       interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4
-                                       /*RXEOB*/ 0x1 &UIC0 0xb 0x4
-                                       /*SERR*/  0x2 &UIC1 0x0 0x4
-                                       /*TXDE*/  0x3 &UIC1 0x1 0x4
-                                       /*RXDE*/  0x4 &UIC1 0x2 0x4>;
-                       interrupt-map-mask = <0xffffffff>;
-               };
-
-               POB0: opb {
-                       compatible = "ibm,opb-405ex", "ibm,opb";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0x80000000 0x80000000 0x10000000
-                                 0xef600000 0xef600000 0x00a00000
-                                 0xf0000000 0xf0000000 0x10000000>;
-                       dcr-reg = <0x0a0 0x005>;
-                       clock-frequency = <0>; /* Filled in by U-Boot */
-
-                       EBC0: ebc {
-                               compatible = "ibm,ebc-405ex", "ibm,ebc";
-                               dcr-reg = <0x012 0x002>;
-                               #address-cells = <2>;
-                               #size-cells = <1>;
-                               clock-frequency = <0>; /* Filled in by U-Boot */
-                               /* ranges property is supplied by U-Boot */
-                               interrupts = <0x5 0x1>;
-                               interrupt-parent = <&UIC1>;
-
-                               nor_flash@0,0 {
-                                       compatible = "amd,s29gl512n", "cfi-flash";
-                                       bank-width = <2>;
-                                       reg = <0x00000000 0x00000000 0x04000000>;
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       partition@0 {
-                                               label = "kernel";
-                                               reg = <0x00000000 0x001e0000>;
-                                       };
-                                       partition@1e0000 {
-                                               label = "dtb";
-                                               reg = <0x001e0000 0x00020000>;
-                                       };
-                                       partition@200000 {
-                                               label = "root";
-                                               reg = <0x00200000 0x00200000>;
-                                       };
-                                       partition@400000 {
-                                               label = "user";
-                                               reg = <0x00400000 0x03b60000>;
-                                       };
-                                       partition@3f60000 {
-                                               label = "env";
-                                               reg = <0x03f60000 0x00040000>;
-                                       };
-                                       partition@3fa0000 {
-                                               label = "u-boot";
-                                               reg = <0x03fa0000 0x00060000>;
-                                       };
-                               };
-
-                               ndfc@1,0 {
-                                       compatible = "ibm,ndfc";
-                                       reg = <0x00000001 0x00000000 0x00002000>;
-                                       ccr = <0x00001000>;
-                                       bank-settings = <0x80002222>;
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-
-                                       nand {
-                                               #address-cells = <1>;
-                                               #size-cells = <1>;
-
-                                               partition@0 {
-                                                       label = "u-boot";
-                                                       reg = <0x00000000 0x00100000>;
-                                               };
-                                               partition@100000 {
-                                                       label = "user";
-                                                       reg = <0x00000000 0x03f00000>;
-                                               };
-                                       };
-                               };
-                       };
-
-                       UART0: serial@ef600200 {
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0xef600200 0x00000008>;
-                               virtual-reg = <0xef600200>;
-                               clock-frequency = <0>; /* Filled in by U-Boot */
-                               current-speed = <0>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x1a 0x4>;
-                       };
-
-                       UART1: serial@ef600300 {
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0xef600300 0x00000008>;
-                               virtual-reg = <0xef600300>;
-                               clock-frequency = <0>; /* Filled in by U-Boot */
-                               current-speed = <0>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x1 0x4>;
-                       };
-
-                       IIC0: i2c@ef600400 {
-                               compatible = "ibm,iic-405ex", "ibm,iic";
-                               reg = <0xef600400 0x00000014>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x2 0x4>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               rtc@68 {
-                                       compatible = "dallas,ds1338";
-                                       reg = <0x68>;
-                               };
-
-                               dtt@48 {
-                                       compatible = "dallas,ds1775";
-                                       reg = <0x48>;
-                               };
-                       };
-
-                       IIC1: i2c@ef600500 {
-                               compatible = "ibm,iic-405ex", "ibm,iic";
-                               reg = <0xef600500 0x00000014>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x7 0x4>;
-                       };
-
-                       RGMII0: emac-rgmii@ef600b00 {
-                               compatible = "ibm,rgmii-405ex", "ibm,rgmii";
-                               reg = <0xef600b00 0x00000104>;
-                               has-mdio;
-                       };
-
-                       EMAC0: ethernet@ef600900 {
-                               linux,network-index = <0x0>;
-                               device_type = "network";
-                               compatible = "ibm,emac-405ex", "ibm,emac4sync";
-                               interrupt-parent = <&EMAC0>;
-                               interrupts = <0x0 0x1>;
-                               #interrupt-cells = <1>;
-                               #address-cells = <0>;
-                               #size-cells = <0>;
-                               interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4
-                                               /*Wake*/  0x1 &UIC1 0x1d 0x4>;
-                               reg = <0xef600900 0x000000c4>;
-                               local-mac-address = [000000000000]; /* Filled in by U-Boot */
-                               mal-device = <&MAL0>;
-                               mal-tx-channel = <0>;
-                               mal-rx-channel = <0>;
-                               cell-index = <0>;
-                               max-frame-size = <9000>;
-                               rx-fifo-size = <4096>;
-                               tx-fifo-size = <2048>;
-                               rx-fifo-size-gige = <16384>;
-                               tx-fifo-size-gige = <16384>;
-                               phy-mode = "rgmii";
-                               phy-map = <0x00000000>;
-                               rgmii-device = <&RGMII0>;
-                               rgmii-channel = <0>;
-                               has-inverted-stacr-oc;
-                               has-new-stacr-staopc;
-                       };
-
-                       EMAC1: ethernet@ef600a00 {
-                               linux,network-index = <0x1>;
-                               device_type = "network";
-                               compatible = "ibm,emac-405ex", "ibm,emac4sync";
-                               interrupt-parent = <&EMAC1>;
-                               interrupts = <0x0 0x1>;
-                               #interrupt-cells = <1>;
-                               #address-cells = <0>;
-                               #size-cells = <0>;
-                               interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4
-                                               /*Wake*/  0x1 &UIC1 0x1f 0x4>;
-                               reg = <0xef600a00 0x000000c4>;
-                               local-mac-address = [000000000000]; /* Filled in by U-Boot */
-                               mal-device = <&MAL0>;
-                               mal-tx-channel = <1>;
-                               mal-rx-channel = <1>;
-                               cell-index = <1>;
-                               max-frame-size = <9000>;
-                               rx-fifo-size = <4096>;
-                               tx-fifo-size = <2048>;
-                               rx-fifo-size-gige = <16384>;
-                               tx-fifo-size-gige = <16384>;
-                               phy-mode = "rgmii";
-                               phy-map = <0x00000000>;
-                               rgmii-device = <&RGMII0>;
-                               rgmii-channel = <1>;
-                               has-inverted-stacr-oc;
-                               has-new-stacr-staopc;
-                       };
-               };
-
-               PCIE0: pcie@a0000000 {
-                       device_type = "pci";
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       compatible = "ibm,plb-pciex-405ex", "ibm,plb-pciex";
-                       primary;
-                       port = <0x0>; /* port number */
-                       reg = <0xa0000000 0x20000000    /* Config space access */
-                              0xef000000 0x00001000>;  /* Registers */
-                       dcr-reg = <0x040 0x020>;
-                       sdr-base = <0x400>;
-
-                       /* Outbound ranges, one memory and one IO,
-                        * later cannot be changed
-                        */
-                       ranges = <0x02000000 0x00000000 0x80000000 0x90000000 0x00000000 0x08000000
-                                 0x01000000 0x00000000 0x00000000 0xe0000000 0x00000000 0x00010000>;
-
-                       /* Inbound 2GB range starting at 0 */
-                       dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x80000000>;
-
-                       /* This drives busses 0x00 to 0x3f */
-                       bus-range = <0x0 0x3f>;
-
-                       /* Legacy interrupts (note the weird polarity, the bridge seems
-                        * to invert PCIe legacy interrupts).
-                        * We are de-swizzling here because the numbers are actually for
-                        * port of the root complex virtual P2P bridge. But I want
-                        * to avoid putting a node for it in the tree, so the numbers
-                        * below are basically de-swizzled numbers.
-                        * The real slot is on idsel 0, so the swizzling is 1:1
-                        */
-                       interrupt-map-mask = <0x0 0x0 0x0 0x7>;
-                       interrupt-map = <
-                               0x0 0x0 0x0 0x1 &UIC2 0x0 0x4 /* swizzled int A */
-                               0x0 0x0 0x0 0x2 &UIC2 0x1 0x4 /* swizzled int B */
-                               0x0 0x0 0x0 0x3 &UIC2 0x2 0x4 /* swizzled int C */
-                               0x0 0x0 0x0 0x4 &UIC2 0x3 0x4 /* swizzled int D */>;
-               };
-
-               PCIE1: pcie@c0000000 {
-                       device_type = "pci";
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       compatible = "ibm,plb-pciex-405ex", "ibm,plb-pciex";
-                       primary;
-                       port = <0x1>; /* port number */
-                       reg = <0xc0000000 0x20000000    /* Config space access */
-                              0xef001000 0x00001000>;  /* Registers */
-                       dcr-reg = <0x060 0x020>;
-                       sdr-base = <0x440>;
-
-                       /* Outbound ranges, one memory and one IO,
-                        * later cannot be changed
-                        */
-                       ranges = <0x02000000 0x00000000 0x80000000 0x98000000 0x00000000 0x08000000
-                                 0x01000000 0x00000000 0x00000000 0xe0010000 0x00000000 0x00010000>;
-
-                       /* Inbound 2GB range starting at 0 */
-                       dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x80000000>;
-
-                       /* This drives busses 0x40 to 0x7f */
-                       bus-range = <0x40 0x7f>;
-
-                       /* Legacy interrupts (note the weird polarity, the bridge seems
-                        * to invert PCIe legacy interrupts).
-                        * We are de-swizzling here because the numbers are actually for
-                        * port of the root complex virtual P2P bridge. But I want
-                        * to avoid putting a node for it in the tree, so the numbers
-                        * below are basically de-swizzled numbers.
-                        * The real slot is on idsel 0, so the swizzling is 1:1
-                        */
-                       interrupt-map-mask = <0x0 0x0 0x0 0x7>;
-                       interrupt-map = <
-                               0x0 0x0 0x0 0x1 &UIC2 0xb 0x4 /* swizzled int A */
-                               0x0 0x0 0x0 0x2 &UIC2 0xc 0x4 /* swizzled int B */
-                               0x0 0x0 0x0 0x3 &UIC2 0xd 0x4 /* swizzled int C */
-                               0x0 0x0 0x0 0x4 &UIC2 0xe 0x4 /* swizzled int D */>;
-               };
-       };
-};
diff --git a/src/powerpc/klondike.dts b/src/powerpc/klondike.dts
deleted file mode 100644 (file)
index 9743217..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Device Tree for Klondike (APM8018X) board.
- *
- * Copyright (c) 2010, Applied Micro Circuits Corporation
- * Author: Tanmay Inamdar <tinamdar@apm.com>
- */
-
-/dts-v1/;
-
-/ {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       model = "apm,klondike";
-       compatible = "apm,klondike";
-       dcr-parent = <&{/cpus/cpu@0}>;
-
-       aliases {
-               ethernet0 = &EMAC0;
-               ethernet1 = &EMAC1;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu@0 {
-                       device_type = "cpu";
-                       model = "PowerPC,apm8018x";
-                       reg = <0x00000000>;
-                       clock-frequency = <300000000>; /* Filled in by U-Boot */
-                       timebase-frequency = <300000000>; /* Filled in by U-Boot */
-                       i-cache-line-size = <32>;
-                       d-cache-line-size = <32>;
-                       i-cache-size = <16384>; /* 16 kB */
-                       d-cache-size = <16384>; /* 16 kB */
-                       dcr-controller;
-                       dcr-access-method = "native";
-               };
-       };
-
-       memory {
-               device_type = "memory";
-               reg = <0x00000000 0x20000000>; /* Filled in by U-Boot */
-       };
-
-       UIC0: interrupt-controller {
-               compatible = "ibm,uic";
-               interrupt-controller;
-               cell-index = <0>;
-               dcr-reg = <0x0c0 0x010>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-       };
-
-       UIC1: interrupt-controller1 {
-               compatible = "ibm,uic";
-               interrupt-controller;
-               cell-index = <1>;
-               dcr-reg = <0x0d0 0x010>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-               interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
-               interrupt-parent = <&UIC0>;
-       };
-
-       UIC2: interrupt-controller2 {
-               compatible = "ibm,uic";
-               interrupt-controller;
-               cell-index = <2>;
-               dcr-reg = <0x0e0 0x010>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-               interrupts = <0x0a 0x4 0x0b 0x4>; /* cascade */
-               interrupt-parent = <&UIC0>;
-       };
-
-       UIC3: interrupt-controller3 {
-               compatible = "ibm,uic";
-               interrupt-controller;
-               cell-index = <3>;
-               dcr-reg = <0x0f0 0x010>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-               interrupts = <0x10 0x4 0x11 0x4>; /* cascade */
-               interrupt-parent = <&UIC0>;
-       };
-
-       plb {
-               compatible = "ibm,plb4";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-               clock-frequency = <0>; /* Filled in by U-Boot */
-
-               SDRAM0: memory-controller {
-                       compatible = "ibm,sdram-apm8018x";
-                       dcr-reg = <0x010 0x002>;
-               };
-
-               MAL0: mcmal {
-                       compatible = "ibm,mcmal2";
-                       dcr-reg = <0x180 0x062>;
-                       num-tx-chans = <2>;
-                       num-rx-chans = <16>;
-                       #address-cells = <0>;
-                       #size-cells = <0>;
-                       interrupt-parent = <&UIC1>;
-                       interrupts = </*TXEOB*/   0x6 0x4
-                                       /*RXEOB*/ 0x7 0x4
-                                       /*SERR*/  0x1 0x4
-                                       /*TXDE*/  0x2 0x4
-                                       /*RXDE*/  0x3 0x4>;
-               };
-
-               POB0: opb {
-                       compatible = "ibm,opb";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0x20000000 0x20000000 0x30000000
-                                 0x50000000 0x50000000 0x10000000
-                                 0x60000000 0x60000000 0x10000000
-                                 0xFE000000 0xFE000000 0x00010000>;
-                       dcr-reg = <0x100 0x020>;
-                       clock-frequency = <300000000>; /* Filled in by U-Boot */
-
-                       RGMII0: emac-rgmii@400a2000 {
-                               compatible = "ibm,rgmii";
-                               reg = <0x400a2000 0x00000010>;
-                               has-mdio;
-                       };
-
-                       TAH0: emac-tah@400a3000 {
-                               compatible = "ibm,tah";
-                               reg = <0x400a3000 0x100>;
-                       };
-
-                       TAH1: emac-tah@400a4000 {
-                               compatible = "ibm,tah";
-                               reg = <0x400a4000 0x100>;
-                       };
-
-                       EMAC0: ethernet@400a0000 {
-                               compatible = "ibm,emac4", "ibm-emac4sync";
-                               interrupt-parent = <&EMAC0>;
-                               interrupts = <0x0>;
-                               #interrupt-cells = <1>;
-                               #address-cells = <0>;
-                               #size-cells = <0>;
-                               interrupt-map = </*Status*/ 0x0 &UIC0 0x13 0x4>;
-                               reg = <0x400a0000 0x00000100>;
-                               local-mac-address = [000000000000]; /* Filled in by U-Boot */
-                               mal-device = <&MAL0>;
-                               mal-tx-channel = <0x0>;
-                               mal-rx-channel = <0x0>;
-                               cell-index = <0>;
-                               max-frame-size = <9000>;
-                               rx-fifo-size = <4096>;
-                               tx-fifo-size = <2048>;
-                               phy-mode = "rgmii";
-                               phy-address = <0x2>;
-                               turbo = "no";
-                               phy-map = <0x00000000>;
-                               rgmii-device = <&RGMII0>;
-                               rgmii-channel = <0>;
-                               tah-device = <&TAH0>;
-                               tah-channel = <0>;
-                               has-inverted-stacr-oc;
-                               has-new-stacr-staopc;
-                       };
-
-                       EMAC1: ethernet@400a1000 {
-                               compatible = "ibm,emac4", "ibm-emac4sync";
-                               status = "disabled";
-                               interrupt-parent = <&EMAC1>;
-                               interrupts = <0x0>;
-                               #interrupt-cells = <1>;
-                               #address-cells = <0>;
-                               #size-cells = <0>;
-                               interrupt-map = </*Status*/ 0x0 &UIC0 0x14 0x4>;
-                               reg = <0x400a1000 0x00000100>;
-                               local-mac-address = [000000000000]; /* Filled in by U-Boot */
-                               mal-device = <&MAL0>;
-                               mal-tx-channel = <1>;
-                               mal-rx-channel = <8>;
-                               cell-index = <1>;
-                               max-frame-size = <9000>;
-                               rx-fifo-size = <4096>;
-                               tx-fifo-size = <2048>;
-                               phy-mode = "rgmii";
-                               phy-address = <0x3>;
-                               turbo = "no";
-                               phy-map = <0x00000000>;
-                               rgmii-device = <&RGMII0>;
-                               rgmii-channel = <1>;
-                               tah-device = <&TAH1>;
-                               tah-channel = <0>;
-                               has-inverted-stacr-oc;
-                               has-new-stacr-staopc;
-                               mdio-device = <&EMAC0>;
-                       };
-               };
-       };
-
-       chosen {
-               stdout-path = "/plb/opb/serial@50001000";
-       };
-};
diff --git a/src/powerpc/makalu.dts b/src/powerpc/makalu.dts
deleted file mode 100644 (file)
index c473cd9..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- * Device Tree Source for AMCC Makalu (405EX)
- *
- * Copyright 2007 DENX Software Engineering, Stefan Roese <sr@denx.de>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2.  This program is licensed "as is" without
- * any warranty of any kind, whether express or implied.
- */
-
-/dts-v1/;
-
-/ {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       model = "amcc,makalu";
-       compatible = "amcc,makalu";
-       dcr-parent = <&{/cpus/cpu@0}>;
-
-       aliases {
-               ethernet0 = &EMAC0;
-               ethernet1 = &EMAC1;
-               serial0 = &UART0;
-               serial1 = &UART1;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu@0 {
-                       device_type = "cpu";
-                       model = "PowerPC,405EX";
-                       reg = <0x00000000>;
-                       clock-frequency = <0>; /* Filled in by U-Boot */
-                       timebase-frequency = <0>; /* Filled in by U-Boot */
-                       i-cache-line-size = <32>;
-                       d-cache-line-size = <32>;
-                       i-cache-size = <16384>; /* 16 kB */
-                       d-cache-size = <16384>; /* 16 kB */
-                       dcr-controller;
-                       dcr-access-method = "native";
-               };
-       };
-
-       memory {
-               device_type = "memory";
-               reg = <0x00000000 0x00000000>; /* Filled in by U-Boot */
-       };
-
-       UIC0: interrupt-controller {
-               compatible = "ibm,uic-405ex", "ibm,uic";
-               interrupt-controller;
-               cell-index = <0>;
-               dcr-reg = <0x0c0 0x009>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-       };
-
-       UIC1: interrupt-controller1 {
-               compatible = "ibm,uic-405ex","ibm,uic";
-               interrupt-controller;
-               cell-index = <1>;
-               dcr-reg = <0x0d0 0x009>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-               interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
-               interrupt-parent = <&UIC0>;
-       };
-
-       UIC2: interrupt-controller2 {
-               compatible = "ibm,uic-405ex","ibm,uic";
-               interrupt-controller;
-               cell-index = <2>;
-               dcr-reg = <0x0e0 0x009>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-               interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */
-               interrupt-parent = <&UIC0>;
-       };
-
-       plb {
-               compatible = "ibm,plb-405ex", "ibm,plb4";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-               clock-frequency = <0>; /* Filled in by U-Boot */
-
-               SDRAM0: memory-controller {
-                       compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2";
-                       dcr-reg = <0x010 0x002>;
-                       interrupt-parent = <&UIC2>;
-                       interrupts = <0x5 0x4 /* ECC DED Error */
-                                     0x6 0x4 /* ECC SEC Error */ >;
-               };
-
-               MAL0: mcmal {
-                       compatible = "ibm,mcmal-405ex", "ibm,mcmal2";
-                       dcr-reg = <0x180 0x062>;
-                       num-tx-chans = <2>;
-                       num-rx-chans = <2>;
-                       interrupt-parent = <&MAL0>;
-                       interrupts = <0x0 0x1 0x2 0x3 0x4>;
-                       #interrupt-cells = <1>;
-                       #address-cells = <0>;
-                       #size-cells = <0>;
-                       interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4
-                                       /*RXEOB*/ 0x1 &UIC0 0xb 0x4
-                                       /*SERR*/  0x2 &UIC1 0x0 0x4
-                                       /*TXDE*/  0x3 &UIC1 0x1 0x4
-                                       /*RXDE*/  0x4 &UIC1 0x2 0x4>;
-                       interrupt-map-mask = <0xffffffff>;
-               };
-
-               POB0: opb {
-                       compatible = "ibm,opb-405ex", "ibm,opb";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0x80000000 0x80000000 0x10000000
-                                 0xef600000 0xef600000 0x00a00000
-                                 0xf0000000 0xf0000000 0x10000000>;
-                       dcr-reg = <0x0a0 0x005>;
-                       clock-frequency = <0>; /* Filled in by U-Boot */
-
-                       EBC0: ebc {
-                               compatible = "ibm,ebc-405ex", "ibm,ebc";
-                               dcr-reg = <0x012 0x002>;
-                               #address-cells = <2>;
-                               #size-cells = <1>;
-                               clock-frequency = <0>; /* Filled in by U-Boot */
-                               /* ranges property is supplied by U-Boot */
-                               interrupts = <0x5 0x1>;
-                               interrupt-parent = <&UIC1>;
-
-                               nor_flash@0,0 {
-                                       compatible = "amd,s29gl512n", "cfi-flash";
-                                       bank-width = <2>;
-                                       reg = <0x00000000 0x00000000 0x04000000>;
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       partition@0 {
-                                               label = "kernel";
-                                               reg = <0x00000000 0x00200000>;
-                                       };
-                                       partition@200000 {
-                                               label = "root";
-                                               reg = <0x00200000 0x00200000>;
-                                       };
-                                       partition@400000 {
-                                               label = "user";
-                                               reg = <0x00400000 0x03b60000>;
-                                       };
-                                       partition@3f60000 {
-                                               label = "env";
-                                               reg = <0x03f60000 0x00040000>;
-                                       };
-                                       partition@3fa0000 {
-                                               label = "u-boot";
-                                               reg = <0x03fa0000 0x00060000>;
-                                       };
-                               };
-                       };
-
-                       UART0: serial@ef600200 {
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0xef600200 0x00000008>;
-                               virtual-reg = <0xef600200>;
-                               clock-frequency = <0>; /* Filled in by U-Boot */
-                               current-speed = <0>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x1a 0x4>;
-                       };
-
-                       UART1: serial@ef600300 {
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0xef600300 0x00000008>;
-                               virtual-reg = <0xef600300>;
-                               clock-frequency = <0>; /* Filled in by U-Boot */
-                               current-speed = <0>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x1 0x4>;
-                       };
-
-                       IIC0: i2c@ef600400 {
-                               compatible = "ibm,iic-405ex", "ibm,iic";
-                               reg = <0xef600400 0x00000014>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x2 0x4>;
-                       };
-
-                       IIC1: i2c@ef600500 {
-                               compatible = "ibm,iic-405ex", "ibm,iic";
-                               reg = <0xef600500 0x00000014>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x7 0x4>;
-                       };
-
-
-                       RGMII0: emac-rgmii@ef600b00 {
-                               compatible = "ibm,rgmii-405ex", "ibm,rgmii";
-                               reg = <0xef600b00 0x00000104>;
-                               has-mdio;
-                       };
-
-                       EMAC0: ethernet@ef600900 {
-                               linux,network-index = <0x0>;
-                               device_type = "network";
-                               compatible = "ibm,emac-405ex", "ibm,emac4sync";
-                               interrupt-parent = <&EMAC0>;
-                               interrupts = <0x0 0x1>;
-                               #interrupt-cells = <1>;
-                               #address-cells = <0>;
-                               #size-cells = <0>;
-                               interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4
-                                               /*Wake*/  0x1 &UIC1 0x1d 0x4>;
-                               reg = <0xef600900 0x000000c4>;
-                               local-mac-address = [000000000000]; /* Filled in by U-Boot */
-                               mal-device = <&MAL0>;
-                               mal-tx-channel = <0>;
-                               mal-rx-channel = <0>;
-                               cell-index = <0>;
-                               max-frame-size = <9000>;
-                               rx-fifo-size = <4096>;
-                               tx-fifo-size = <2048>;
-                               rx-fifo-size-gige = <16384>;
-                               tx-fifo-size-gige = <16384>;
-                               phy-mode = "rgmii";
-                               phy-map = <0x0000003f>; /* Start at 6 */
-                               rgmii-device = <&RGMII0>;
-                               rgmii-channel = <0>;
-                               has-inverted-stacr-oc;
-                               has-new-stacr-staopc;
-                       };
-
-                       EMAC1: ethernet@ef600a00 {
-                               linux,network-index = <0x1>;
-                               device_type = "network";
-                               compatible = "ibm,emac-405ex", "ibm,emac4sync";
-                               interrupt-parent = <&EMAC1>;
-                               interrupts = <0x0 0x1>;
-                               #interrupt-cells = <1>;
-                               #address-cells = <0>;
-                               #size-cells = <0>;
-                               interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4
-                                               /*Wake*/  0x1 &UIC1 0x1f 0x4>;
-                               reg = <0xef600a00 0x000000c4>;
-                               local-mac-address = [000000000000]; /* Filled in by U-Boot */
-                               mal-device = <&MAL0>;
-                               mal-tx-channel = <1>;
-                               mal-rx-channel = <1>;
-                               cell-index = <1>;
-                               max-frame-size = <9000>;
-                               rx-fifo-size = <4096>;
-                               tx-fifo-size = <2048>;
-                                rx-fifo-size-gige = <16384>;
-                                tx-fifo-size-gige = <16384>;
-                               phy-mode = "rgmii";
-                               phy-map = <0x00000000>;
-                               rgmii-device = <&RGMII0>;
-                               rgmii-channel = <1>;
-                               has-inverted-stacr-oc;
-                               has-new-stacr-staopc;
-                       };
-               };
-
-               PCIE0: pcie@a0000000 {
-                       device_type = "pci";
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       compatible = "ibm,plb-pciex-405ex", "ibm,plb-pciex";
-                       primary;
-                       port = <0x0>; /* port number */
-                       reg = <0xa0000000 0x20000000    /* Config space access */
-                              0xef000000 0x00001000>;  /* Registers */
-                       dcr-reg = <0x040 0x020>;
-                       sdr-base = <0x400>;
-
-                       /* Outbound ranges, one memory and one IO,
-                        * later cannot be changed
-                        */
-                       ranges = <0x02000000 0x00000000 0x80000000 0x90000000 0x00000000 0x08000000
-                                 0x01000000 0x00000000 0x00000000 0xe0000000 0x00000000 0x00010000>;
-
-                       /* Inbound 2GB range starting at 0 */
-                       dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x80000000>;
-
-                       /* This drives busses 0x00 to 0x3f */
-                       bus-range = <0x0 0x3f>;
-
-                       /* Legacy interrupts (note the weird polarity, the bridge seems
-                        * to invert PCIe legacy interrupts).
-                        * We are de-swizzling here because the numbers are actually for
-                        * port of the root complex virtual P2P bridge. But I want
-                        * to avoid putting a node for it in the tree, so the numbers
-                        * below are basically de-swizzled numbers.
-                        * The real slot is on idsel 0, so the swizzling is 1:1
-                        */
-                       interrupt-map-mask = <0x0 0x0 0x0 0x7>;
-                       interrupt-map = <
-                               0x0 0x0 0x0 0x1 &UIC2 0x0 0x4 /* swizzled int A */
-                               0x0 0x0 0x0 0x2 &UIC2 0x1 0x4 /* swizzled int B */
-                               0x0 0x0 0x0 0x3 &UIC2 0x2 0x4 /* swizzled int C */
-                               0x0 0x0 0x0 0x4 &UIC2 0x3 0x4 /* swizzled int D */>;
-               };
-
-               PCIE1: pcie@c0000000 {
-                       device_type = "pci";
-                       #interrupt-cells = <1>;
-                       #size-cells = <2>;
-                       #address-cells = <3>;
-                       compatible = "ibm,plb-pciex-405ex", "ibm,plb-pciex";
-                       primary;
-                       port = <0x1>; /* port number */
-                       reg = <0xc0000000 0x20000000    /* Config space access */
-                              0xef001000 0x00001000>;  /* Registers */
-                       dcr-reg = <0x060 0x020>;
-                       sdr-base = <0x440>;
-
-                       /* Outbound ranges, one memory and one IO,
-                        * later cannot be changed
-                        */
-                       ranges = <0x02000000 0x00000000 0x80000000 0x98000000 0x00000000 0x08000000
-                                 0x01000000 0x00000000 0x00000000 0xe0010000 0x00000000 0x00010000>;
-
-                       /* Inbound 2GB range starting at 0 */
-                       dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x80000000>;
-
-                       /* This drives busses 0x40 to 0x7f */
-                       bus-range = <0x40 0x7f>;
-
-                       /* Legacy interrupts (note the weird polarity, the bridge seems
-                        * to invert PCIe legacy interrupts).
-                        * We are de-swizzling here because the numbers are actually for
-                        * port of the root complex virtual P2P bridge. But I want
-                        * to avoid putting a node for it in the tree, so the numbers
-                        * below are basically de-swizzled numbers.
-                        * The real slot is on idsel 0, so the swizzling is 1:1
-                        */
-                       interrupt-map-mask = <0x0 0x0 0x0 0x7>;
-                       interrupt-map = <
-                               0x0 0x0 0x0 0x1 &UIC2 0xb 0x4 /* swizzled int A */
-                               0x0 0x0 0x0 0x2 &UIC2 0xc 0x4 /* swizzled int B */
-                               0x0 0x0 0x0 0x3 &UIC2 0xd 0x4 /* swizzled int C */
-                               0x0 0x0 0x0 0x4 &UIC2 0xe 0x4 /* swizzled int D */>;
-               };
-       };
-};
diff --git a/src/powerpc/obs600.dts b/src/powerpc/obs600.dts
deleted file mode 100644 (file)
index d10b041..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- * Device Tree Source for PlatHome OpenBlockS 600 (405EX)
- *
- * Copyright 2011 Ben Herrenschmidt, IBM Corp.
- *
- * Based on Kilauea by:
- *
- * Copyright 2007-2009 DENX Software Engineering, Stefan Roese <sr@denx.de>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2.  This program is licensed "as is" without
- * any warranty of any kind, whether express or implied.
- */
-
-/dts-v1/;
-
-/ {
-       #address-cells = <1>;
-       #size-cells = <1>;
-       model = "PlatHome,OpenBlockS 600";
-       compatible = "plathome,obs600";
-       dcr-parent = <&{/cpus/cpu@0}>;
-
-       aliases {
-               ethernet0 = &EMAC0;
-               ethernet1 = &EMAC1;
-               serial0 = &UART0;
-               serial1 = &UART1;
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu@0 {
-                       device_type = "cpu";
-                       model = "PowerPC,405EX";
-                       reg = <0x00000000>;
-                       clock-frequency = <0>; /* Filled in by U-Boot */
-                       timebase-frequency = <0>; /* Filled in by U-Boot */
-                       i-cache-line-size = <32>;
-                       d-cache-line-size = <32>;
-                       i-cache-size = <16384>; /* 16 kB */
-                       d-cache-size = <16384>; /* 16 kB */
-                       dcr-controller;
-                       dcr-access-method = "native";
-               };
-       };
-
-       memory {
-               device_type = "memory";
-               reg = <0x00000000 0x00000000>; /* Filled in by U-Boot */
-       };
-
-       UIC0: interrupt-controller {
-               compatible = "ibm,uic-405ex", "ibm,uic";
-               interrupt-controller;
-               cell-index = <0>;
-               dcr-reg = <0x0c0 0x009>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-       };
-
-       UIC1: interrupt-controller1 {
-               compatible = "ibm,uic-405ex","ibm,uic";
-               interrupt-controller;
-               cell-index = <1>;
-               dcr-reg = <0x0d0 0x009>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-               interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
-               interrupt-parent = <&UIC0>;
-       };
-
-       UIC2: interrupt-controller2 {
-               compatible = "ibm,uic-405ex","ibm,uic";
-               interrupt-controller;
-               cell-index = <2>;
-               dcr-reg = <0x0e0 0x009>;
-               #address-cells = <0>;
-               #size-cells = <0>;
-               #interrupt-cells = <2>;
-               interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */
-               interrupt-parent = <&UIC0>;
-       };
-
-       CPM0: cpm {
-               compatible = "ibm,cpm";
-               dcr-access-method = "native";
-               dcr-reg = <0x0b0 0x003>;
-               unused-units = <0x00000000>;
-               idle-doze = <0x02000000>;
-               standby = <0xe3e74800>;
-       };
-
-       plb {
-               compatible = "ibm,plb-405ex", "ibm,plb4";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-               clock-frequency = <0>; /* Filled in by U-Boot */
-
-               SDRAM0: memory-controller {
-                       compatible = "ibm,sdram-405ex", "ibm,sdram-4xx-ddr2";
-                       dcr-reg = <0x010 0x002>;
-                       interrupt-parent = <&UIC2>;
-                       interrupts = <0x5 0x4   /* ECC DED Error */
-                                     0x6 0x4>; /* ECC SEC Error */
-               };
-
-               CRYPTO: crypto@ef700000 {
-                       compatible = "amcc,ppc405ex-crypto", "amcc,ppc4xx-crypto";
-                       reg = <0xef700000 0x80400>;
-                       interrupt-parent = <&UIC0>;
-                       interrupts = <0x17 0x2>;
-               };
-
-               MAL0: mcmal {
-                       compatible = "ibm,mcmal-405ex", "ibm,mcmal2";
-                       dcr-reg = <0x180 0x062>;
-                       num-tx-chans = <2>;
-                       num-rx-chans = <2>;
-                       interrupt-parent = <&MAL0>;
-                       interrupts = <0x0 0x1 0x2 0x3 0x4>;
-                       #interrupt-cells = <1>;
-                       #address-cells = <0>;
-                       #size-cells = <0>;
-                       interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4
-                                       /*RXEOB*/ 0x1 &UIC0 0xb 0x4
-                                       /*SERR*/  0x2 &UIC1 0x0 0x4
-                                       /*TXDE*/  0x3 &UIC1 0x1 0x4
-                                       /*RXDE*/  0x4 &UIC1 0x2 0x4>;
-                       interrupt-map-mask = <0xffffffff>;
-               };
-
-               POB0: opb {
-                       compatible = "ibm,opb-405ex", "ibm,opb";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0x80000000 0x80000000 0x10000000
-                                 0xef600000 0xef600000 0x00a00000
-                                 0xf0000000 0xf0000000 0x10000000>;
-                       dcr-reg = <0x0a0 0x005>;
-                       clock-frequency = <0>; /* Filled in by U-Boot */
-
-                       EBC0: ebc {
-                               compatible = "ibm,ebc-405ex", "ibm,ebc";
-                               dcr-reg = <0x012 0x002>;
-                               #address-cells = <2>;
-                               #size-cells = <1>;
-                               clock-frequency = <0>; /* Filled in by U-Boot */
-                               /* ranges property is supplied by U-Boot */
-                               interrupts = <0x5 0x1>;
-                               interrupt-parent = <&UIC1>;
-
-                               nor_flash@0,0 {
-                                       compatible = "amd,s29gl512n", "cfi-flash";
-                                       bank-width = <2>;
-                                       reg = <0x00000000 0x00000000 0x08000000>;
-                                       #address-cells = <1>;
-                                       #size-cells = <1>;
-                                       partition@0 {
-                                               label = "kernel + initrd";
-                                               reg = <0x00000000 0x03de0000>;
-                                       };
-                                       partition@3de0000 {
-                                               label = "user config area";
-                                               reg = <0x03de0000 0x00080000>;
-                                       };
-                                       partition@3e60000 {
-                                               label = "user program area";
-                                               reg = <0x03e60000 0x04000000>;
-                                       };
-                                       partition@7e60000 {
-                                               label = "flat device tree";
-                                               reg = <0x07e60000 0x00080000>;
-                                       };
-                                       partition@7ee0000 {
-                                               label = "test program";
-                                               reg = <0x07ee0000 0x00080000>;
-                                       };
-                                       partition@7f60000 {
-                                               label = "u-boot env";
-                                               reg = <0x07f60000 0x00040000>;
-                                       };
-                                       partition@7fa0000 {
-                                               label = "u-boot";
-                                               reg = <0x07fa0000 0x00060000>;
-                                       };
-                               };
-                       };
-
-                       UART0: serial@ef600200 {
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0xef600200 0x00000008>;
-                               virtual-reg = <0xef600200>;
-                               clock-frequency = <0>; /* Filled in by U-Boot */
-                               current-speed = <0>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x1a 0x4>;
-                       };
-
-                       UART1: serial@ef600300 {
-                               device_type = "serial";
-                               compatible = "ns16550";
-                               reg = <0xef600300 0x00000008>;
-                               virtual-reg = <0xef600300>;
-                               clock-frequency = <0>; /* Filled in by U-Boot */
-                               current-speed = <0>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x1 0x4>;
-                       };
-
-                       IIC0: i2c@ef600400 {
-                               compatible = "ibm,iic-405ex", "ibm,iic";
-                               reg = <0xef600400 0x00000014>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x2 0x4>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               rtc@68 {
-                                       compatible = "dallas,ds1340";
-                                       reg = <0x68>;
-                               };
-                       };
-
-                       IIC1: i2c@ef600500 {
-                               compatible = "ibm,iic-405ex", "ibm,iic";
-                               reg = <0xef600500 0x00000014>;
-                               interrupt-parent = <&UIC0>;
-                               interrupts = <0x7 0x4>;
-                       };
-
-                       RGMII0: emac-rgmii@ef600b00 {
-                               compatible = "ibm,rgmii-405ex", "ibm,rgmii";
-                               reg = <0xef600b00 0x00000104>;
-                               has-mdio;
-                       };
-
-                       EMAC0: ethernet@ef600900 {
-                               linux,network-index = <0x0>;
-                               device_type = "network";
-                               compatible = "ibm,emac-405ex", "ibm,emac4sync";
-                               interrupt-parent = <&EMAC0>;
-                               interrupts = <0x0 0x1>;
-                               #interrupt-cells = <1>;
-                               #address-cells = <0>;
-                               #size-cells = <0>;
-                               interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4
-                                               /*Wake*/  0x1 &UIC1 0x1d 0x4>;
-                               reg = <0xef600900 0x000000c4>;
-                               local-mac-address = [000000000000]; /* Filled in by U-Boot */
-                               mal-device = <&MAL0>;
-                               mal-tx-channel = <0>;
-                               mal-rx-channel = <0>;
-                               cell-index = <0>;
-                               max-frame-size = <9000>;
-                               rx-fifo-size = <4096>;
-                               tx-fifo-size = <2048>;
-                               rx-fifo-size-gige = <16384>;
-                               tx-fifo-size-gige = <16384>;
-                               phy-mode = "rgmii";
-                               phy-map = <0x00000000>;
-                               rgmii-device = <&RGMII0>;
-                               rgmii-channel = <0>;
-                               has-inverted-stacr-oc;
-                               has-new-stacr-staopc;
-                       };
-
-                       EMAC1: ethernet@ef600a00 {
-                               linux,network-index = <0x1>;
-                               device_type = "network";
-                               compatible = "ibm,emac-405ex", "ibm,emac4sync";
-                               interrupt-parent = <&EMAC1>;
-                               interrupts = <0x0 0x1>;
-                               #interrupt-cells = <1>;
-                               #address-cells = <0>;
-                               #size-cells = <0>;
-                               interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4
-                                               /*Wake*/  0x1 &UIC1 0x1f 0x4>;
-                               reg = <0xef600a00 0x000000c4>;
-                               local-mac-address = [000000000000]; /* Filled in by U-Boot */
-                               mal-device = <&MAL0>;
-                               mal-tx-channel = <1>;
-                               mal-rx-channel = <1>;
-                               cell-index = <1>;
-                               max-frame-size = <9000>;
-                               rx-fifo-size = <4096>;
-                               tx-fifo-size = <2048>;
-                               rx-fifo-size-gige = <16384>;
-                               tx-fifo-size-gige = <16384>;
-                               phy-mode = "rgmii";
-                               phy-map = <0x00000000>;
-                               rgmii-device = <&RGMII0>;
-                               rgmii-channel = <1>;
-                               has-inverted-stacr-oc;
-                               has-new-stacr-staopc;
-                       };
-
-                       GPIO: gpio@ef600800 {
-                               device_type = "gpio";
-                               compatible = "ibm,gpio-405ex", "ibm,ppc4xx-gpio";
-                               reg = <0xef600800 0x50>;
-                       };
-               };
-       };
-        chosen {
-                stdout-path = "/plb/opb/serial@ef600200";
-        };
-};
diff --git a/src/riscv/allwinner/sun20i-d1-clockworkpi-v3.14.dts b/src/riscv/allwinner/sun20i-d1-clockworkpi-v3.14.dts
new file mode 100644 (file)
index 0000000..750aec6
--- /dev/null
@@ -0,0 +1,252 @@
+// SPDX-License-Identifier: (GPL-2.0+ or MIT)
+// Copyright (C) 2022 Samuel Holland <samuel@sholland.org>
+
+#include <dt-bindings/gpio/gpio.h>
+
+/dts-v1/;
+
+#include "sun20i-d1.dtsi"
+#include "sun20i-common-regulators.dtsi"
+
+/ {
+       model = "ClockworkPi v3.14 (R-01)";
+       compatible = "clockwork,r-01-clockworkpi-v3.14", "allwinner,sun20i-d1";
+
+       aliases {
+               ethernet0 = &ap6256;
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       /*
+        * This regulator is PWM-controlled, but the PWM controller is not
+        * yet supported, so fix the regulator to its default voltage.
+        */
+       reg_vdd_cpu: vdd-cpu {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd-cpu";
+               regulator-min-microvolt = <1100000>;
+               regulator-max-microvolt = <1100000>;
+               vin-supply = <&reg_vcc>;
+       };
+
+       wifi_pwrseq: wifi-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&pio 6 11 GPIO_ACTIVE_LOW>; /* PG11/GPIO3 */
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&reg_vdd_cpu>;
+};
+
+&dcxo {
+       clock-frequency = <24000000>;
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-0 = <&i2c0_pb10_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       axp221: pmic@34 {
+               compatible = "x-powers,axp228", "x-powers,axp221";
+               reg = <0x34>;
+               interrupt-parent = <&pio>;
+               interrupts = <4 9 IRQ_TYPE_LEVEL_LOW>; /* PE9/GPIO2 */
+               interrupt-controller;
+               #interrupt-cells = <1>;
+
+               ac_power_supply: ac-power {
+                       compatible = "x-powers,axp221-ac-power-supply";
+               };
+
+               axp_adc: adc {
+                       compatible = "x-powers,axp221-adc";
+                       #io-channel-cells = <1>;
+               };
+
+               battery_power_supply: battery-power {
+                       compatible = "x-powers,axp221-battery-power-supply";
+               };
+
+               axp_gpio: gpio {
+                       compatible = "x-powers,axp221-gpio";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+
+               regulators {
+                       x-powers,dcdc-freq = <3000>;
+
+                       reg_dcdc1: dcdc1 {
+                               regulator-name = "sys-3v3";
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       reg_dcdc3: dcdc3 {
+                               regulator-name = "sys-1v8";
+                               regulator-always-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       reg_aldo1: aldo1 {
+                               regulator-name = "aud-3v3";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       reg_aldo2: aldo2 {
+                               regulator-name = "disp-3v3";
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       reg_aldo3: aldo3 {
+                               regulator-name = "vdd-wifi";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       /* DLDO1 and ELDO1-3 are connected in parallel. */
+                       reg_dldo1: dldo1 {
+                               regulator-name = "vbat-wifi-a";
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       /* DLDO2-DLDO4 are connected in parallel. */
+                       reg_dldo2: dldo2 {
+                               regulator-name = "vcc-3v3-ext-a";
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       reg_dldo3: dldo3 {
+                               regulator-name = "vcc-3v3-ext-b";
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       reg_dldo4: dldo4 {
+                               regulator-name = "vcc-3v3-ext-c";
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       reg_eldo1: eldo1 {
+                               regulator-name = "vbat-wifi-b";
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       reg_eldo2: eldo2 {
+                               regulator-name = "vbat-wifi-c";
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       reg_eldo3: eldo3 {
+                               regulator-name = "vbat-wifi-d";
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+               };
+
+               usb_power_supply: usb-power {
+                       compatible = "x-powers,axp221-usb-power-supply";
+                       status = "disabled";
+               };
+       };
+};
+
+&mmc0 {
+       broken-cd;
+       bus-width = <4>;
+       disable-wp;
+       vmmc-supply = <&reg_dcdc1>;
+       vqmmc-supply = <&reg_vcc_3v3>;
+       pinctrl-0 = <&mmc0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&mmc1 {
+       bus-width = <4>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       non-removable;
+       vmmc-supply = <&reg_dldo1>;
+       vqmmc-supply = <&reg_aldo3>;
+       pinctrl-0 = <&mmc1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       ap6256: wifi@1 {
+               compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+               interrupt-parent = <&pio>;
+               interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10/GPIO4 */
+               interrupt-names = "host-wake";
+       };
+};
+
+&ohci1 {
+       status = "okay";
+};
+
+&pio {
+       vcc-pg-supply = <&reg_ldoa>;
+};
+
+&uart0 {
+       pinctrl-0 = <&uart0_pb8_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&uart1 {
+       uart-has-rtscts;
+       pinctrl-0 = <&uart1_pg6_pins>, <&uart1_pg8_rts_cts_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       bluetooth {
+               compatible = "brcm,bcm4345c5";
+               interrupt-parent = <&pio>;
+               interrupts = <6 17 IRQ_TYPE_LEVEL_HIGH>; /* PG17/GPIO6 */
+               device-wakeup-gpios = <&pio 6 16 GPIO_ACTIVE_HIGH>; /* PG16/GPIO7 */
+               shutdown-gpios = <&pio 6 18 GPIO_ACTIVE_HIGH>; /* PG18/GPIO5 */
+               max-speed = <1500000>;
+               vbat-supply = <&reg_dldo1>;
+               vddio-supply = <&reg_aldo3>;
+       };
+};
+
+&usb_otg {
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usbphy {
+       usb0_vbus_power-supply = <&ac_power_supply>;
+       usb1_vbus-supply = <&reg_vcc>;
+       status = "okay";
+};
diff --git a/src/riscv/allwinner/sun20i-d1-devterm-v3.14.dts b/src/riscv/allwinner/sun20i-d1-devterm-v3.14.dts
new file mode 100644 (file)
index 0000000..bc5c84f
--- /dev/null
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: (GPL-2.0+ or MIT)
+// Copyright (C) 2022 Samuel Holland <samuel@sholland.org>
+
+#include "sun20i-d1-clockworkpi-v3.14.dts"
+
+/ {
+       model = "Clockwork DevTerm (R-01)";
+       compatible = "clockwork,r-01-devterm-v3.14",
+                    "clockwork,r-01-clockworkpi-v3.14",
+                    "allwinner,sun20i-d1";
+
+       fan {
+               compatible = "gpio-fan";
+               gpios = <&pio 3 10 GPIO_ACTIVE_HIGH>; /* PD10/GPIO41 */
+               gpio-fan,speed-map = <0    0>,
+                                    <6000 1>;
+               #cooling-cells = <2>;
+       };
+
+       i2c-gpio-0 {
+               compatible = "i2c-gpio";
+               sda-gpios = <&pio 3 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PD14/GPIO44 */
+               scl-gpios = <&pio 3 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; /* PD15/GPIO45 */
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               adc@54 {
+                       compatible = "ti,adc101c";
+                       reg = <0x54>;
+                       interrupt-parent = <&pio>;
+                       interrupts = <4 12 IRQ_TYPE_LEVEL_LOW>; /* PE12/GPIO35 */
+                       vref-supply = <&reg_dldo2>;
+                       #io-channel-cells = <1>;
+               };
+       };
+};
index 5a9d7f5a75b4062820e6df9a3784334015badc83..e4175adb028da2be539e7aa316206fec4810adfc 100644 (file)
                        ranges;
                        #address-cells = <1>;
                        #size-cells = <1>;
+
+                       regulators@3000150 {
+                               compatible = "allwinner,sun20i-d1-system-ldos";
+                               reg = <0x3000150 0x4>;
+
+                               reg_ldoa: ldoa {
+                               };
+
+                               reg_ldob: ldob {
+                               };
+                       };
                };
 
                dma: dma-controller@3002000 {
diff --git a/src/riscv/microchip/mpfs-beaglev-fire-fabric.dtsi b/src/riscv/microchip/mpfs-beaglev-fire-fabric.dtsi
new file mode 100644 (file)
index 0000000..e153eaf
--- /dev/null
@@ -0,0 +1,82 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+
+/ {
+       fabric_clk3: fabric-clk3 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <50000000>;
+       };
+
+       fabric_clk1: fabric-clk1 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <125000000>;
+       };
+
+       fabric-bus@40000000 {
+               compatible = "simple-bus";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges = <0x0 0x40000000 0x0 0x40000000 0x0 0x20000000>, /* FIC3-FAB */
+                        <0x0 0x60000000 0x0 0x60000000 0x0 0x20000000>, /* FIC0, LO */
+                        <0x0 0xe0000000 0x0 0xe0000000 0x0 0x20000000>, /* FIC1, LO */
+                        <0x20 0x0 0x20 0x0 0x10 0x0>, /* FIC0,HI */
+                        <0x30 0x0 0x30 0x0 0x10 0x0>; /* FIC1,HI */
+
+               cape_gpios_p8: gpio@41100000 {
+                       compatible = "microchip,coregpio-rtl-v3";
+                       reg = <0x0 0x41100000 0x0 0x1000>;
+                       clocks = <&fabric_clk3>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       ngpios = <16>;
+                       gpio-line-names = "P8_PIN31", "P8_PIN32", "P8_PIN33", "P8_PIN34",
+                                         "P8_PIN35", "P8_PIN36", "P8_PIN37", "P8_PIN38",
+                                         "P8_PIN39", "P8_PIN40", "P8_PIN41", "P8_PIN42",
+                                         "P8_PIN43", "P8_PIN44", "P8_PIN45", "P8_PIN46";
+               };
+
+               cape_gpios_p9: gpio@41200000 {
+                       compatible = "microchip,coregpio-rtl-v3";
+                       reg = <0x0 0x41200000 0x0 0x1000>;
+                       clocks = <&fabric_clk3>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       ngpios = <20>;
+                       gpio-line-names = "P9_PIN11", "P9_PIN12", "P9_PIN13", "P9_PIN14",
+                                         "P9_PIN15", "P9_PIN16", "P9_PIN17", "P9_PIN18",
+                                         "P9_PIN21", "P9_PIN22", "P9_PIN23", "P9_PIN24",
+                                         "P9_PIN25", "P9_PIN26", "P9_PIN27", "P9_PIN28",
+                                         "P9_PIN29", "P9_PIN31", "P9_PIN41", "P9_PIN42";
+               };
+
+               hsi_gpios: gpio@44000000 {
+                       compatible = "microchip,coregpio-rtl-v3";
+                       reg = <0x0 0x44000000 0x0 0x1000>;
+                       clocks = <&fabric_clk3>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       ngpios = <20>;
+                       gpio-line-names = "B0_HSIO70N", "B0_HSIO71N", "B0_HSIO83N",
+                                         "B0_HSIO73N_C2P_CLKN", "B0_HSIO70P", "B0_HSIO71P",
+                                         "B0_HSIO83P", "B0_HSIO73N_C2P_CLKP", "XCVR1_RX_VALID",
+                                         "XCVR1_LOCK", "XCVR1_ERROR", "XCVR2_RX_VALID",
+                                         "XCVR2_LOCK", "XCVR2_ERROR", "XCVR3_RX_VALID",
+                                         "XCVR3_LOCK", "XCVR3_ERROR", "XCVR_0B_REF_CLK_PLL_LOCK",
+                                         "XCVR_0C_REF_CLK_PLL_LOCK", "B0_HSIO81N";
+               };
+       };
+
+       refclk_ccc: cccrefclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+       };
+};
+
+&ccc_nw {
+       clocks = <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>, <&refclk_ccc>,
+                <&refclk_ccc>, <&refclk_ccc>;
+       clock-names = "pll0_ref0", "pll0_ref1", "pll1_ref0", "pll1_ref1",
+                     "dll0_ref", "dll1_ref";
+       status = "okay";
+};
diff --git a/src/riscv/microchip/mpfs-beaglev-fire.dts b/src/riscv/microchip/mpfs-beaglev-fire.dts
new file mode 100644 (file)
index 0000000..47cf693
--- /dev/null
@@ -0,0 +1,223 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/* Copyright (c) 2020-2021 Microchip Technology Inc */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include "mpfs.dtsi"
+#include "mpfs-beaglev-fire-fabric.dtsi"
+
+/* Clock frequency (in Hz) of MTIMER */
+#define MTIMER_FREQ            1000000
+
+/ {
+       #address-cells = <2>;
+       #size-cells = <2>;
+       model = "BeagleBoard BeagleV-Fire";
+       compatible = "beagle,beaglev-fire", "microchip,mpfs";
+
+       aliases {
+               serial0 = &mmuart0;
+               serial1 = &mmuart1;
+               serial2 = &mmuart2;
+               serial3 = &mmuart3;
+               serial4 = &mmuart4;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       cpus {
+               timebase-frequency = <MTIMER_FREQ>;
+       };
+
+       ddrc_cache_lo: memory@80000000 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0x0 0x40000000>;
+               status = "okay";
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               hss: hss-buffer@103fc00000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x10 0x3fc00000 0x0 0x400000>;
+                       no-map;
+               };
+       };
+
+       imx219_clk: camera-clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <24000000>;
+       };
+
+       imx219_vana: fixedregulator-0 {
+               compatible = "regulator-fixed";
+               regulator-name = "imx219_vana";
+               regulator-min-microvolt = <2800000>;
+               regulator-max-microvolt = <2800000>;
+       };
+
+       imx219_vdig: fixedregulator-1 {
+               compatible = "regulator-fixed";
+               regulator-name = "imx219_vdig";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       imx219_vddl: fixedregulator-2 {
+               compatible = "regulator-fixed";
+               regulator-name = "imx219_vddl";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+       };
+
+};
+
+&gpio2 {
+       interrupts = <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>,
+                    <53>, <53>, <53>, <53>;
+       ngpios=<32>;
+       gpio-line-names = "P8_PIN3_USER_LED_0", "P8_PIN4_USER_LED_1", "P8_PIN5_USER_LED_2",
+                         "P8_PIN6_USER_LED_3", "P8_PIN7_USER_LED_4", "P8_PIN8_USER_LED_5",
+                         "P8_PIN9_USER_LED_6", "P8_PIN10_USER_LED_7", "P8_PIN11_USER_LED_8",
+                         "P8_PIN12_USER_LED_9", "P8_PIN13_USER_LED_10", "P8_PIN14_USER_LED_11",
+                         "P8_PIN15", "P8_PIN16", "P8_PIN17", "P8_PIN18", "P8_PIN19", "P8_PIN20",
+                         "P8_PIN21", "P8_PIN22", "P8_PIN23", "P8_PIN24", "P8_PIN25", "P8_PIN26",
+                         "P8_PIN27", "P8_PIN28", "P8_PIN29", "P8_PIN30", "M2_W_DISABLE1",
+                         "M2_W_DISABLE2", "VIO_ENABLE", "SD_DET";
+       status = "okay";
+
+       vio-enable-hog {
+               gpio-hog;
+               gpios = <30 30>;
+               output-high;
+               line-name = "VIO_ENABLE";
+       };
+
+       sd-det-hog {
+               gpio-hog;
+               gpios = <31 31>;
+               input;
+               line-name = "SD_DET";
+       };
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+
+       eeprom: eeprom@50 {
+               compatible = "atmel,24c32";
+               reg = <0x50>;
+       };
+
+       imx219: sensor@10 {
+               compatible = "sony,imx219";
+               reg = <0x10>;
+               clocks = <&imx219_clk>;
+               VANA-supply = <&imx219_vana>;   /* 2.8v */
+               VDIG-supply = <&imx219_vdig>;   /* 1.8v */
+               VDDL-supply = <&imx219_vddl>;   /* 1.2v */
+
+               port {
+                       imx219_0: endpoint {
+                               data-lanes = <1 2>;
+                               clock-noncontinuous;
+                               link-frequencies = /bits/ 64 <456000000>;
+                       };
+               };
+       };
+};
+
+&mac0 {
+       status = "okay";
+       phy-mode = "sgmii";
+       phy-handle = <&phy0>;
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+       };
+};
+
+&mbox {
+       status = "okay";
+};
+
+&mmc {
+       bus-width = <4>;
+       disable-wp;
+       cap-sd-highspeed;
+       cap-mmc-highspeed;
+       mmc-ddr-1_8v;
+       mmc-hs200-1_8v;
+       sd-uhs-sdr12;
+       sd-uhs-sdr25;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       status = "okay";
+};
+
+&mmuart0 {
+       status = "okay";
+};
+
+&mmuart1 {
+       status = "okay";
+};
+
+&refclk {
+       clock-frequency = <125000000>;
+};
+
+&refclk_ccc {
+       clock-frequency = <50000000>;
+};
+
+&rtc {
+       status = "okay";
+};
+
+&spi0 {
+       status = "okay";
+};
+
+&spi1 {
+       status = "okay";
+};
+
+&syscontroller {
+       microchip,bitstream-flash = <&sys_ctrl_flash>;
+       status = "okay";
+};
+
+&syscontroller_qspi {
+       status = "okay";
+
+       sys_ctrl_flash: flash@0 { // MT25QL01GBBB8ESF-0SIT
+               compatible = "jedec,spi-nor";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <20000000>;
+               spi-rx-bus-width = <1>;
+               reg = <0>;
+       };
+};
+
+&usb {
+       status = "okay";
+       dr_mode = "otg";
+};
index 49b4b9c2c101569f733b9df6f2a7d1bb2f2a98f2..80cb017974d883a38419835c8b895103d5c1b1d6 100644 (file)
        };
 };
 
+&cgi_main {
+       clock-frequency = <25000000>;
+};
+
+&cgi_dpll0 {
+       clock-frequency = <25000000>;
+};
+
+&cgi_dpll1 {
+       clock-frequency = <25000000>;
+};
+
 &uart0 {
        status = "okay";
 };
index 81fda312f988c9d91a250ba3a91819fef75bdd47..34c802bd3f9b8e51ce13841bf5e715421d1f338d 100644 (file)
@@ -4,8 +4,10 @@
  */
 
 /dts-v1/;
+#include <dt-bindings/clock/sophgo,sg2042-clkgen.h>
+#include <dt-bindings/clock/sophgo,sg2042-pll.h>
+#include <dt-bindings/clock/sophgo,sg2042-rpgate.h>
 #include <dt-bindings/interrupt-controller/irq.h>
-
 #include <dt-bindings/reset/sophgo,sg2042-reset.h>
 
 #include "sg2042-cpus.dtsi"
                serial0 = &uart0;
        };
 
+       cgi_main: oscillator0 {
+               compatible = "fixed-clock";
+               clock-output-names = "cgi_main";
+               #clock-cells = <0>;
+       };
+
+       cgi_dpll0: oscillator1 {
+               compatible = "fixed-clock";
+               clock-output-names = "cgi_dpll0";
+               #clock-cells = <0>;
+       };
+
+       cgi_dpll1: oscillator2 {
+               compatible = "fixed-clock";
+               clock-output-names = "cgi_dpll1";
+               #clock-cells = <0>;
+       };
+
        soc: soc {
                compatible = "simple-bus";
                #address-cells = <2>;
                #size-cells = <2>;
                ranges;
 
+               pllclk: clock-controller@70300100c0 {
+                       compatible = "sophgo,sg2042-pll";
+                       reg = <0x70 0x300100c0 0x0 0x40>;
+                       clocks = <&cgi_main>, <&cgi_dpll0>, <&cgi_dpll1>;
+                       clock-names = "cgi_main", "cgi_dpll0", "cgi_dpll1";
+                       #clock-cells = <1>;
+               };
+
+               rpgate: clock-controller@7030010368 {
+                       compatible = "sophgo,sg2042-rpgate";
+                       reg = <0x70 0x30010368 0x0 0x98>;
+                       clocks = <&clkgen GATE_CLK_RP_CPU_NORMAL>;
+                       clock-names = "rpgate";
+                       #clock-cells = <1>;
+               };
+
+               clkgen: clock-controller@7030012000 {
+                       compatible = "sophgo,sg2042-clkgen";
+                       reg = <0x70 0x30012000 0x0 0x1000>;
+                       clocks = <&pllclk MPLL_CLK>,
+                                <&pllclk FPLL_CLK>,
+                                <&pllclk DPLL0_CLK>,
+                                <&pllclk DPLL1_CLK>;
+                       clock-names = "mpll",
+                                     "fpll",
+                                     "dpll0",
+                                     "dpll1";
+                       #clock-cells = <1>;
+               };
+
                clint_mswi: interrupt-controller@7094000000 {
                        compatible = "sophgo,sg2042-aclint-mswi", "thead,c900-aclint-mswi";
                        reg = <0x00000070 0x94000000 0x00000000 0x00004000>;
                        interrupt-parent = <&intc>;
                        interrupts = <112 IRQ_TYPE_LEVEL_HIGH>;
                        clock-frequency = <500000000>;
+                       clocks = <&clkgen GATE_CLK_UART_500M>,
+                                <&clkgen GATE_CLK_APB_UART>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        resets = <&rstgen RST_UART0>;
index 68d16717db8cdbdac9e55ce25a8466bcea27b4d2..c7771b3b64758893759a822422f001cf3cbfa44d 100644 (file)
        status = "okay";
 };
 
+&pcie0 {
+       perst-gpios = <&sysgpio 26 GPIO_ACTIVE_LOW>;
+       phys = <&pciephy0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie0_pins>;
+};
+
+&pcie1 {
+       perst-gpios = <&sysgpio 28 GPIO_ACTIVE_LOW>;
+       phys = <&pciephy1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie1_pins>;
+};
+
 &pwmdac {
        pinctrl-names = "default";
        pinctrl-0 = <&pwmdac_pins>;
                        #size-cells = <1>;
 
                        spl@0 {
-                               reg = <0x0 0x80000>;
+                               reg = <0x0 0xf0000>;
                        };
                        uboot-env@f0000 {
                                reg = <0xf0000 0x10000>;
                        };
                        uboot@100000 {
-                               reg = <0x100000 0x400000>;
-                       };
-                       reserved-data@600000 {
-                               reg = <0x600000 0xa00000>;
+                               reg = <0x100000 0xf00000>;
                        };
                };
        };
        };
 };
 
+&syscrg {
+       assigned-clocks = <&syscrg JH7110_SYSCLK_CPU_CORE>,
+                         <&pllclk JH7110_PLLCLK_PLL0_OUT>;
+       assigned-clock-rates = <500000000>, <1500000000>;
+};
+
 &sysgpio {
        i2c0_pins: i2c0-0 {
                i2c-pins {
                };
        };
 
+       pcie0_pins: pcie0-0 {
+               clkreq-pins {
+                       pinmux = <GPIOMUX(27, GPOUT_LOW,
+                                             GPOEN_DISABLE,
+                                             GPI_NONE)>;
+                       bias-pull-down;
+                       drive-strength = <2>;
+                       input-enable;
+                       input-schmitt-disable;
+                       slew-rate = <0>;
+               };
+
+               wake-pins {
+                       pinmux = <GPIOMUX(32, GPOUT_LOW,
+                                             GPOEN_DISABLE,
+                                             GPI_NONE)>;
+                       bias-pull-up;
+                       drive-strength = <2>;
+                       input-enable;
+                       input-schmitt-disable;
+                       slew-rate = <0>;
+               };
+       };
+
+       pcie1_pins: pcie1-0 {
+               clkreq-pins {
+                       pinmux = <GPIOMUX(29, GPOUT_LOW,
+                                             GPOEN_DISABLE,
+                                             GPI_NONE)>;
+                       bias-pull-down;
+                       drive-strength = <2>;
+                       input-enable;
+                       input-schmitt-disable;
+                       slew-rate = <0>;
+               };
+
+               wake-pins {
+                       pinmux = <GPIOMUX(21, GPOUT_LOW,
+                                     GPOEN_DISABLE,
+                                             GPI_NONE)>;
+                       bias-pull-up;
+                       drive-strength = <2>;
+                       input-enable;
+                       input-schmitt-disable;
+                       slew-rate = <0>;
+               };
+       };
+
        pwmdac_pins: pwmdac-0 {
                pwmdac-pins {
                        pinmux = <GPIOMUX(33, GPOUT_SYS_PWMDAC_LEFT,
index fa0eac78e0ba6ed55a458c6c231ae7cc8e6f928a..5cb9e99e1dacd52134bfb2345111881ba0ac0b59 100644 (file)
        assigned-clock-parents = <&aoncrg JH7110_AONCLK_GMAC0_RMII_RTX>;
 };
 
+&pcie0 {
+       status = "okay";
+};
+
+&pcie1 {
+       status = "okay";
+};
 
 &phy0 {
        motorcomm,tx-clk-adj-enabled;
diff --git a/src/riscv/starfive/jh7110-pine64-star64.dts b/src/riscv/starfive/jh7110-pine64-star64.dts
new file mode 100644 (file)
index 0000000..b720cdd
--- /dev/null
@@ -0,0 +1,65 @@
+// SPDX-License-Identifier: GPL-2.0 OR MIT
+/*
+ * Copyright (C) 2024 Henry Bell <dmoo_dv@protonmail.com>
+ */
+
+/dts-v1/;
+#include "jh7110-common.dtsi"
+
+/ {
+       model = "Pine64 Star64";
+       compatible = "pine64,star64", "starfive,jh7110";
+       aliases {
+               ethernet1 = &gmac1;
+       };
+};
+
+&gmac0 {
+       starfive,tx-use-rgmii-clk;
+       assigned-clocks = <&aoncrg JH7110_AONCLK_GMAC0_TX>;
+       assigned-clock-parents = <&aoncrg JH7110_AONCLK_GMAC0_RMII_RTX>;
+};
+
+&gmac1 {
+       phy-handle = <&phy1>;
+       phy-mode = "rgmii-id";
+       starfive,tx-use-rgmii-clk;
+       assigned-clocks = <&syscrg JH7110_SYSCLK_GMAC1_TX>;
+       assigned-clock-parents = <&syscrg JH7110_SYSCLK_GMAC1_RMII_RTX>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "snps,dwmac-mdio";
+
+               phy1: ethernet-phy@1 {
+                       reg = <1>;
+               };
+       };
+};
+
+&pcie1 {
+       status = "okay";
+};
+
+&phy0 {
+       rx-internal-delay-ps = <1900>;
+       tx-internal-delay-ps = <1500>;
+       motorcomm,rx-clk-drv-microamp = <2910>;
+       motorcomm,rx-data-drv-microamp = <2910>;
+       motorcomm,tx-clk-adj-enabled;
+       motorcomm,tx-clk-10-inverted;
+       motorcomm,tx-clk-100-inverted;
+       motorcomm,tx-clk-1000-inverted;
+};
+
+&phy1 {
+       rx-internal-delay-ps = <0>;
+       tx-internal-delay-ps = <300>;
+       motorcomm,rx-clk-drv-microamp = <2910>;
+       motorcomm,rx-data-drv-microamp = <2910>;
+       motorcomm,tx-clk-adj-enabled;
+       motorcomm,tx-clk-10-inverted;
+       motorcomm,tx-clk-100-inverted;
+};
index 9d70f21c86fc6e56e849a0efab63329c87e32e24..18f38fc790a4d1b7d53910473e7f0f488e504a56 100644 (file)
 &mmc0 {
        non-removable;
 };
+
+&pcie0 {
+       status = "okay";
+};
+
+&pcie1 {
+       status = "okay";
+};
index 18047195c600bdca0f98ac64337d79e91ce202ab..0d8339357bad32f95ffa0396e9a7cea328d705ff 100644 (file)
                };
 
                uart0: serial@10000000 {
-                       compatible = "snps,dw-apb-uart";
+                       compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
                        reg = <0x0 0x10000000 0x0 0x10000>;
                        clocks = <&syscrg JH7110_SYSCLK_UART0_CORE>,
                                 <&syscrg JH7110_SYSCLK_UART0_APB>;
                        clock-names = "baudclk", "apb_pclk";
-                       resets = <&syscrg JH7110_SYSRST_UART0_APB>;
+                       resets = <&syscrg JH7110_SYSRST_UART0_APB>,
+                                <&syscrg JH7110_SYSRST_UART0_CORE>;
                        interrupts = <32>;
                        reg-io-width = <4>;
                        reg-shift = <2>;
                };
 
                uart1: serial@10010000 {
-                       compatible = "snps,dw-apb-uart";
+                       compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
                        reg = <0x0 0x10010000 0x0 0x10000>;
                        clocks = <&syscrg JH7110_SYSCLK_UART1_CORE>,
                                 <&syscrg JH7110_SYSCLK_UART1_APB>;
                        clock-names = "baudclk", "apb_pclk";
-                       resets = <&syscrg JH7110_SYSRST_UART1_APB>;
+                       resets = <&syscrg JH7110_SYSRST_UART1_APB>,
+                                <&syscrg JH7110_SYSRST_UART1_CORE>;
                        interrupts = <33>;
                        reg-io-width = <4>;
                        reg-shift = <2>;
                };
 
                uart2: serial@10020000 {
-                       compatible = "snps,dw-apb-uart";
+                       compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
                        reg = <0x0 0x10020000 0x0 0x10000>;
                        clocks = <&syscrg JH7110_SYSCLK_UART2_CORE>,
                                 <&syscrg JH7110_SYSCLK_UART2_APB>;
                        clock-names = "baudclk", "apb_pclk";
-                       resets = <&syscrg JH7110_SYSRST_UART2_APB>;
+                       resets = <&syscrg JH7110_SYSRST_UART2_APB>,
+                                <&syscrg JH7110_SYSRST_UART2_CORE>;
                        interrupts = <34>;
                        reg-io-width = <4>;
                        reg-shift = <2>;
                };
 
                uart3: serial@12000000 {
-                       compatible = "snps,dw-apb-uart";
+                       compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
                        reg = <0x0 0x12000000 0x0 0x10000>;
                        clocks = <&syscrg JH7110_SYSCLK_UART3_CORE>,
                                 <&syscrg JH7110_SYSCLK_UART3_APB>;
                        clock-names = "baudclk", "apb_pclk";
-                       resets = <&syscrg JH7110_SYSRST_UART3_APB>;
+                       resets = <&syscrg JH7110_SYSRST_UART3_APB>,
+                                <&syscrg JH7110_SYSRST_UART3_CORE>;
                        interrupts = <45>;
                        reg-io-width = <4>;
                        reg-shift = <2>;
                };
 
                uart4: serial@12010000 {
-                       compatible = "snps,dw-apb-uart";
+                       compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
                        reg = <0x0 0x12010000 0x0 0x10000>;
                        clocks = <&syscrg JH7110_SYSCLK_UART4_CORE>,
                                 <&syscrg JH7110_SYSCLK_UART4_APB>;
                        clock-names = "baudclk", "apb_pclk";
-                       resets = <&syscrg JH7110_SYSRST_UART4_APB>;
+                       resets = <&syscrg JH7110_SYSRST_UART4_APB>,
+                                <&syscrg JH7110_SYSRST_UART4_CORE>;
                        interrupts = <46>;
                        reg-io-width = <4>;
                        reg-shift = <2>;
                };
 
                uart5: serial@12020000 {
-                       compatible = "snps,dw-apb-uart";
+                       compatible = "starfive,jh7110-uart", "snps,dw-apb-uart";
                        reg = <0x0 0x12020000 0x0 0x10000>;
                        clocks = <&syscrg JH7110_SYSCLK_UART5_CORE>,
                                 <&syscrg JH7110_SYSCLK_UART5_APB>;
                        clock-names = "baudclk", "apb_pclk";
-                       resets = <&syscrg JH7110_SYSRST_UART5_APB>;
+                       resets = <&syscrg JH7110_SYSRST_UART5_APB>,
+                                <&syscrg JH7110_SYSRST_UART5_CORE>;
                        interrupts = <47>;
                        reg-io-width = <4>;
                        reg-shift = <2>;
                        #reset-cells = <1>;
                        power-domains = <&pwrc JH7110_PD_VOUT>;
                };
+
+               pcie0: pcie@940000000 {
+                       compatible = "starfive,jh7110-pcie";
+                       reg = <0x9 0x40000000 0x0 0x1000000>,
+                             <0x0 0x2b000000 0x0 0x100000>;
+                       reg-names = "cfg", "apb";
+                       linux,pci-domain = <0>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       #interrupt-cells = <1>;
+                       ranges = <0x82000000  0x0 0x30000000  0x0 0x30000000 0x0 0x08000000>,
+                                <0xc3000000  0x9 0x00000000  0x9 0x00000000 0x0 0x40000000>;
+                       interrupts = <56>;
+                       interrupt-map-mask = <0x0 0x0 0x0 0x7>;
+                       interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc0 0x1>,
+                                       <0x0 0x0 0x0 0x2 &pcie_intc0 0x2>,
+                                       <0x0 0x0 0x0 0x3 &pcie_intc0 0x3>,
+                                       <0x0 0x0 0x0 0x4 &pcie_intc0 0x4>;
+                       msi-controller;
+                       device_type = "pci";
+                       starfive,stg-syscon = <&stg_syscon>;
+                       bus-range = <0x0 0xff>;
+                       clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
+                                <&stgcrg JH7110_STGCLK_PCIE0_TL>,
+                                <&stgcrg JH7110_STGCLK_PCIE0_AXI_MST0>,
+                                <&stgcrg JH7110_STGCLK_PCIE0_APB>;
+                       clock-names = "noc", "tl", "axi_mst0", "apb";
+                       resets = <&stgcrg JH7110_STGRST_PCIE0_AXI_MST0>,
+                                <&stgcrg JH7110_STGRST_PCIE0_AXI_SLV0>,
+                                <&stgcrg JH7110_STGRST_PCIE0_AXI_SLV>,
+                                <&stgcrg JH7110_STGRST_PCIE0_BRG>,
+                                <&stgcrg JH7110_STGRST_PCIE0_CORE>,
+                                <&stgcrg JH7110_STGRST_PCIE0_APB>;
+                       reset-names = "mst0", "slv0", "slv", "brg",
+                                     "core", "apb";
+                       status = "disabled";
+
+                       pcie_intc0: interrupt-controller {
+                               #address-cells = <0>;
+                               #interrupt-cells = <1>;
+                               interrupt-controller;
+                       };
+               };
+
+               pcie1: pcie@9c0000000 {
+                       compatible = "starfive,jh7110-pcie";
+                       reg = <0x9 0xc0000000 0x0 0x1000000>,
+                             <0x0 0x2c000000 0x0 0x100000>;
+                       reg-names = "cfg", "apb";
+                       linux,pci-domain = <1>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       #interrupt-cells = <1>;
+                       ranges = <0x82000000  0x0 0x38000000  0x0 0x38000000 0x0 0x08000000>,
+                                <0xc3000000  0x9 0x80000000  0x9 0x80000000 0x0 0x40000000>;
+                       interrupts = <57>;
+                       interrupt-map-mask = <0x0 0x0 0x0 0x7>;
+                       interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc1 0x1>,
+                                       <0x0 0x0 0x0 0x2 &pcie_intc1 0x2>,
+                                       <0x0 0x0 0x0 0x3 &pcie_intc1 0x3>,
+                                       <0x0 0x0 0x0 0x4 &pcie_intc1 0x4>;
+                       msi-controller;
+                       device_type = "pci";
+                       starfive,stg-syscon = <&stg_syscon>;
+                       bus-range = <0x0 0xff>;
+                       clocks = <&syscrg JH7110_SYSCLK_NOC_BUS_STG_AXI>,
+                                <&stgcrg JH7110_STGCLK_PCIE1_TL>,
+                                <&stgcrg JH7110_STGCLK_PCIE1_AXI_MST0>,
+                                <&stgcrg JH7110_STGCLK_PCIE1_APB>;
+                       clock-names = "noc", "tl", "axi_mst0", "apb";
+                       resets = <&stgcrg JH7110_STGRST_PCIE1_AXI_MST0>,
+                                <&stgcrg JH7110_STGRST_PCIE1_AXI_SLV0>,
+                                <&stgcrg JH7110_STGRST_PCIE1_AXI_SLV>,
+                                <&stgcrg JH7110_STGRST_PCIE1_BRG>,
+                                <&stgcrg JH7110_STGRST_PCIE1_CORE>,
+                                <&stgcrg JH7110_STGRST_PCIE1_APB>;
+                       reset-names = "mst0", "slv0", "slv", "brg",
+                                     "core", "apb";
+                       status = "disabled";
+
+                       pcie_intc1: interrupt-controller {
+                               #address-cells = <0>;
+                               #interrupt-cells = <1>;
+                               interrupt-controller;
+                       };
+               };
        };
 };
index d2fa25839012c3852867e331cd3c042bf0474ea7..3c9974062c206b870ebe85b91da2a04e5bc7b879 100644 (file)
                };
        };
 
+       pmu {
+               compatible = "riscv,pmu";
+               riscv,event-to-mhpmcounters =
+                       <0x00003 0x00003 0x0007fff8>,
+                       <0x00004 0x00004 0x0007fff8>,
+                       <0x00005 0x00005 0x0007fff8>,
+                       <0x00006 0x00006 0x0007fff8>,
+                       <0x00007 0x00007 0x0007fff8>,
+                       <0x00008 0x00008 0x0007fff8>,
+                       <0x00009 0x00009 0x0007fff8>,
+                       <0x0000a 0x0000a 0x0007fff8>,
+                       <0x10000 0x10000 0x0007fff8>,
+                       <0x10001 0x10001 0x0007fff8>,
+                       <0x10002 0x10002 0x0007fff8>,
+                       <0x10003 0x10003 0x0007fff8>,
+                       <0x10010 0x10010 0x0007fff8>,
+                       <0x10011 0x10011 0x0007fff8>,
+                       <0x10012 0x10012 0x0007fff8>,
+                       <0x10013 0x10013 0x0007fff8>;
+               riscv,event-to-mhpmevent =
+                       <0x00003 0x00000000 0x00000001>,
+                       <0x00004 0x00000000 0x00000002>,
+                       <0x00006 0x00000000 0x00000006>,
+                       <0x00005 0x00000000 0x00000007>,
+                       <0x00007 0x00000000 0x00000008>,
+                       <0x00008 0x00000000 0x00000009>,
+                       <0x00009 0x00000000 0x0000000a>,
+                       <0x0000a 0x00000000 0x0000000b>,
+                       <0x10000 0x00000000 0x0000000c>,
+                       <0x10001 0x00000000 0x0000000d>,
+                       <0x10002 0x00000000 0x0000000e>,
+                       <0x10003 0x00000000 0x0000000f>,
+                       <0x10010 0x00000000 0x00000010>,
+                       <0x10011 0x00000000 0x00000011>,
+                       <0x10012 0x00000000 0x00000012>,
+                       <0x10013 0x00000000 0x00000013>;
+               riscv,raw-event-to-mhpmcounters =
+                       <0x00000000 0x00000001 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000002 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000003 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000004 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000005 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000006 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000007 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000008 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000009 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x0000000a 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x0000000b 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x0000000c 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x0000000d 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x0000000e 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x0000000f 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000010 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000011 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000012 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000013 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000014 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000015 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000016 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000017 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000018 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000019 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x0000001a 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x0000001b 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x0000001c 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x0000001d 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x0000001e 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x0000001f 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000020 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000021 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000022 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000023 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000024 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000025 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000026 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000027 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000028 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x00000029 0xffffffff 0xffffffff 0x0007fff8>,
+                       <0x00000000 0x0000002a 0xffffffff 0xffffffff 0x0007fff8>;
+       };
+
        osc: oscillator {
                compatible = "fixed-clock";
                clock-output-names = "osc_24m";